51CTO技术论坛 » 思科技术 » Cisco从低端到高端的配置大全(经典实用)        上一帖     下一帖    查看完整版本

页: [1] 2 3 4 5

deake2008-3-7 00:40
Cisco从低端到高端的配置大全(经典实用)

Cisco从低端到高端的配置大全(经典实用)
第一章路由器配置和文件管理
1.1.  通过TFTP来配置路由器
提问 使用TFTP来加载路由器的配置文件
回答
Router1#[b]copy tftp://[i]172.25.1.1[/i]/[i]NEWCONFIG[/i] running-config[/b]
Destination filename [running-config]? [b][/b]
Accessing tftp://172.25.1.1/NEWCONFIG...
Loading NEWCONFIG from 172.25.1.1 (via FastEthernet0/0.1): !
[OK - 24 bytes]
24 bytes copied in 0.192 secs (125 bytes/sec)
Router1#
注释 IOS12.0版本以前使用的[b]configure network[/b]命令,另外拷贝至路由器的配置文件应该以End结尾,否则会出现下面的错误提示信息:%PARSER-4-BADCFG: Unexpected end of configuration file.
1.2.  保存路由器配置到服务器
提问 保存路由器当前配置文件到TFTP服务器作为备份
回答
Freebsd% [b]touch [i]/tftpboot/router1-confg[/i][/b]
Freebsd% [b]chmod 666 [i]/tftpboot/router1-confg[/i][/b]
Freebsd% [b]telnet [i]Router1[/i][/b]
Trying 172.25.1.5...
Connected to Router1.
Escape character is '^]'.
User Access Verification
Password: [b][i][/i][/b]
Router1>[b]enable[/b]
Password: [b][i][/i][/b]
Router1#[b]copy running-config tftp://[i]172.25.1.1/router1-confg[/i][/b]
Address or name of remote host [172.25.1.1]? [b][/b]
Destination filename [router1-confg]? [b][/b]
!!!
9640 bytes copied in 3.956 secs (2437 bytes/sec)
Router1#
注释 确保TFTP服务器上的目录和文件可写
1.3.  使用远端配置文件启动路由器
提问 使用另外的配置文件来启动路由器
回答
Router1#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]service config[/b]
Router1(config)#[b]boot network tftp [i]Network-auto 172.25.1.1[/i][/b]
Router1(config)#[b]boot host tftp [i]Router8-auto 172.25.1.1[/i][/b]
Router1(config)#[b]end[/b]
Router1#
注释 [b]service config[/b]缺省是关闭的,如果打开缺省会去查找的文件名为network-config, cisconet.cfg, router1-confg, router1.cfg等
1.4.  保存大于NVRAM大小的配置文件
提问 配置文件过大,超过了可用的NVRAM大小
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]service compress-config [/b]
Router1(config)#[b]end[/b]
Router1#
注释 可以使用show startup-config来验证
Router1#[b]show startup-config[/b]
Using 5068 out of 29688 bytes, uncompressed size = 9969 bytes
Uncompressed configuration from 5068 bytes to 9969 bytes
1.5.  清除启动配置文件
提问 清除配置文件恢复到出厂设置
回答
Router1#[b]erase nvram:  [/b][b](erase startup-config)[/b]
Erasing the nvram filesystem will remove all files! Continue? [confirm]
[OK]
Erase of nvram: complete
Router1#[b]reload[/b]
System configuration has been modified. Save? [yes/no]: [b]no[/b]
Proceed with reload? [confirm] [b][/b]

注释 无
1.6.  加载新的IOS镜像
提问 升级当前的IOS
回答
Router1#[b]copy tftp://[i]172.25.1.1/c2600-ik9o3s-mz.122-12a.bin flash:[/i][/b]
Destination filename [c2600-ik9o3s-mz.122-12a.bin]? [b][i][/i][/b]
Accessing tftp://172.25.1.1/c2600-ik9o3s-mz.122-12a.bin...
Erase flash: before copying? [confirm] [b][i][/i][/b]
Erasing the flash filesystem will remove all files! Continue? [confirm] [b][i][/i][/b]
Erasing device... eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee ...erased
Erase of flash: complete
Loading c2600-ik9o3s-mz.122-12a.bin from 172.25.1.1 (via FastEthernet0/0.1):!!!!!!!!!!!!!!
[OK - 11135588 bytes]
Verifying checksum...  OK (0xE643)
11135588 bytes copied in 82.236 secs (135410 bytes/sec)
Router1# [b][i]reload[/i][/b]
Proceed with reload? [confirm] [b][i][/i][/b]
注释 无
1.7.  以另一个IOS镜像文件启动
提问 使用其它的IOS镜像启动
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]boot system [i]flash:c3620-jk9o3s-mz.122-7a.bin[/i][/b]
Router1(config)#[b]boot system [i]flash:c3620-jos56i-l.120-11.bin[/i][/b]
Router1(config)#[b]boot system [i]slot0:c3620-ik9s-mz.122-13.bin[/i][/b]
Router1(config)#[b]boot system rom[/b]
Router1(config)#[b]end[/b]
注释 boot system命令的顺序非常重要,如果使用新的IOS,建议先进行no boot system的操作。从IOS 12.3(4)T 后思科引入了boot markers的概念,所有的boot systme命令都会放在boot markers之间,比如:
Router1#[b]show running-config | include ^boot[/b]
boot-start-marker
boot system slot0:c3745-ipbasek9-mz.124-6.T.bin
boot system slot0:c3745-ipbasek9-mz.124-7.bin
boot system flash:
boot-end-marker
Router1#

1.8.  通过网络启动
提问 IOS太大本地Flash无法保存,使用保存在网络上的IOS启动
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]boot system tftp [i]c2500-io-l.122-7a.bin 172.25.1.1[/i][/b]
Router1(config)#[b]boot system flash[/b]
Router1(config)#[b]end[/b]
Router1#
注释 无
1.9.  拷贝IOS镜像文件到服务器
提问 保存一份IOS到TFTP服务器作为备份
回答
Freebsd% [b]touch [i]/tftpboot/c2600-ik9o3s-mz.122-12a.bin[/i][/b]
Freebsd% [b]chmod 666 [i]/tftpboot/c2600-ik9o3s-mz.122-12a.bin[/i][/b]
Freebsd% [b]telnet [i]Router1[/i][/b]
Trying 172.25.1.5...
Connected to Router1.
Escape character is '^]'.
User Access Verification
Password: [b][/b]
Router1>[b]enable[/b]
Password: [b][/b]
Router1#[b]copy flash:[i]c2600-ik9o3s-mz.122-12a.bin  [/i]tftp[/b]
Address or name of remote host []? [b][i]172.25.1.1[/i][/b]
Destination filename [c2600-ik9o3s-mz.122-12a.bin]? [b][/b]
!!!!!!
11135588 bytes copied in 52.588 secs (211752 bytes/sec)
Router1#
注释
1.10.  通过控制台口拷贝IOS镜像文件
提问 通过控制台口和AUX端口来加载IOS
回答
Router1#[b]copy xmodem: slot1:[/b]
                        **** WARNING ****
x/ymodem is a slow transfer protocol limited to the current speed
settings of the auxiliary/console ports. The use of the auxilary
port for this download is strongly recommended.
During the course of the download no exec input/output will be
available.
                        ---- ******* ----
Proceed? [confirm] [b][/b]
Destination filename []? [b][i]c3620-ik9s-mz.122-12a.bin[/i][/b]
Erase slot1: before copying? [confirm] [b][/b]
Use crc block checksumming? [confirm] [b][/b]
Max Retry Count [10]: [b][/b]
Perform image validation checks? [confirm] [b][/b]
Xmodem download using crc checksumming with image validation
Continue? [confirm]  [b][/b]
Ready to receive file...........CC  [b][/b]
4294967295 bytes copied in 1450.848 secs (1271445669961 bytes/sec)
Router1#
注释 思科建议使用AUX口进行此步骤,因为AUX口支持硬件流控。为了提高拷贝速度,建议提前使用下述命令来设置端口速度
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]line aux 0[/b]
Router1(config-line)#[b]speed[/b] [b][i]115200[/i][/b]
Router1(config-line)#[b]end[/b]
Router1#
1.11.  删除Flash中的文件
提问 删除Flash中的文件
回答
Router1#[b]erase [i]slot1:[/i][/b]
Erasing the slot1 filesystem will remove all files! Continue? [confirm] [b][/b]
Erasing device... eeeeeeeeeeee ...erased
Erase of slot1: complete
Router1#
或者删除单个文件
Router1#[b]delete [i]slot1:c3620-ik9s-mz.122-13.bin[/i][/b]
Delete filename [c3620-ik9s-mz.122-13.bin]? [b][/b]
Delete slot1:c3620-ik9s-mz.122-13.bin? [confirm] [b][/b]
Router1#
注释 并不是所有的路由器都支持erase命令,不行的话可以尝试format命令,有些路由器在使用delete命令以后还可以使用undelete来恢复,同时也需要使用squeeze来彻底删除文件
1.12.  对Flash进行分区
提问 对Flash进行分区
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]partition slot1: [i]2 8 8[/i][/b]
Router1(config)#[b]end[/b]
Router1#
注释 如果erase不支持也可以试试partition命令
1.13.  配置路由器为TFTP服务器
提问 配置路由器为TFTP服务器
回答
Router1#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]tftp-server [i]flash:c2600-ik9o3s-mz.122-12a.bin[/i][/b]
Router1(config)#[b]end[/b]
Router1#
注释 使用此命令并不能把路由器配置为全功能的TFTP服务器,此服务器只能用于文件下载,而不能进行上传
1.14.  在路由器上使用FTP
提问 在路由器上使用FTP来进行文件的下载
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]ip ftp username [i]neoshi[/i][/b]
Router1(config)#[b]ip ftp password [i]ioscookbook[/i][/b]
Router1(config)#[b]end[/b]
Router1#[b]copy ftp: running-config[/b]
Address or name of remote host [172.25.1.1]? [b][i]172.25.1.1[/i][/b]
Source filename []? [b][i]test[/i][/b]
Destination filename [running-config]? [b][/b]
Accessing [url]ftp://172.25.1.1/test...[/url]
Loading /test
[OK - 24/4096 bytes]

24 bytes copied in 0.276 secs (87 bytes/sec)
Router1#
当然也可以使用下面的简化命令
[b]copy [i]ftp://neoshi[/i][/b][b][i]:ioscookbook@172.25.1.1/c3620-ik9s-mz.122-10a.bin slot1:[/i][/b]
注释 如果没有指定用户名和密码,路由器缺省会使用匿名登录
1.15.  批量产生路由器配置文件
1.16.  同时改变多台路由器的配置
1.17.  获得设备的硬件信息
1.18.  备份路由器的配置
以上都是使用perl脚本来进行批量化操作,建议使用我推荐的图形话绿色免费工具软件
1.19.  热重启
提问 重启路由器而对业务影响减少到最低
回答
Router1#[b]configure  terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]warm-reboot[/b]
Router1(config)#[b]end[/b]
Router1#
注释 要使用热启动必须先冷启动一次…无语了吧哈哈。此特性开始于12.3(2)T,根据实验冷启动要比热启动慢4分钟。可以使用reload warm命令进行人工的热重启
1.20.  热升级
提问 升级路由器IOS而对业务影响最小
回答
Router1#[b]configure  terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]warm-reboot[/b]
Router1(config)#[b]end[/b]
Router1#[b]reload warm file [i]slot0:c3745-ipbasek9-mz.124-7.bin[/i][/b]
注释 12.3(11)T开始支持此特性
1.21.  配置存档特性
提问 自动对路由器配置进行存档
回答
Router1#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]archive[/b]
Router1(config-archive)#[b]path [i]slot0:/configs/$h[/i][/b]
Router1(config-archive)#[b]write-memory[/b]
Router1(config-archive)#[b]time-period [i]1440[/i][/b]
Router1(config-archive)#[b]end[/b]
Router1#
注释 从12.3(4)T开始思科引入配置存档特性,每次使用wr对配置进行保存的时候都会在路由器上生成一个存档配置文件,当然也可以像示例那样每1440分钟保存一次,使用show archive命令来显示当前的配置存档,缺省保存14个文件,并且提供了配置比较命令 show archive config differences slot0:/configs/Router1-1 更提供了配置回滚的命令configure replace slot0:/configs/Router1-1 方便的回滚到以前的配置。对于保存的配置文件名可以$h来代表设备主机名$t来代表时间
1.22.  路由器配置锁定
提问 防止同时多个用户对路由器配置文件进行修改
回答
自动进行配置锁定
Router1#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]configuration mode exclusive auto[/b]
Router1(config)#[b]end[/b]
Router1#
按需进行配置锁定
Router1#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]configuration mode exclusive manual[/b]
Router1(config)#[b]end[/b]                                 
Router1#
注释 12.3(14)T引入了此特性防止多个用户同时对路由器配置进行修改,在配置为auto的模式下,如果有用户进入了配置模式就自动对配置进行锁定,在manual模式下可以使用[b]configure terminal lock[/b]进行配置锁定,可以使用[b]show configuration lock[/b]来查看当前的配置锁定信息,如果你确实需要进行配置,就把看到锁定的人踢掉吧。

第二章路由器管理
2.1.  创建命令别名
提问 为常用的命令创建简洁的别名
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]alias exec [i]rt [/i]show ip route[/b]
Router1(config)#[b]alias exec [i]on [/i]show ip ospf neighbor[/b]
Router1(config)#[b]end[/b]
Router1#
注释 [b]show aliases[/b]命令可以输出当前配置的别名

2.2.  管理路由器ARP缓存
提问 修改ARP表条目超时时长
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]interface [i]Ethernet0[/i][/b]
Router1(config-if)#[b]arp timeout [i]600[/i][/b]
Router1(config-if)#[b]end[/b]
Router1#
注释 缺省情况为4个小时,同时思科没有提供命令能单独的清除某个ARP缓存,只能通过[b]clear arp[/b] 命令来清除整个ARP表

2.3.  路由器Buffer调整
提问 手动调整路由器Buffer分配来使其工作的更高效
回答 路由器维护两个Buffer池,public buffers和interface buffers
调整public buffers
Router1#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]buffers big initial [i]100[/i][/b]
Router1(config)#[b]buffers big max-free[/b] [b][i]200[/i][/b]
Router1(config)#[b]buffers big min-free[/b] [b][i]50[/i][/b]
Router1(config)#[b]buffers big permanent[/b] [b][i]50[/i][/b]
Router1(config)#[b]end[/b]
Router1#
调整interface buffers
Router1#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]buffers [i]Ethernet0 [/i]initial [i]200[/i][/b]
Router1(config)#[b]buffers [i]Ethernet0 [/i]max-free[/b] [b][i]300[/i][/b]
Router1(config)#[b]buffers [i]Ethernet0 [/i]min-free[/b] [b][i]50[/i][/b]
Router1(config)#[b]buffers [i]Ethernet0 [/i]permanent [i]50[/i][/b]
Router1(config)#[b]end[/b]
Router1#
注释 一般不建议修改,如果修改,建议首先使用[b]show buffers[/b]命令来查看当前buffer使用情况,调整完以后建议使用[b]show memory[/b]来查看内存使用情况

2.4.  自动调整路由器Buffer
提问 希望路由器根据自己的情况自动进行buffer分配调整
回答
Router#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
[b]Router(config)#buffers tune automatic [/b]
Router(config)#[b]end  [/b]                  
[b]Router#[/b]
注释 此命令引自IOS 12.3(14)T,使用[b]show buffers tune[/b]命令来查看自动调整情况

2.5.  使用CDP协议
提问 希望获得相连网络设备的信息
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]cdp run[/b]
Router1(config)#[b]interface [i]Serial0/0[/i][/b]
Router1(config-if)#[b]cdp enable[/b]
Router1(config-if)#[b]exit[/b]
Router1(config)#[b]interface [i]FastEthernet0/0[/i][/b]
Router1(config-if)#[b]no cdp enable[/b]
Router1(config-if)#[b]exit[/b]
Router1(config)#[b]interface [i]FastEthernet1/0[/i][/b]
Router1(config-if)#[b]cdp enable[/b]
Router1(config-if)#[b]end[/b]
Router1#
注释 CDP(Cisco Discovery Protocol)是思科专有的协议,用于发现相连的思科设备,帮助了解网络拓朴,缺省是启用的,使用[b]show cdp neighbor detail[/b] 命令可以查看相连设备的详细信息

2.6.  禁止CDP协议
提问 为了安全期间不想让邻近设备发现自己设备的信息
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]cdp run[/b]
Router1(config)#[b]interface [/b]FastEthernet0/0
Router1(config-if)#[b]no cdp enable[/b]
Router1(config-if)#[b]end[/b]
Router1#

注释 为了安全期间可以在边界设备上禁止CDP
2.7.  小服务的开启
提问 开启或者禁用一些类似finger的小服务
回答
Router1#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]service tcp-small-servers   [/b][b](no service tcp-small-servers)[/b]
Router1(config)#[b]service udp-small-servers    (no sercie udp-small-servers)[/b]
Router1(config)#[b]end[/b]
Router1#
Router1#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]ip finger  (no ip finger)[/b]
Router1#
注释 tcp和udp的小服务指开启路由器的echo,discard,daytime和chargen服务,为了安全期间都建议将其关闭

2.8.  启用路由器HTTP访问
提问 通过浏览器来配置和管理路由器
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]access-list[/b] [b][i]75 [/i]permit [i]172.25.1.1[/i][/b]
Router1(config)#[b]access-list [i]75 [/i]deny any[/b]
Router1(config)#[b]ip http server[/b]
Router1(config)#[b]ip http access-class [i]75[/i][/b]
Router1(config)#[b]end[/b]
Router1#

注释 由于IOS 12.1(5)之前存在HTTP访问的高危漏洞,所以如果你的IOS版本小于此版本建议不要开启此服务

2.9.  启用路由器安全HTTPS访问
提问 通过加密的访问HTTP访问路由器
回答
Core#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Core(config)#[b]ip http secure-server[/b]
Core(config)#[b]end[/b]
Core#

注释 IOS 12.2(14)S之后引入此特性,建议先用[b]no ip http server[/b]命令关闭非加密的HTTP访问,然后开启安全的访问,同时可以使用[b]ip http secure-port  [/b][i]8080 [/i]
命令来更改访问端口
2.10.  使用静态主机名映射
提问 在路由器上配置静态的主机映射表,从而使用主机名而不是IP地址来访问设备
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]ip host [i]freebsd 172.25.1.1[/i][/b]
Router1(config)#[b]ip host [i]router2 10.1.1.1 172.22.1.4[/i][/b]
Router1(config)#[b]end[/b]
Router1#
注释 可以对一个主机名映射很多IP地址来提供冗余访问,[b]show hosts[/b]命令来验证

2.11.  启用DNS服务
提问 路由器使用DNS服务器来解析主机名
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]ip domain-lookup[/b]
Router1(config)#[b]ip domain-name [i]oreilly.com[/i][/b]
Router1(config)#[b]ip name-server [i]172.25.1.1 [/i][/b]
Router1(config)#[b]ip name-server [i]10.1.20.5  [/i][/b]
Router1(config)#[b]end[/b]
Router1#

注释 从IOS 12.2开始,思科使用了[i]ip domain lookup[/i].来代替[i]ip domain-lookup[/i] 类似的[i]ip domain-name[/i] 被 [i]ip domain name[/i]代替

2.12.  禁用域名解析
提问 禁用域名解析,防止路由器自动对打错的命令的进行DNS查询
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]no ip domain-lookup [/b]
Router1(config)#[b]end[/b]
Router1#
如果需要启用DNS查询主机名,但是又为了避免打错命令查询的情况可以使用如下的变通方法
Router1#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#line vty 0 4
Router1(config-line)#transport preferred none
Router1(config-line)#end
Router1#
注释 对后一个命令的稍微解释一下,正常情况下都知道可以直接使用主机名回车路由器会认为时telnet 到此设备,可以省略掉telnet的命令,原因是因为transport preferred缺省是telnet,如果配置为none就必须使用telnet命令来进行设备登录,命令打错也不会出现地址解析的问题了。
2.13.  配置路由器特定时间重启
提问 需要路由器在特定时间自动重启
回答
Router1#[b]reload in [i]20[/i][/b]
Reload scheduled for 11:33:53 EST Sat Feb 1 2003 (in 20 minutes)
Proceed with reload? [confirm] [b][/b]
Router1#
Router1#[b]reload at [i]14:00 Feb 2 [/i][/b]
Reload scheduled for 14:00:00 EST Sun Feb 2 2003 (in 26 hours and 44 minutes)
Proceed with reload? [confirm] [b][/b]
Router1#
注释 很有用的命令,当你在对路由器配置进行修改前可以先行输入此命令,然后进行修改但是不保存配置,这样可以防止把自己锁在路由器之外。可以使用[b]reload cancel[/b]命令来取消定时重启
2.14.  定时执行配置命令
提问 周期性的定时执行某个命令
回答
Router#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#[b]kron policy-list [/b] [i]NEOSHI [/i]
Router(config-kron-policy)#[b]cli [/b] [i]write memory [/i]
Router(config-kron-policy)#[b]exit [/b]
Router(config)#[b]kron occurrence  [/b][i]DAILYat5 [/i][b] at  [/b][i]17:00 [/i][b] recurring [/b]
Router(config-kron-occurrence)#[b]policy-list [/b] [i]NEOSHI [/i]
Router(config-kron-occurrence)#[b]end [/b]
Router#

注释 从IOS12.3(1)开始引入了这个类似Unix Cron的特性,不过也有一些缺点,只能运行EXEC模式下的命令,不能运行配置模式下的命令,同时输入的命令不能是交互性的,比如不能输入copy running-config startup-config来保存配置,因为是需要确认的,必须使用write memory来代替
2.15.  显示路由器CPU利用率的历史数据
提问 显示历史的路由器CPU利用率
回答
Router# [b]show processes cpu history[/b]
Router   03:48:18 PM Monday Apr 17 2006 EDT
                                                              
                                         555559999999999999999
    5                                    444449999999999999999
100                                           ******************
90                                           ******************
80                                           ******************
70                                           ******************
60                                           ******************
50                                      ***********************
40                                      ***********************
30                                      ***********************
20                                      ***********************
10 *                                    ***********************
   0....5....1....1....2....2....3....3....4....4....5....5....
             0    5    0    5    0    5    0    5    0    5   
               CPU% per second (last 60 seconds)
                                                              
    99   1                                                9999
    99   1                                     4          9999
100 **                                                    ***#*#
90 **                                                    **##*#
80 #*                                                    *###*#
70 #*                                                    *###*#
60 #*                                                    *###*#
50 #*                                                    *#####
40 #*                                                    *#####
30 #*                                                    ######
20 ##                                                    ######
10 ##   *                                                ######
   0....5....1....1....2....2....3....3....4....4....5....5....
             0    5    0    5    0    5    0    5    0    5   
               CPU% per minute (last 60 minutes)
              * = maximum CPU%   # = average CPU%
  ……………………………….(由于显示问题省去此图).
                   CPU% per hour (last 72 hours)
                  * = maximum CPU%   # = average CPU%

注释 从IOS12.2(2)T以后思科为show process cpu命令增加了history的选项,这样可以看到最长3天的CPU利用率,而以前最多可以看到5分钟的。输出图很不容易看懂,简单的说最左边是最新的数据,然后历史数据会向右移,在每分钟和每小时的会有峰值和平均值,峰值为现在每列的上端,不过是竖着排列的。
2.16.  生成意外导出文件(Exception Dump Files)
提问 在路由器发生意外当机的情况下生成导出文件发给TAC进行处理
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]ip ftp source-interface [i]Loopback0[/i][/b]
Router1(config)#[b]ip ftp username [i]ijbrown[/i][/b]
Router1(config)#[b]ip ftp password [i]ijpassword[/i][/b]
Router1(config)#[b]exception protocol ftp[/b]
Router1(config)#[b]exception region-size [i]65536[/i][/b]
Router1(config)#[b]exception dump [i]172.25.1.3[/i][/b]
Router1(config)#[b]end[/b]
Router1#

注释 缺省情况下路由器会使用tftp命令进行传送,不过TFTP有16M的限制所以建议换为FTP协议。另外为了防止当机导致文件不能生成,所以使用了[b]exception region-size [i]65536 [/i][/b]来提前保留部分内存给该命令使用。可以先使用[b]write core[/b]命令来提前实验下生成此文件
2.17.  生成接口信息报告
2.18.  生成路由表报告
2.19.  生成ARP表报告
2.20.  生成主机表报告
以上都是使用perl脚本来进行命令输出的汇总操作,脚本略去
第三章用户访问和权限管理
3.1.  设置用户名和密码
提问 为每个单独的人员设置不同的用户名和密码
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]username [i]neoshi  [/i]password [i]ioscookbook    [/i][/b][b](username [i]weak[/i] nopassword)[/b]
Router1(config)#[b]aaa new-model[/b]
Router1(config)#[b]aaa authentication login [i]local_auth[/i] local[/b]
Router1(config)#[b]line vty 0 4[/b]
Router1(config-line)#[b]login authentication [i]local_auth[/i][/b]
Router1(config-line)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
注释 设置单独的用户名和密码的好处就不用多说了,这里只提一个就是在日志中会显示谁做了修改,比如%SYS-5-RELOAD: Reload requested [b]by kdooley [/b]on vty0 (172.25.1.1).另外在username这个命令里面还有一个autocommand的选项,实现登录以后自动执行某个特定的命令的作用,下面的例子就是一个用户名为run无密码,登录以后显示完端口状态就自动退出的例子,很好用吧
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]aaa new-model[/b]
Router1(config)#[b]aaa authentication login default local[/b]
Router1(config)#[b]aaa authorization exec default local [/b]
Router1(config)#[b]username [i]run [/i]nopassword noescape[/b]
Router1(config)#[b]username [i]run [/i]autocommand [i]show ip interface brief[/i][/b]
Router1(config)#[b]end[/b]
Router1#

3.2.  加密密码
提问 加密密码从而在配置文件中不明文显示
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]enable password [i]oreilly[/i][/b]
Router1(config)#[b]line vty 0 [i]4[/i][/b]
Router1(config-line)#[b]password [i]cookbook[/i][/b]
Router1(config-line)#[b]line con 0[/b]
Router1(config-line)#[b]password [i]cookbook[/i][/b]
Router1(config-line)#[b]line aux 0[/b]
Router1(config-line)#[b]password [i]cookbook[/i][/b]
Router1(config-line)#[b]exit[/b]
Router1(config)#[b]service password-encryption[/b]
Router1(config)#[b]end[/b]
Router1#
注释 这种加密方式很弱,很容易被破解
3.3.  Using Better Password-Encryption Techniques
提问 使用强度高的加密方式而不是思科缺省的加密技术
回答
Router1#[b]configure terminal  [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]enable secret[/b] [b][i]ORAbooks[/i][/b]
Router1(config)#[b]end[/b]
Router1#
在IOS 12.2(8)T后也可以对username的密码做高强度的加密
Router#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#[b]username [i]ijbrown[/i] secret [i]oreilly [/i][/b]
Router(config)#[b]end[/b]
Router#

注释 由于这种加密方式使用的是MD5所以破解难度相对增大了。对于enable secret的密码有个小技巧就是密码设定正常没有?,不过可以通过^V+?的方式来输入。
3.4.  移去配置文件中的密码信息
提问 不想在配置文件中显示密码
回答 使用脚本略去
注释 简单的用show tech命令也可以
3.5.  解密思科的弱密码
提问 破解思科缺省的密码算法
回答 使用脚本略去
注释 可以使用BOSON网站上的免费工具
3.6.  显示当前登录用户
提问 显示当前登录设备的用户
回答
Router1#[b]show users [/b][b](who)[/b]
注释 无
3.7.  发信息给其它用户
提问 试图发送信息给登录在同一设备的其它用户
回答
Router1#[b]send * [/b]
Router1#[b]send console 0[/b]
Router1#[b]send vty [i]2[/i][/b]
Router1#[b]send [i]66[/i][/b]

注释 很好用的特性,比如当你重启的时候需要告诉别人,文本信息^+Z结束
3.8.  修改可用VTY数目
提问 增加或者减少可登录用户的数目
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]line vty [i]0 9[/i][/b]
Router1(config-line)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#

注释 缺省可登录vty数目为5,不能删除,对于增加的可以使用no line vty x 删除,不能不能删除单独的vty,是删除所有大于x的vty
3.9.  修改VTY的超时时长
提问 修改超时避免用户登录超时被系统断开
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]line vty [i]0 4[/i][/b]
Router1(config-line)#[b]exec-timeout 0 0   [/b][b](exec-timeout [i]240 0[/i])[/b]
Router1(config-line)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#

注释 缺省用户10分钟空闲就会被踢掉系统,0 0可以用不超时,第一个0是分钟,第二个0是秒。同时为了防止有些用户掉死但是还占用vty端口的情况,建议使用下面命令来防止:
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]service tcp-keepalives-in[/b]
Router1(config)#[b]end[/b]
Router1#
3.10.  限制用户登录可以使用的协议
提问 只允许用户用特定的协议来进行系统登录
回答
Router1#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]line vty [i]0 4[/i][/b]
Router1(config-line)#[b]transport input telnet[/b]
Router1(config-line)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#

注释 缺省情况下除了可以telnet登录,还支持以下协议登录[b]lat pad v120 lapb-ta rlogin ssh[/b]
3.11.  配置用户登录可用总时长Enabling Absolute Timeouts on VTY Lines
提问 对用户登录总时长进行限制,不论是否在空闲还是活动
回答 Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]line vty [i]0 4[/i][/b]
Router1(config-line)#[b]absolute-timeout [i]5[/i][/b]
Router1(config-line)#[b]logout-warning [i]30[/i][/b]
Router1(config-line)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#

注释 无
3.12.  部署Banners
提问 设置登录时显示的警示性信息
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]banner exec[/b]  [b][i]# This is an exec banner #[/i][/b]
Router1(config)#[b]banner login [i]# This is a login banner #[/i][/b]
Router1(config)#[b]banner motd  [i]$ This is a motd banner  $[/i][/b]
Router1(config)#[b]end[/b]
Router1#

注释 不用使用welcome之类的字样,下面是一个FBI的路由器登录banner做参考
Router1(config)#[b]banner login [i]#[/i][/b]
Enter TEXT message.  End with the character '#'.

[b][i]+--------------------------------------------------------------------+[/i][/b]
[b][i]|                              WARNING                               |[/i][/b]
[b][i]|                              -------                               |[/i][/b]
[b][i]| This system is solely for the use of authorized users for official |[/i][/b]
[b][i]| purposes.  You have no expectation of privacy in its use and to    |[/i][/b]
[b][i]| ensure that the system is functioning properly, individuals using  |[/i][/b]
[b][i]| this computer system are subject to having all of their activities |[/i][/b]
[b][i]| monitored and recorded by system personnel. Use of this system     |[/i][/b]
[b][i]| evidences an express consent to such monitoring and agreement that |[/i][/b]
[b][i]| if such monitoring reveals evidence of possible abuse or criminal  |[/i][/b]
[b][i]| activity, system personnel may provide the results of such         |[/i][/b]
[b][i]| monitoring to appropriate officials.                               |[/i][/b]
[b][i]+--------------------------------------------------------------------+[/i][/b]
[b][i]#[/i][/b]
Router1(config)#[b]end[/b]
Router1#
3.13.  在特定端口禁用Banners显示
提问 aux口用于modem连接,为了避免出现问题希望关闭banner显示
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]line aux 0[/b]     
Router1(config-line)#[b]no motd-banner [/b]
Router1(config-line)#[b]no exec-banner [/b]
Router1(config-line)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#

注释
3.14.  禁用Line登录
提问 禁止在AUX或者Line端口进行设备登录
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]line aux 0[/b]
Router1(config-line)#[b]transport input none[/b]
Router1(config-line)#[b]no exec[/b]
Router1(config-line)#[b]exec-timeout [i]0 1[/i][/b]
Router1(config-line)#[b]no password[/b]
Router1(config-line)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]access-list[/b] [b][i]98 [/i]deny any log[/b]
Router1(config)#[b]line vty [i]0 4[/i][/b]
Router1(config-line)#[b]transport input none[/b]
Router1(config-line)#[b]exec-timeout [i]0 1[/i][/b]
Router1(config-line)#[b]no exec[/b]
Router1(config-line)#[b]access-class [i]98 [/i]in[/b]
Router1(config-line)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#

注释 无
3.15.  为管理员保留特定的登录端口
提问 防止所有的登录端口都被占用,为管理员留一个后门
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]access-list[/b] [b][i]9 [/i]permit [i]172.25.1.1[/i][/b]
Router1(config)#[b]line vty [i]4[/i][/b]
Router1(config-line)#[b]access-class [i]9 [/i]in[/b]
Router1(config-line)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
或者
Router1#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]access-list[/b] [b][i]9 [/i]permit [i]172.25.1.1[/i][/b]
Router1(config)#[b]line vty[/b] [b][i]5 7[/i][/b]
Router1(config-line)#[b]rotary[/b] [b][i]25[/i][/b]
Router1(config-line)#[b]access-class[/b] [b][i]9[/i][/b] [b]in[/b]
Router1(config-line)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#

注释 在使用第二种rotary命令时就相应的改变登录时的端口号码,不是缺省的23,而是3000+rotary的号码25=3025
3.16.  限制特定地址的Telnet登录  
提问 只允许特定的机器进行Telnet登录
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]access-list[/b] [b][i]99 [/i]permit [i]172.25.1.0 0.0.0.255[/i][/b]
Router1(config)#[b]access-list [i]99 [/i]deny any log[/b]               
Router1(config)#[b]line vty [i]0 4[/i][/b]
Router1(config-line)#[b]access-class [i]99 [/i]in[/b]
Router1(config-line)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
注释 无
3.17.  对Telnet访问进行日志记录
提问 记录每次telnet的日志
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]access-list[/b] [b][i]90 [/i]permit any log[/b]
Router1(config)#[b]line vty [i]0 4[/i][/b]
Router1(config-line)#[b]access-class [i]90 [/i]in[/b]
Router1(config-line)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
注释 需要注意的是不管登录成功还是失败,在日志中都是显示的permitted:
%SEC-6-IPACCESSLOGS: list 90 permitted 172.25.1.1 1 packet
3.18.  设置发起Telnet的源地址
提问 有时对端设备有安全设置只允许特定的地址发起telnet请求
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]ip telnet source-interface [i]loopback0[/i][/b]
Router1(config)#[b][i]end[/i][/b]
Router1#
或者
Router1#[b]telnet [i]172.25.1.5 [/i]/source-interface [i]loopback0[/i][/b]
注释 缺省情况路由器会使用到目的地所使用的端口来做Telnet的源地址
3.19.  自动登录
注释 使用脚本略去,其实用SecueCRT很容易设定
3.20.  使用SSH登录
提问 启用SSH这种加密的登录方式
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]hostname [i]Router1[/i][/b]
Router1(config)#[b]ip domain-name [i]neoshi.net[/i][/b]
Router1(config)#[b]crypto key generate rsa[/b]
The name for the keys will be: Router1.oreilly.com
Choose the size of the key modulus in the range of 360 to 2048 for your
  General Purpose Keys. Choosing a key modulus greater than 512 may take
  a few minutes.

How many bits in the modulus [512]: [b][i]1024[/i][/b]
Generating RSA keys ...
[OK]

Router1(config)#
Jun 27 15:04:15: %SSH-5-ENABLED: SSH 1.5 has been enabled
Router1(config)#[b]ip ssh time-out [i]120 [/i][/b]
Router1(config)#[b]ip ssh authentication-retries [i]4[/i][/b]
Router1(config)#[b]end[/b]
Router1#
注释 从IOS 12.3(4)T开始支持SSH v2,之前只支持v1,首先要确认你的IOS版本,然后确认支持安全特性3DES,才能开启SSH的特性
3.21.       改变IOS命令的特权等级
提问 修改特定IOS命令的特权等级
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]privilege exec level [i]1 show startup-config[/i][/b]
Router1(config)#[b]end[/b]
Router1#
注释 缺省情况路由器支持16种特权等级,命令一般归属于0,1和15三种特权等级,在特权等级0下面只支持disable, enable, exit, help, 和logout命令,1下面不能对配置进行修改,15就是enable的特权等级
3.22.  基于用户的特权等级Defining Per User Privileges
提问 给不同的用户赋予不同的特权等级
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]aaa new-model[/b]
Router1(config)#[b]aaa authentication login default local[/b]
Router1(config)#[b]aaa authorization exec default local [/b]
Router1(config)#[b]username [i]neoshi [/i]privilege [i]10 password ioscookbook[/i][/b]
Router1(config)#[b]privilege exec level [i]10 show ip route[/i][/b]
Router1(config)#[b]privilege exec level [i]1 show ip       [/i][/b]
Router1(config)#[b]privilege exec level [i]1 show   [/i][/b]
Router1(config)#[b]end[/b]
Router1#
注释 通常的0,1和15三种等级弹性不足,可以定义更多的等级给不同的用户
3.22.       基于端口的特权等级
提问 根据登录的不同端口自动赋予特定的特权等级
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]line [i]aux 0[/i][/b]
Router1(config-line)#[b]privilege level [i]5[/i][/b]
Router1(config-line)#[b]exit[/b]
Router1(config)#[b]privilege exec level [i]5 show ip route[/i][/b]
Router1(config)#[b]privilege exec level [i]1 show ip      [/i][/b]
Router1(config)#[b]privilege exec level [i]1 show   [/i][/b]
Router1(config)#[b]end[/b]
Router1#
注释 无
第四章TACAS+
4.1.  用户登录集中鉴权
提问 使用集中的鉴权方式对用户登录设备进行控制
回答
Router1#[b]configure terminal[/b][b] [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]aaa new-model[/b]
Router1(config)#[b]aaa authentication login default group tacacs+[/b]
Router1(config)#[b]aaa authentication enable default group tacacs+[/b]
Router1(config)#[b]tacacs-server host [i]172.25.1.1[/i][/b]
Router1(config)#[b]tacacs-server key [i]COOKBOOK[/i][/b]
Router1(config)#[b]end[/b]
Router1#

注释 部署集中化鉴权就不需要在每台设备上配置用户名密码了,改密码也变得简单了
4.2.  限制特定命令的执行权限
提问 对设备可执行命令权限进行基于用户的授权
回答
Router1#[b]configure terminal[/b][b] [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]aaa new-model[/b]
Router1(config)#[b]aaa authorization exec default group tacacs+[/b][b] [/b]
Router1(config)#[b]aaa authorization commands [i]15 [/i]default group tacacs+[/b][b] [/b]
Router1(config)#[b]tacacs-server host [i]172.25.1.1[/i][/b]
Router1(config)#[b]tacacs-server key [i]neoshi[/i][/b]
Router1(config)#[b]end[/b]
Router1#

注释 无
4.3.  TACACS+服务器无法访问
提问 防止出现TACACS+服务器故障导致所有用户都不能登录
回答
Router1#[b]configure terminal[/b][b] [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]aaa new-model[/b]
Router1(config)#[b]aaa authentication login default group tacacs+ enable[/b]
Router1(config)#[b]aaa authentication enable default group tacacs+ enable[/b]
Router1(config)#[b]aaa authorization commands [i]15[/i] default group tacacs+ if-authenticated[/b]
Router1(config)#[b]tacacs-server host [i]172.25.1.1[/i][/b]
Router1(config)#[b]tacacs-server key [i]COOKBOOK[/i][/b]
Router1(config)#[b]end[/b]
Router1#

注释 在认证服务器出现故障的情况下使用enable密码作为备份,同时建议使用[b]if-authenticated[/b]参数在你配置授权的时候
4.4.  在特定端口禁用TACACS+鉴权
提问 为了方便禁止在控制口使用TACACS+鉴权
回答
Router1#[b]configure terminal[/b][b] [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]aaa new-model[/b]
Router1(config)#[b]aaa authentication login default group tacacs+ local[/b]
Router1(config)#[b]aaa authentication login [i]NEOSHI [/i]line[/b]
Router1(config)#[b]line con 0[/b]
Router1(config-line)#[b]login authentication [i]NEOSHI[/i][/b]
Router1(config-line)#[b]end[/b]
Router1#

注释
4.5.  记录用户行为
提问 记录用户输入的配置命令和时间
回答
Router1#[b]configure terminal[/b][b] [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]aaa new-model[/b]
Router1(config)#[b]aaa accounting commands [i]1 [/i]default stop-only group tacacs+[/b]
Router1(config)#[b]aaa accounting commands [i]15[/i][/b] [b]default stop-only group tacacs+[/b]
Router1(config)#[b]end[/b]
Router1#

注释 下面是一条日志记录,很详尽吧
Fri Jan  3 11:08:47 2006        toronto ijbrown tty66   172.25.1.1      stop    task_id=512 start_time=1041610127   timezone=EST    service=shell   priv-lvl=15     cmd=configure terminal

4.6.  记录系统事件
提问 记录系统事件
回答
Router1#[b]configure terminal[/b][b] [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]aaa new-model[/b]
Router1(config)#[b]aaa accounting exec default start-stop group tacacs+[/b]
Router1(config)#[b]aaa accounting connection default start-stop group tacacs+[/b]
Router1(config)#[b]aaa accounting system default stop-only group tacacs+[/b]
Router1(config)#[b]end[/b]
Router1#
注释 除了可以记录用户输入命令以外还提供了exec(用户开始和中止exec会话的时间记录),connection(用户发起外部连接的时间,地址,数据包多少等信息记录比如telnet ssh等)和system(系统重启,禁用AAA等系统信息)等三种系统事件的记录
4.7.  设置TACACS+消息的源地址
提问 发送TACACS+消息时只使用特定的源地址
回答
Router1#[b]configure terminal[/b][b] [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]ip tacacs source-interface [i]Loopback0[/i][/b]
Router1(config)#[b]end[/b]
Router1#

注释 所有本设备的记录都来自于同一地址方便对日志进行汇总和统计
4.8.       TACACS+服务器配置文件样本
注释 可以使用思科免费的TACACS+服务器也可以使用商业的服务器,配置方式略
第五章IP路由
5.1.  查找路由条目
提问 在路由表中查找特定的路由条目
回答
Router>[b]show ip route[i] 172.25.100.15[/i][/b]
Routing entry for 172.25.100.0/24
  Known via "ospf 55", distance 110, metric 11, type inter area
  Redistributing via ospf 55
  Last update from 172.25.1.1 on Ethernet0, 2d12h ago
  Routing Descriptor Blocks:
  * 172.25.1.1, from 172.25.1.1, 2d12h ago, via Ethernet0
      Route metric is 11, traffic share count is 1
注释 路由器在路由表中查找路由条目的原则是最长匹配,所以例子中虽然查找的是172.25.200.15但是由于没有这条特定的路由,显示的结果是最长匹配的172.15.100.0/24。如果没有任何一条匹配只能使用缺省路由,会出现下面信息
Router> [b]show ip route [i]172.15.101.5[/i][/b]
% Network not in table
注意的是这里都是无类路由,如果有类的就不一样了
5.2.  查找特定类型的路由条目
提问 在路由表中查找相同类型的路由条目
回答
Router>[b]show ip route static[/b]
     192.168.1.0/32 is subnetted, 1 subnets
S       192.168.1.1 [1/0] via 172.25.1.4
还有一个更有用的命令
Router>[b]show ip route summary[/b]
IP routing table name is Default-IP-Routing-Table(0)
Route Source    Networks    Subnets     Overhead    Memory (bytes)
connected       0           3           328         432
static          1           0           64          144
ospf 55         1           3           256         576
  Intra-area: 1 Inter-area: 2 External-1: 1 External-2: 0
  NSSA External-1: 0 NSSA External-2: 0
internal        2                                   2328
Total           4           6           648         3480

注释 通过显示路由表的统计情况来了解当前路由器的路由条目,也可以用来以后的比对
5.3.  各种掩码的转换
注释 脚本略去,建议使用Boson提供的免费转换工具
5.4.  使用静态路由
提问 配置静态路由
回答
Router#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#[b]ip route [i]10.35.15.5 255.255.255.255 [/i]Ethernet0 [/b][b](permanent选项可以使此条目一直存在于路由表中,而不管下一跳的可达性)[/b]
Router(config)#[b]ip route [i]172.16.0.0 255.255.0.0 10.35.6.1 2  [/i][/b][b][i]([/i][/b][b]permanent[/b][b])[/b]
Router(config)#[b]end[/b]
Router#
也可以给路由条目打上标签
Router#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#[b]ip route [i]172.16.0.0 255.255.0.0 10.35.6.1 2 [/i]tag[/b] [b][i]36291[/i][/b]
Router(config)#[b]end[/b]
Router#

注释 在类似以太网这种多路访问的网络中建议使用下一跳为地址而不是接口。正常情况下路由器对静态路由的下一跳有效性的检查是一分钟,在12.3(10)以后增加了下面的命令可以对此时间进行调整Router(config)#[b]ip route static adjust-time [i]30[/i][/b][b][i]。[/i][/b]对静态路由打tag用于路由再发布时的区分
5.5.  浮动静态路由
提问 当动态路由出问题的时候使用静态路由作为备份
回答
Router#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#[b]ip route [i]10.0.0.0 255.0.0.0 172.16.1.1 [/i]190  [/b][b](下一跳也可以触发一个拨号接口)[/b]
Router(config)#[b]end[/b]
Router#

注释 通过调整管理距离的方式来进行路由备份,不过要注意的是管理距离只适合在相同路由的情况下,路由条目的最长匹配是第一位的。另外在不同厂商设备互联的时候,调整管理距离一定要设置合理。
5.6.  基于源地址的策略路由
提问 根据源地址的不同选择不同的路径
回答
Router#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#[b]access-list [i]1[/i][/b] [b]permit [i]10.15.35.0 0.0.0.255[/i][/b]
Router(config)#[b]access-list [i]2[/i][/b] [b]permit [i]10.15.36.0 0.0.0.255[/i][/b]
Router(config)#[b]interface [i]Ethernet0[/i][/b]
Router(config-if)#[b]ip address [i]10.15.22.7 255.255.255.0[/i][/b]
Router(config-if)#[b]ip policy route-map [i]Engineers[/i][/b]
Router(config-if)#[b]ip route-cache policy[/b]
Router(config-if)#[b]exit[/b]
Router(config)#[b]route-map [i]Engineers [/i]permit [i]10[/i][/b]
Router(config-route-map)#[b]match ip address [i]1[/i][/b]
Router(config-route-map)#[b]set ip next-hop [i]10.15.27.1[/i][/b]
Router(config-route-map)#[b]exit[/b]
Router(config)#[b]route-map [i]Engineers [/i]permit [i]20[/i][/b]
Router(config-route-map)#[b]match ip address [i]2[/i][/b]
Router(config-route-map)#[b]set interface [i]Ethernet1[/i][/b]
Router(config-route-map)#[b]end[/b]
Router#
注释 缺省情况下route map的最后一句都是deny all,这样不符合route map规则的数据包都会按照正常的路由表进行转发。[b]set ip next-hop verify-availability[/b]命令提供了对下一跳的验证,不过是基于CDP的,所以如果使用此命令需要打开CDP,最好同时调整时长,毕竟缺省是180秒。在使用策略路由时会在排错时增加难度,因为缺省对于本路由器发出的数据包可以绕过route map这样会造成错觉。
5.7.  基于应用的策略路由
提问 根据不同的应用来选择不同的路径
回答
Router#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#[b]access-list [i]101 [/i]deny tcp [i]10.15.25.0 0.0.0.255 [/i]any eq [i]www[/i][/b]
Router(config)#[b]access-list [i]101 [/i]permit tcp any any eq [i]www[/i][/b]
Router(config)#[b]interface [i]Ethernet0[/i][/b]
Router(config-if)#[b]ip address [i]10.15.22.7 255.255.255.0[/i][/b]
Router(config-if)#[b]ip policy route-map [i]Websurfers[/i][/b]
Router(config-if)#[b]ip route-cache policy[/b]
Router(config-if)#[b]exit[/b]
Router(config)#[b]route-map [i]Websurfers [/i]permit [i]10[/i][/b]
Router(config-route-map)#[b]match ip address [i]101[/i][/b]
Router(config-route-map)#[b]set ip next-hop [i]10.15.27.1[/i][/b]
Router(config-route-map)#[b]exit[/b]
Router(config)#[b]route-map [i]Websurfers [/i]permit [i]20[/i][/b]
Router(config-route-map)#[b]set ip default next-hop [i]10.15.26.1[/i][/b]
Router(config-route-map)#[b]end[/b]
Router#
对于本设备的发出的数据包也使用策略路由
Router#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#[b]ip local policy route-map[/b] [b][i]dlswtraffic[/i][/b]
Router(config)#[b]access-list [i]103 [/i]permit tcp any any eq [i]2065[/i][/b]
Router(config)#[b]access-list [i]103 [/i]permit tcp any eq [i]2065 [/i]any[/b]
Router(config)#[b]route-map [i]dlswtraffic [/i]permit [i]10[/i][/b]
Router(config-route-map)#[b]match ip address [i]103[/i][/b]
Router(config-route-map)#[b]set ip next-hop [i]10.15.27.3[/i][/b]
Router(config-route-map)#[b]end[/b]
Router#

注释 正常情况下如果所有定义的下一跳都不存在的情况下会使用路由表来查询,如果路由表没有此定义会使用缺省路由,这时候你可以使用[b]set ip default next-hop[/b]来定义一个不同的缺省路由
5.8.  策略路由检查
提问 检查所应用的策略路由
回答
Router>[b]show ip policy[/b]
Interface      Route map
local          dlswtraffic
Ethernet0      Websurfers
Serial0        High-priority
Router>[b]show route-map[/b]
route-map High-priority, permit, sequence 10
  Match clauses:
    ip address (access-lists): 101
  Set clauses:
    ip next-hop 10.15.27.1
  Policy routing matches: 0 packets, 0 bytes
route-map Websurfers, permit, sequence 10
  Match clauses:
    ip address (access-lists): 102
  Set clauses:
    ip next-hop 10.15.27.1
  Policy routing matches: 0 packets, 0 bytes
route-map Websurfers, permit, sequence 20
  Match clauses:
  Set clauses:
    ip default next-hop 10.15.26.1
  Policy routing matches: 4 packets, 531 bytes
route-map dlswtraffic, permit, sequence 10
  Match clauses:
    ip address (access-lists): 103
  Set clauses:
    ip next-hop 10.15.27.3
  Policy routing matches: 5 packets, 500 bytes

注释 也可以通过[b]show access-list 103[/b]命令看到更多的匹配信息

5.9.  改变管理距离
提问 调整学到的外部网络的缺省管理距离
回答
Router#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#[b]router rip[/b]
Router(config-route)#[b]network [i]192.168.15.0[/i][/b]
Router(config-route)#[b]distance [i]15 192.168.15.1 0.0.0.0[/i][/b]
Router(config-route)#[b]distance [i]200 192.168.15.0 0.0.0.255[/i][/b]
Router(config-route)#[b]distance [i]255[/i][/b]
Router(config-route)#[b]end[/b]
Router#
Router#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#[b]router eigrp [i]111[/i][/b]
Router(config-route)#[b]network [i]192.168.16.0[/i][/b]
Router(config-route)#[b]distance eigrp [i]55 200[/i][/b]
Router(config-route)#[b]end[/b]
Router#
Router#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#[b]router ospf [i]66[/i][/b]
Router(config-route)#[b]distance ospf inter-area [i]115[/i][/b]
Router(config-route)#[b]distance ospf intra-area [i]105[/i][/b]
Router(config-route)#[b]distance ospf external [i]125[/i][/b]
Router(config-route)#[b]end[/b]
Router#
Router#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#[b]router bgp [i]65520[/i][/b]
Router(config-route)#[b]distance bgp [i]115 220 50[/i][/b]
Router(config-route)#[b]end[/b]
Router#

注释 管理距离只是针对自己的,通过调整这些外部路由的管理距离来调整自己路由表的结构
5.10.  相同代价值的多路径路由
提问 限制路由器到达同一目的地的路径数目
回答
Router#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#[b]router ospf [i]65510[/i][/b]
Router(config-router)#[b]maximum-paths [i]2[/i][/b]
Router(config-router)#[b]end[/b][b] [/b]
Router#
IOS 12.2T以后对BGP增加了下面的命令
Router#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#[b]router bgp [i]65511[/i][/b]
Router(config-router)#[b]maximum-paths [i]2[/i][/b]
Router(config-router)#[b]maximum-paths ibgp [i]3[/i][/b]
Router(config-router)#[b]end[/b]
Router#

注释 缺省情况下静态路由可以有6条冗余,BGP只有一条最佳路径,其他路由协议为4条。使用上述命令在12.3(2)T之前可以调整最大为6条,12.3(2)T之后可以最大为16条
5.11.  配置静态路由的追踪
提问 在某个端口当掉等情况下才启用特定的静态路由
回答
Router#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#[b]track [i]10[/i][/b] [b]interface [i]Serial0/0[/i][/b] [b]line-protocol[/b]
Router(config-track)#[b]delay down[/b] [b][i]5[/i] up [i]30[/i][/b]
Router(config-track)#[b]exit[/b]
Router(config)#[b]ip route [i]192.168.10.0 255.255.255.0 10.3.12.26[/i][/b] [b]track[/b] [b][i]10[/i][/b]
Router(config)#[b]end[/b][b] [/b]
Router#
Router#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#[b]track [i]11[/i][/b] [b]ip route [i]10.2.95.0 255.255.255.0 [/i]reachability[/b]
Router(config-track)#[b]delay down[/b] [b][i]5 [/i]up [i]5[/i][/b]
Router(config-track)#[b]exit[/b]
Router(config)#[b]ip route [i]0.0.0.0 0.0.0.0[/i][/b] [b][i]10.3.12.26[/i][/b] [b]track[/b] [b][i]11[/i][/b]
Router(config)#[b]end[/b][b] [/b]
Router#
Router#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#[b]track [i]12[/i][/b] [b]list boolean and[/b]
Router(config-track)#[b]object [i]10 [/i]not[/b]
Router(config-track)#[b]object [i]11[/i][/b][b] [/b]
Router(config-track)#[b]exit[/b]
Router(config)#[b]ip route [i]192.168.13.0 255.255.255.0[/i][/b] [b][i]10.3.12.26[/i][/b] [b]track[/b] [b][i]12[/i][/b]
Router(config)#[b]end[/b]
Router#

注释 从12.3T和12.4以后开始IOS提供了一种track的特性,可以定义跟踪不同的状态。可以使用show track命令来查看跟踪的状态。跟踪状态也可以进行组合,使用and or逻辑运算或者百分比,权重等增加灵活度,很好玩,不过别把自己绕进去了
5.12.       路由表变动统计
提问 通过路由表变动的统计来衡量路由表的稳定性
回答
Router#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#[b]ip route profile[/b]
Router(config)#[b]end[/b][b] [/b]
Router#
Router#[b]show ip route profile[/b]
IP routing table change statistics:
Frequency of changes in a 5 second sampling interval
-------------------------------------------------------------
Change/   Fwd-path  Prefix   Nexthop  Pathcount  Prefix
interval  change    add      change   change     refresh
-------------------------------------------------------------
0         327       327      335      335        331
1         4         4        0        0          1
2         2         2        0        0          1
3         0         0        0        0          0
4         1         1        0        0          1
…….
Router#

注释 12.0就有的一个老命令,但估计很少有人使用,这个统计也是够难懂的,简单的说最理想的情况就是第一行数目很大,其他行都是0。统计方法是每3秒一个间隔,在这个间隔内如果有1次路由表变化就累计一次,多次变化就累计多次。但这个命令还是有一些缺点,一就是不能清掉老的数据,必须通过[b]no ip route profile,[/b]然后[b]ip route profile [/b]来清除,还有就是这里只是统计结果,没有办法确定是哪条路由出的问题

第六章RIP
6.1.  配置RIP
提问 在简单的网络中启用RIP路由协议
回答
Router2#[b]configure terminal[/b][b] [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router2(config)#[b]interface [i]Ethernet0[/i][/b]
Router2(config-if)#[b]ip address [i]192.168.30.1 255.255.255.0[/i][/b]
Router2(config-if)#[b]interface [i]Serial0.1[/i][/b]
Router2(config-subif)#[b]ip address [i]172.25.2.2 255.255.255.0[/i][/b]
Router2(config-subif)#[b]exit[/b]
Router2(config)#[b]router rip[/b]
Router2(config-router)#[b]network [i]172.25.0.0[/i][/b]
Router2(config-router)#[b]network [i]192.168.30.0[/i][/b]
Router2(config-router)#[b]exit[/b]
Router2(config)#[b]end[/b]
Router2#

注释 要特别注意的是版本1的RIP中的network命令是无类的,就算你配置命令是无类的网络,路由器内部还是会转化为无类的。[b]show ip rip database [/b]是一个很好的验证命令

6.2.  RIP中的路由过滤
提问 限制RIP中某些特定路由条目的交换
回答
入方向
Router2#[b]configure terminal[/b][b] [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router2(config)#[b]access-list[i] 10 [/i]deny [i]192.168.20.0[/i][/b]
Router2(config)#[b]access-list [i]10 [/i]permit any[/b][b] [/b]
Router2(config)#[b]router rip[/b]
Router2(config-router)#[b]distribute-list [i]10 [/i]in [i]Serial 0.1               [/i][/b][b][i](该命令除了可以用于特定接口也可以用于所有接口)[/i][/b]
Router2(config-router)#[b]network [i]172.25.0.0[/i][/b]
Router2(config-router)#[b]network [i]192.168.30.0[/i][/b]
Router2(config-router)#[b]exit[/b]
Router2(config)#[b]end[/b]
Router2#
出方向
Router1#[b]configure terminal[/b][b] [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]access-list[/b] [b][i]20 [/i]permit [i]0.0.0.0[/i][/b]
Router1(config)#[b]access-list [i]20 [/i]deny any[/b]
Router1(config)#[b]router rip[/b]
Router1(config-router)#[b]distribute-list [i]20 [/i]out [i]Serial0/0.2[/i][/b]
Router1(config-router)#[b]network [i]172.25.0.0[/i][/b]
Router1(config-router)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
注释 使用[b]show ip protocol[/b]命令可以用来验证所配置的distribute-list

6.3.  再发布静态路由至RIP
提问 再发布你所配置的静态路由到RIP路由协议中
回答
Router1#[b]configure terminal[/b][b] [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]ip route [i]192.168.10.0 255.255.255.0 172.22.1.4[/i][/b]
Router1(config)#[b]router rip[/b]
Router1(config-router)#[b]redistribute static metric [i]5[/i][/b]
Router1(config-router)#[b]distribute-list [i]7 [/i]out static[/b]
Router1(config-router)#[b]exit[/b]
Router1(config)#[b]access-list[/b] [b][i]7 [/i]permit [i]192.168.10.0[/i][/b]
Router1(config)#[b]end[/b]
Router1#

注释 这里再发布还是要注意无类路由的问题,所以还是建议用V2。例子是再发布静态路由,也可以再发布其他动态路由协议,比如OSPF,BGP,EIGRP等,命令类似[b]redistribute eigrp [i]65530[/i][/b]
有一个好玩的情况是虽然此命令也可以支持RIP自己的再发布,但是配置时候是不允许的,因为RIP没有其他动态路由协议中的进程号的概念,无法区别不同的进程
6.4.  使用Route Maps进行路由再发布  
提问 使用Route Maps这种更好控制粒度的方式来进行路由再发布的配置
回答
Router1#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]ip route [i]192.168.10.0 255.255.255.0 172.22.1.4[/i][/b]
Router1(config)#[b]ip route [i]192.168.11.0 255.255.255.0 172.22.1.4[/i][/b]
Router1(config)#[b]ip route [i]192.168.12.0 255.255.255.0 172.22.1.4[/i][/b]
Router1(config)#[b]access-list [i]20 [/i]permit [i]192.168.10.0[/i][/b]
Router1(config)#[b]access-list [i]21 [/i]permit [i]192.168.11.0[/i][/b]
Router1(config)#[b]route-map [i]STATIC [/i]permit [i]10[/i][/b]
Router1(config-route-map)#[b]match ip address [i]20[/i][/b]
Router1(config-route-map)#[b]set metric [i]2[/i][/b]
Router1(config-route-map)#[b]set tag [i]2[/i][/b]
Router1(config-route-map)#[b]exit[/b]
Router1(config)#[b]route-map [i]STATIC [/i]permit [i]20[/i][/b]
Router1(config-route-map)#[b]match ip address[i] 21[/i][/b]
Router1(config-route-map)#[b]set metric [i]8[/i][/b]
Router1(config-route-map)#[b]route-map [i]STATIC [/i]deny [i]30[/i][/b]
Router1(config-route-map)#[b]exit[/b]
Router1(config)#[b]router rip[/b]
Router1(config-router)#[b]redistribute static route-map [i]STATIC[/i][/b]
Router1(config-router)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#

注释 使用route map可以对路由再发布进行更好粒度的控制,如果觉得配置命令难懂的话,使用验证命令[b]show route-map [/b]可能更好理解一些
6.5.  在RIP中宣告缺省路由  
提问 使用RIP来宣告一条缺省路由
回答
Router1#[b]configure terminal[/b][b] [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]ip route 0.0.0.0 0.0.0.0 [i]172.25.1.1[/i][/b]
Router1(config)#[b]router rip[/b]
Router1(config-router)#[b]default-information originate[/b]
Router1(config-router)#[b]end[/b]
Router1#
或者使用再发布命令
Router1#[b]configure terminal[/b][b] [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]ip route 0.0.0.0 0.0.0.0 [i]172.25.1.1[/i][/b]
Router1(config)#[b]access-list [i]7 [/i]permit[i] 0.0.0.0[/i][/b]
Router1(config)#[b]router rip[/b]
Router1(config-router)#[b]redistribute static[/b]
Router1(config-router)#[b]distribute-list [i]7 [/i]out static[/b]
Router1(config-router)#[b]end[/b]
Router1#

注释 推荐使用第一种方式,除了可以免除使用过滤列表以外还可以和route map来组合使用
6.6.  在特定接口禁用RIP  
提问 阻止某个接口参与RIP
回答
Router1#[b]configure terminal[/b][b] [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]access-list[/b] [b][i]12 [/i]deny any[/b]
Router1(config)#[b]router rip[/b][b] [/b]
Router1(config-router)#[b]passive-interface [i]FastEthernet0/1[/i][/b]
Router1(config-router)#[b]distribute-list [i]12 [/i]in [i]FastEthernet0/1[/i][/b]
Router1(config-router)#[b]end[/b]
Router1#

注释 [b][i]passive-interface[/i][/b] 用于防止端口发送路由信息,但是并不能控制此接口不接收路由信息,所以要再使用[b][i]distribute-list [/i][/b]命令来防止此接口接收路由信息
6.7.  缺省被动接口
提问 缺省在所有端口禁用RIP,除非特别指定
回答
Router1#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]router rip[/b]
Router1(config-router)#[b]passive-interface default[/b]
Router1(config-router)#[b]no passive-interface [i]FastEthernet0/0.1[/i][/b]
Router1(config-router)#[b]network [i]172.22.0.0[/i][/b]
Router1(config-router)#[b]network [i]172.25.0.0[/i][/b]
Router1(config-router)#[b]network [i]192.168.1.0[/i][/b]
Router1(config-router)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
注释 无
6.8.  RIP更新使用单播包  
提问 不想使用组播或者广播的形式来发布路由更新
回答
Router1#[b]configure terminal[/b][b] [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]router rip[/b]
Router1(config-router)#[b]passive-interface [i]FastEthernet0/1[/i][/b]
Router1(config-router)#[b]neighbor [i]172.22.1.4[/i][/b]
Router1(config-router)#[b]end[/b]
Router1#
注释 缺省V1使用广播包,V2使用组播包的形式来发布路由更新
6.9.  对路由应用Offsets  
提问 修改特定接口学到或者发布路由的度量值
回答
Router2#[b]configure terminal[/b][b] [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router2(config)#[b]access-list[/b] [b][i]22 [/i]permit [i]192.168.20.0[/i][/b]
Router2(config)[b]#access-list 33 permit 192.168.30.0[/b]
Router2(config)#[b]router rip[/b]
Router2(config-router)[b]#offset-list 33 out [i]10 Serial0.1[/i][/b]
Router2(config-router)#[b]offset-list [i]22 [/i]in [i]5 Serial0.1[/i][/b]
Router2(config-router)#[b]exit[/b]
Router2(config)#[b]end[/b]
Router2#
注释 RIP是根据跳数来进行选路而没有考虑到链路的不同,通过这样的命令可以变相的增加某个接口的度量值,从而在选路时考虑,注意的是offset只能增加度量值不能减少
6.10.  定时器调整  
提问 对RIP的定时器设定进行调整,提高收敛速度
回答
Router2#[b]configure terminal[/b][b] [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router2(config)#[b]router rip[/b]
Router2(config-router)#[b]timers basic [i]20 80 80 120[/i][/b][b][i]  [/i][/b]
Router2(config-router)#[b]exit[/b]
Router2(config)#[b]end[/b]
Router2#
注释 所有定时器单位都是秒,第一个为更新周期,第二个为无效路由时间,第三个为保持时间,第四个为flush时间。需要注意的是要确保启用RIP的网络定时器都设置一致
6.11.  增加路由更新数据包发送延迟
提问 避免路由更新数据包发送速度太快导致老设备来不及处理
回答
Router2#[b]configure terminal[/b][b] [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router2(config)#[b]router rip[/b]
Router2(config-router)#[b]output-delay [/b]10
Router2(config-router)#[b]exit[/b]
Router2(config)#[b]end[/b]
Router2#
注释 正常情况下一个RIP更新数据包大小为512字节可以包含25条路由条目,如果路由表条目大于25就会通过多个路由更新包来发送,正常是尽可能快的发,启用本特性可以增加发送的间隔,单位为毫秒
6.12.  启用非周期性更新
提问 避免使用每30秒的周期性更新,使用触发更新
回答
Router1#[b]configure terminal[/b][b] [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]interface [i]Serial0/0.2[/i][/b]
Router1(config-subif)#[b]ip rip triggered[/b]
Router1(config-subif)#[b]end[/b]
Router1#
注释 一定要在邻居路由器上也启用此特性,只能用于点对点链路
6.13.  增加RIP的输入队列
提问 在低端路由器上增加RIP的输入队列避免丢失路由信息
回答
Router2#[b]configure terminal[/b][b] [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router2(config)#[b]router rip[/b]
Router2(config-router)#[b]input-queue [i]200[/i][/b]
Router2(config-router)#[b]end[/b]
Router2#
注释 类似6.11
6.14.       配置RIP(V2)
提问 启用更灵活的版本2 RIP
回答
Router2#[b]configure terminal[/b][b] [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router2(config)#[b]router rip[/b]
Router2(config-router)#[b]version [i]2[/i][/b]
Router2(config-router)#[b]network [i]172.25.0.0[/i][/b]
Router2(config-router)#[b]network [i]192.168.30.0[/i][/b]
Router2(config-router)#[b]end[/b]
Router2#
注释 缺省情况下路由器会监听v1和v2的RIP数据包,但是只会发送v1的数据包
6.15.  启用RIP认证
提问 对RIP的数据包进行认证增加安全性
回答
Router1#[b]configure terminal[/b][b] [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]key chain [i]ORA[/i][/b]
Router1(config-keychain)#[b]key [i]1[/i][/b]
Router1(config-keychain-key)#[b]key-string [i]neoshi[/i][/b]
Router1(config-keychain-key)#[b]exit[/b]
Router1(config)#[b]interface [i]FastEthernet0/0.1[/i][/b][b][i] [/i][/b]
Router1(config-subif)#[b]ip rip authentication key-chain [i]ORA[/i][/b]
Router1(config-subif)#[b]ip rip authentication mode text [/b][b](或者ip rip authentication mode md5)[/b]
Router1(config-subif)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
注释 RIP认证是RIPv2的特性之一,需要注意的是由于启用了认证所以在更新数据包中所包含的路由条目数会减少,文本方式会减少为24,MD5会减少为23
6.16.  配置RIP路由汇总
提问 通过使用路由汇总来减少路由表的大小,增加稳定性
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]interface [i]Serial0/0.2[/i][/b]
Router1(config-subif)#[b]ip summary-address rip [i]172.25.0.0 255.255.0.0[/i][/b]
Router1(config-subif)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
缺省情况下RIP会自动对路由条目汇总为无类网络路由,使用下面方法关闭
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]router rip[/b]
Router1(config-router)#[b]no auto-summary[/b]
Router1(config-router)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
注释 只要配置的汇总路由中的有一条子网路由是存在的,路由器就会继续宣告此条汇总路由
6.17.       路由标签  
提问 对再发布的路由配置标签,从而避免不同路由协议之间路由再发布出现路由回环
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]ip route [i]0.0.0.0 0.0.0.0 172.25.1.1[/i][/b]
Router1(config)#[b]access-list [i]7 [/i]permit [i]0.0.0.0[/i][/b]
Router1(config)#[b]route-map [i]TAGGING [/i]permit [i]10[/i][/b]
Router1(config-route-map)# [b]match ip address [i]7[/i][/b]
Router1(config-route-map)# [b]set tag [i]5[/i][/b]
Router1(config-route-map)#[b]exit[/b]
Router1(config)#[b]router rip[/b]
Router1(config-router)#[b]redistribute static route-map [i]TAGGING[/i][/b]
Router1(config-router)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
注释 标签TAG只用于外部的路由,而不是通过RIP学到的路由,RIP自身正常情况下也不直接使用这些标签,只是分发而已,如果这些路由再被分发到其他路由进程就可以用标签来识别从而进行控制

第七章EIGRP
7.1.  配置EIGRP
提问 ONT-FAMILY: 宋体">配置网络使用EIGRP路由协议
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]interface [i]Ethernet0[/i][/b]
Router1(config-if)#[b]ip address [i]192.168.20.1 255.255.255.0[/i][/b]
Router1(config-if)#[b]exit[/b]
Router1(config)#[b]interface [i]Serial0.1 [/i]point-to-point[/b]
Router1(config-subif)#[b]ip address [i]172.25.2.2 255.255.255.252[/i][/b]
Router1(config-subif)#[b]exit[/b]
Router1(config)#[b]router eigrp [i]55[/i][/b]
Router1(config-router)#[b]network [i]172.25.0.0[/i][/b]
Router1(config-router)#[b]network [i]192.168.20.0[/i][/b]
Router1(config-router)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
注释 要确保启用此路由协议的所有路由器配置的EIGRP后面的进程号相同,可以使用[b]show ip eigrp neighbors [/b]来验证邻居关系。同时支持[b]network [i]192.168.20.0 0.0.0.255 [/i][/b]来定义发布的网络

7.2.  路由过滤
提问 对EIGRP学到或者宣告的路由进行过滤
回答
入方向过滤
Router2#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router2(config)#[b]access-list[i] 34 [/i]deny [i]192.168.30.0[/i][/b]
Router2(config)#[b]access-list [i]34 [/i]permit any [/b]
Router2(config)#[b]router eigrp [i]55[/i][/b]
Router2(config-router)#[b]distribute-list [i]34 [/i]in [i]Serial0.1[/i][/b]
Router2(config-router)#[b]exit[/b]
Router2(config)#[b]end[/b]
Router2#
出方向过滤
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]access-list[/b] [b][i]57[/i][/b] [b]permit [i]172.25.1.0[/i][/b]
Router1(config)#[b]access-list [i]57[/i][/b] [b]deny any[/b]
Router1(config)#[b]router eigrp[/b] [b][i]55[/i][/b]
Router1(config-router)#[b]distribute-list [i]57[/i][/b] [b]out [i]Serial0/0.2[/i][/b]
Router1(config-router)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
使用prefix方式过滤,并且支持[i]gateway[/i] 选项
Router9#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router9(config)#[b]ip prefix-list [i]ALLOWED-PREFIXES [/i]permit [i]10.0.0.0/8[/i][/b] [b]le [i]32[/i][/b]
Router9(config)#[b]ip prefix-list [i]ALLOWED-PREFIXES [/i]deny [i]0.0.0.0/0[/i][/b] [b]le [i]32[/i][/b]
Router9(config)#[b]ip prefix-list [i]ALLOWED-NEIGHBORS [/i]permit [i]172.18.19.1/32[/i][/b]
Router9(config)#[b]ip prefix-list [i]ALLOWED-NEIGHBORS [/i]permit [i]172.18.19.4/32[/i][/b]
Router9(config)#[b]ip prefix-list [i]ALLOWED-NEIGHBORS [/i]deny [i]0.0.0.0/0 [/i]le[/b] [b][i]32[/i][/b]
Router9(config)#[b]router eigrp[/b] [b][i]55[/i][/b]
Router9(config-router)#[b]distribute-list prefix [i]ALLOWED-PREFIXES [/i]gateway [i]ALLOWED-NEIGHBORS [/i]in[/b]
Router9(config-router)#[b]exit[/b]
Router9(config)#[b]end[/b]
Router9#

注释 在路由过滤时推荐使用prefix方式而不用ACL形式。Gateway参数只能用于入方向控制,同时建议不用和interface混和使用
7.3.  再发布路由到EIGRP  
提问 再发布其他方式学到的路由到EIGRP路由进程
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]router eigrp [i]55[/i][/b]
Router1(config-router)#[b]redistribute rip[/b]
Router1(config-router)#[b]default-metric [i]1000 100 250 100 1500[/i][/b]
Router1(config-router)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
注释 如果再发布的是静态路由可以不用配置default-metric命令,对于其他协议都必须配置此命令否则无法成功再发布。再发布之前也可以使用过滤列表进行路由过滤,从而只再发布特定路由
Router1(config)#[b]router eigrp [i]55[/i][/b]
Router1(config-router)#[b]redistribute ospf [i]99[/i][/b]
Router1(config-router)#[b]distribute-list [i]7 [/i]out ospf [i]99[/i][/b]
7.4.  使用Route Map方式来配置再发布
提问 使用控制粒度更好的Route Map方式来配置再发布
回答
Router1#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]ip route [i]192.168.10.0 255.255.255.0 172.22.1.4[/i][/b]
Router1(config)#[b]ip route [i]192.168.11.0 255.255.255.0 172.22.1.4[/i][/b]
Router1(config)#[b]ip route [i]192.168.12.0 255.255.255.0 172.22.1.4[/i][/b]
Router1(config)#[b]access-list [i]20 [/i]permit [i]192.168.10.0[/i][/b]
Router1(config)#[b]access-list [i]21 [/i]permit [i]192.168.11.0[/i][/b]
Router1(config)#[b]route-map [i]STATIC [/i]permit [i]10[/i][/b]
Router1(config-route-map)#[b]match ip address [i]20[/i][/b]
Router1(config-route-map)#[b]set metric [i]56 100 255 1 1500[/i][/b]
Router1(config-route-map)#[b]set tag [i]2[/i][/b]
Router1(config-route-map)#[b]exit[/b]
Router1(config)#[b]route-map [i]STATIC [/i]permit [i]20[/i][/b]
Router1(config-route-map)#[b]match ip address [i]21[/i][/b]
Router1(config-route-map)#[b]set metric [i]128 200 255 1 1500[/i][/b]
Router1(config-route-map)#[b]exit[/b]
Router1(config)#[b]route-map [i]STATIC [/i]deny [i]30[/i][/b]
Router1(config-route-map)#[b]exit[/b]
Router1(config)#[b]router eigrp [i]55[/i][/b]
Router1(config-router)#[b]redistribute static route-map [i]STATIC[/i][/b]
Router1(config-router)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
注释 此处配置和前面6.3的配置差不多,唯一需要注意的就是前面提到的必须要加上metric的设置
7.5.  特定接口禁止EIGRP
提问 禁止某个端口参与EIGRP
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]router eigrp [i]55[/i][/b]
Router1(config-router)#[b]passive-interface [i]Serial0/1[/i][/b]
Router1(config-router)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
注释 这里的被动接口和RIP不同,由于结果是不能形成邻居在此接口所以使用该命令以后就不能发送也不能接收路由信息
7.6.  调整EIGRP度量值
提问 修改学到的EIGRP路由器度量值
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]access-list[/b] [b][i]22 [/i]permit [i]192.168.30.0[/i][/b]
Router1(config)#[b]access-list [i]33 [/i]permit [i]192.168.30.0[/i][/b]
Router1(config)#[b]router eigrp [i]55[/i][/b]
Router1(config-router)#[b]offset-list [i]33 [/i]out [i]10000 Serial0.1[/i][/b]
Router1(config-router)#[b]offset-list [i]22 [/i]in [i]10000 Serial0.1[/i][/b]
Router1(config-router)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#

注释
7.7.  定时器调整
提问 调整定时器优化收敛
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]interface [i]Serial0.1[/i][/b]
Router1(config-subif)#[b]ip hello-interval eigrp [i]55 3[/i][/b]
Router1(config-subif)#[b]ip hold-time eigrp [i]55 9 [/i][/b]
Router1(config-subif)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
注释 EIGRP的一个特性就是定时器的调整可以基于端口,并且不用保持整个网络中所有设备的定时器设置一致,各个定时器都是独立的
7.8.  启用EIGRP认证
提问 增强路由信息安全性
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]key chain [i]ORA[/i][/b]
Router1(config-keychain)#[b]key [i]1[/i][/b]
Router1(config-keychain-key)#[b]key-string [i]oreilly[/i][/b]
Router1(config-keychain-key)#[b]exit[/b]
Router1(config-keychain)#[b]exit[/b]
Router1(config)#[b]interface [i]Serial0/1[/i][/b]
Router1(config-if)#[b]ip authentication mode eigrp [i]55 [/i]md5[/b]
Router1(config-if)#[b]ip authentication key-chain eigrp [i]55 ORA[/i][/b]
Router1(config-if)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
注释 注意这里只是认证不是加密路由信息包。下面提供一种更改key方法,帮助网络平稳过渡到新的key
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]key chain [i]Mars[/i][/b]
Router1(config-keychain)#[b]key [i]1[/i][/b]
Router1(config-keychain-key)#[b]key-string [i]rocket[/i][/b]
Router1(config-keychain-key)#[b]accept-lifetime [i]00:00:00 Jan 1 1993 00:15:00 Nov 1 2006[/i][/b]
Router1(config-keychain-key)#[b]send-lifetime [i]00:00:00 Jan 1 1993 00:00:00 Nov 1 2006[/i][/b]
Router1(config-keychain-key)#[b]key [i]2[/i][/b]
Router1(config-keychain-key)#[b]key-string [i]martian[/i][/b]
Router1(config-keychain-key)#[b]accept-lifetime [i]23:45:00 Oct 31 2006 [/i]infinite[/b]
Router1(config-keychain-key)#[b]send-lifetime [i]00:00:00 Nov 1 2006 [/i]infinite  [/b]
Router1(config-keychain-key)#[b]end[/b]
Router1#
7.9.  配置EIGRP路由汇总
提问 通过路由汇总来减少路由表大小和增强稳定性
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]interface [i]Serial0/0.2 [/i][/b]
Router1(config-subif)#[b]ip summary-address eigrp [i]55 172.25.0.0 255.255.0.0[/i][/b]
Router1(config-subif)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
缺省会自动路由汇总,使用[b]no auto-summary[/b]关闭(12.2(8)T后自动关闭)
同时可以配置汇总路由的同时,宣告部分子网路由
Router9#[b] configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router9(config)#[b]ip prefix-list [i]10.5.5/24[/i][/b] [b]permit [i]10.5.5.0/24[/i][/b]
Router9(config)#[b]route-map [i]LEAK10-5-5[/i][/b] [b]permit [i]10[/i][/b]
Router9(config-route-map)#[b]match ip address prefix-list [i]10.5.5/24[/i][/b]
Router9(config-route-map)#[b]exit[/b]
Router9(config)#[b]interface Serial[i]0/0[/i][/b]
Router9(config-if)#[b]ip summary-address eigrp 55 10.5.0.0 255.255.0.0 leak-map [i]LEAK10-5-5[/i][/b]
Router9(config-if)#[b]exit[/b]
Router9(config)#[b]end[/b]
Router9#
注释 路由汇总也是EIGRP的特性之一,可以配置在任意路由器的接口进行汇总,不象OSPF那样只能在ABR汇总。汇总路由的度量值和所汇总路由中的最好的子网路由的度量值一致。Leakmap特性在12.3(14)T后引入,可以在汇总路由的同时发布某些更匹配的路由
7.10.  记录邻居状态变化
提问 记录邻居状态变化
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]router eigrp[/b] [b][i]55[/i][/b]
Router1(config-router)#[b]eigrp log-neighbor-changes[/b]
Router1(config-router)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
注释 缺省开启
7.11.       限制EIGRP路由更新占用带宽
提问 限制EIGRP路由更新占用带宽的百分比
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]interface [i]Serial0.1[/i][/b]
Router1(config-subif)#[b]ip bandwidth-percent eigrp [i]55 40[/i][/b]
Router1(config-subif)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
注释 这里的百分比可以大于100%,当我们人为的设定了某端口带宽用于计算度量值时
7.12.  EIGRP Stub路由
提问 向边缘网络发布较小的路由表
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]router eigrp[/b] [b][i]55[/i][/b]
Router1(config-router)#[b]eigrp stub[/b]
Router1(config-router)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
注释
7.13.  路由标签
提问 通过对特定路由进行标签,防止再分发时出现路由回环
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]ip route [i]0.0.0.0 0.0.0.0 172.25.1.1[/i][/b]
Router1(config)#[b]access-list [i]7 [/i]permit [i]0.0.0.0[/i][/b]
Router1(config)#[b]route-map [i]TAGGING [/i]permit [i]10[/i][/b]
Router1(config-route-map)#[b]match ip address [i]7[/i][/b]
Router1(config-route-map)#[b]set tag [i]5[/i][/b]
Router1(config-route-map)#[b]exit[/b]
Router1(config)#[b]router eigrp [i]55[/i][/b]
Router1(config-router)#[b]redistribute static route-map [i]TAGGING[/i][/b]
Router1(config-router)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
注释
7.14.       查看EIGRP状态
提问 查看状态命令
回答
Router1#[b]show ip protocols[/b]
Router1#[b]show ip route eigrp[/b]
Router1#[b]show ip eigrp neighbors[/b]
Router1#[b]show ip eigrp interfaces[/b]
Router9#[b]show ip eigrp accounting[/b]
Router1#[b]show ip eigrp topology[/b]

注释 12.3(14)T引入了[i]show ip eigrp accounting [/i]
Router9#[b]show ip eigrp accounting[/b]
IP-EIGRP accounting for AS(55)/ID(172.18.5.9)
[b]Total Prefix Count: 50[/b]  States: A-Adjacency, P-Pending, D-Down
State Address/Source   Interface        Prefix   Restart  Restart/
                                        Count     Count   Reset(s)
A    172.20.10.1      Se0/0                 1        0        0
A    172.18.19.1      Fa0/0                39        0        0
A    172.18.19.4      Fa0/0                 1        0        0
A    172.18.19.6      Fa0/0                 6        0        0
Router9#
Router1#[b]show ip eigrp topology[/b]
IP-EIGRP Topology Table for AS(55)/ID(172.25.25.1)

Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - reply Status, s - sia Status

P 0.0.0.0/0, 1 successors, FD is 28160, tag is 5
         via Rstatic (28160/0)
         via Summary (28160/0), Null0
P 10.2.2.0/24, 1 successors, FD is 156160
         via 172.22.1.4 (156160/128256), FastEthernet0/1
P 10.1.1.0/30, 1 successors, FD is 3845120
         via Connected, Serial0/1
P 192.168.10.0/24, 1 successors, FD is 28160, tag is 5
         via Rstatic (28160/0)
P 192.168.30.0/24, 1 successors, FD is 156160
         via 172.22.1.4 (156160/128256), FastEthernet0/1
P 192.168.20.0/24, 1 successors, FD is 2195456
         via 172.25.2.2 (2195456/281600), Serial0/0.2
P 172.25.25.6/32, 1 successors, FD is 156160
         via 172.25.1.7 (156160/128256), FastEthernet0/0.1
P 172.25.25.1/32, 1 successors, FD is 128256
         via Connected, Loopback0
P 172.25.25.2/32, 1 successors, FD is 2297856
         via 172.25.2.2 (2297856/128256), Serial0/0.2
P 172.25.1.0/24, 1 successors, FD is 28160
         via Connected, FastEthernet0/0.1
P 172.25.2.0/30, 1 successors, FD is 2169856
         via Connected, Serial0/0.2
P 172.22.1.0/24, 1 successors, FD is 28160
         via Connected, FastEthernet0/1
Router1#
第八章OSPF
8.1.  配置OSPF
提问 NT-FAMILY: 宋体">在网络中启用OSPF
回答
Router5#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router5(config)#[b]router ospf[i] 87[/i][/b]
Router5(config-router)#[b]network[/b] [b][i]0.0.0.0 255.255.255.255 [/i]area [i]0[/i][/b]
Router5(config-router)#[b]exit[/b]
Router5(config)#[b]end[/b]
Router5#
注释 这里OSPF的进程号是本地使用,不需要像EIGRP一样整个网络保持一致。在12.3(11)T以后有一个专门的命令来指定端口加入OSPF 区域,而不需要用network的命令
Router9#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router9(config)#[b]router ospf [i]87[/i][/b]
Router9(config-router)#[b]exit[/b]
Router9(config)#[b]interface [i]FastEthernet0/0[/i][/b]
Router9(config-if)#[b]ip address [i]172.18.5.9 255.255.255.0[/i][/b]
Router9(config-if)#[b]ip ospf [i]87 [/i]area [i]10[/i][/b]
Router9(config-if)#[b]exit[/b]
Router9(config)#[b]end[/b]
Router9#
8.2.  路由过滤
提问 进行路由过滤,只允许OSPF宣告特定路由进入路由表
回答
入方向
Router5#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router5(config)#[b]access-list [i]1[/i][/b] [b]deny [i]172.20.10.0[/i][/b]
Router5(config)#[b]access-list [i]1[/i][/b] [b]permit any[/b]
Router5(config)#[b]router ospf [i]87[/i][/b]
Router5(config-router)#[b]distribute-list [i]1 [/i]in [i]Ethernet0/0[/i][/b]
Router5(config-router)#[b]exit[/b]
Router5(config)#[b]end[/b]
Router5#
注释 根据OSPF的机制,所有区域内的路由器LSA数据库内容必须保持一致,所以正常情况下不能对出方向进行过滤,入方向过滤也是防止其进入路由表,在本地的LSA数据库还是有此路由。当然如果确实需要对出方向进行过滤就必须对出方向所有的LSA进行过滤,这样会导致下游路由器的LSA数据库不完整,一般不推荐使用。
点对多点链路出方向过滤
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]router ospf[/b] [b][i]87[/i][/b]
Router1(config-router)#[b]neighbor [i]192.168.1.3 [/i]database-filter all out[/b]
Router1(config-router)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
广播,点到点链路出方向过滤
Router1#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]interface[/b] [b][i]Serial0/0[/i][/b]
Router1(config-if)#[b]encapsulation frame-relay[/b]
Router1(config-if)#[b]exit[/b]
Router1(config)#[b]interface [i]Serial0/0.10[/i][/b] [b]multipoint[/b]
Router1(config-subif)#[b]ip address [i]192.168.1.1 255.255.255.0[/i][/b]
Router1(config-subif)#[b]ip ospf network broadcast[/b]
Router1(config-subif)#[b]ip ospf database-filter all out[/b]
Router1(config-subif)#[b]frame-relay map ip [i]192.168.1.3 101[/i][/b] [b]broadcast[/b]
Router1(config-subif)#[b]frame-relay map ip [i]192.168.1.5 109 [/i]broadcast[/b]
Router1(config-subif)#[b]exit[/b]
Router1(config)#[b]router ospf[/b] [b][i]1[/i][/b]
Router1(config-router)#[b]network [i]0.0.0.0 255.255.255.255[/i][/b] [b]area [i]10[/i][/b]
Router1(config-router)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
8.3.  调整OSPF代价值
提问 调整OSPF链路的代价值
回答
全局调整
Router5#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router5(config)#[b]router ospf[/b] [b][i]87[/i][/b]
Router5(config-router)#[b]auto-cost reference-bandwidth [i]1000[/i][/b]
Router5(config-router)#[b]exit[/b]
Router5(config)#[b]end[/b]
Router5#
接口调整
Router5#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router5(config)#[b]interface [i]Ethernet0[/i][/b]
Router5(config-if)#[b]ip ospf cost [i]31[/i][/b]
Router5(config-if)#[b] exit[/b]
Router5(config)#[b]end[/b]
Router5#
注释
8.4.  宣告缺省路由到OSPF
提问 宣告缺省路由到OSPF网络
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]ip route [i]0.0.0.0 0.0.0.0 172.25.1.1[/i][/b]
Router1(config)#[b]router ospf [i]55[/i][/b]
Router1(config-router)#[b]default-information originate metric [i]30 [/i]metric-type [i]1[/i][/b]
Router1(config-router)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
注释 在这里不能使用再发布静态路由得命令来发布缺省路由
8.5.  再发布静态路由到OSPF
提问 宣告一条或者多条静态路由到OSPF
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]ip route [i]192.168.10.0 255.255.255.0 172.22.1.4[/i][/b]
Router1(config)#[b]ip route [i]172.24.1.0 255.255.255.0 172.22.1.4[/i][/b]
Router1(config)#[b]ip route [i]10.100.1.0 255.255.255.0 172.22.1.4[/i][/b]
Router1(config)#[b]router ospf [i]55[/i][/b]
Router1(config-router)#[b]redistribute static     [/b]
% Only classful networks will be redistributed
Router1(config-router)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
注释 根据上面得命令提示可以看到缺省情况下OSPF只再发布有类得路由,所以按照例子上虽然三条静态路由但是只有192.168.10.0/24是有类路由,能够发布出去,其它两个就不行。这时候就需要配置[b]redistribute static subnets[/b]命令来发布子网,当然也可以添加metric等选项

8.6.  再发布外部路由到OSPF
提问 再发布其它路由协议得路由信息到OSPF
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]router ospf [i]55[/i][/b]
Router1(config-router)#[b]redistribute eigrp [i]11 [/i]subnets   [/b]
Router1(config-router)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
在12.3(2)T以后增加了下面得命令对再发布过来得条目做了限制
Router1(config-router)#[b]redistribute maximum-prefix [i]1000 80[/i][/b]

注释 这里还是要注意subnet得参数。对于最后一个条目限制得命令,第一个1000是路由条目数,第二个80是百分比
8.7.  DR选举
提问 对DR选举做人为控制
回答
Router5#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router5(config)#[b]interface [i]Ethernet0[/i][/b]
Router5(config-if)#[b]ip ospf priority [i]10                  [/i][/b]
Router5(config-if)#[b]exit[/b]
Router5(config)#[b]end[/b]
Router5#
注释 DR选举人工控制最重要得两种情况是MOSPF和NBMA网络。在MOSPF网络中,MOSPF得DR和正常OSPF得DR是相同得,而如果DR不是一个MOSPF得路由器那么所有组播得路由就不能转发,思科路由器是不支持MOPSF得,所以在这种情况下必须使用ip ospf priority 0得命令来禁止其称为BDR或者DR。在NBMA得网络中要不DR设置在Hub路由器上。还有一个重要得问题是DR是不能强占得,如果网络中已经有了DR,这时即使新加入得路由器有更高得优先级他也不能称为DR,必须等待现在得DR出了问题才可以重新选举为DR。
8.8.  设置OSPF RID
提问 人工设定路由器得Router ID
回答
一种是Loopback地址方式
Router5#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router5(config)#[b]interface [i]Loopback0[/i][/b]
Router5(config-if)#[b]ip address [i]172.25.25.6 255.255.255.255[/i][/b]
Router5(config-if)#[b]exit[/b]
Router5(config)#[b]end[/b]
Router5#
一种是Router ID命令方式
Router5#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router5(config)#[b]router ospf[/b] [b][i]87[/i][/b]
Router5(config-router)#[b]router-id [i]172.25.1.7[/i][/b]
Router5(config-if)#[b]exit[/b]
Router5(config)#[b]end[/b]
Router5#
注释 缺省会用最大IP地址作为Router ID。Router id命令后面得IP地址可以随意,不需要必须是存在得地址。另外router id一旦定下来以后,即使重新修改了地址也不能变更,必须通过clear
ip ospf process得方式或者reload得方式来改变
8.9.  启用OSPF鉴权
提问 对邻居关系建立启用鉴权从而保证网络设备得安全性
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]interface [i]Serial0/1[/i][/b]
Router1(config-if)#[b]ip ospf message-digest-key [i]1 [/i]md5 [i]oreilly[/i][/b]
Router1(config-if)#[b]exit[/b]
Router1(config)#[b]router ospf [i]55[/i][/b]
Router1(config-router)#[b]area [i]2 [/i]authentication message-digest[/b]
Router1(config-router)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
注释 注意得是不同厂商得OPSF MD5加密认证互联可能会有问题,因为RFC没有规范。对于新老密码替换得问题,通过配置新旧两个密码得方式来解决
8.10.  选择合适得区域类型
提问 不同得区域有不同得链路状态数据库,通过不同区域得选择来节省路由器资源和更快收敛
回答
Stubby Area
Router1#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]router ospf [i]55[/i][/b]
Router1(config-router)#[b]area [i]100 [/i]stub [/b]
Router1(config-router)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
Totally Stubby Area
Router1#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]router ospf [i]55[/i][/b]
Router1(config-router)#[b]area [i]100 [/i]stub no-summary[/b]
Router1(config-router)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
Not So Stubby Areas (NSSA), 同时生成一条缺省路由
Router1#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]router ospf [i]55 [/i][/b]
Router1(config-router)#[b]area [i]100[/i][/b] [b]nssa default-information-originate [/b]
Router1(config-router)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
Totally Stubby, Not So Stubby Area.
Router1#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]router ospf [i]55[/i][/b]
Router1(config-router)#[b]area [i]100 [/i]nssa no-summary[/b]
Router1(config-router)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#

注释 这些都是在ABR上的配置,对于区域里面其它的路由器就是只有NSSA和stub的配置没有必要配置是否为totally stubby。
8.11.  在拨号接口上配置OSPF
提问 在拨号接口上启用OSPF,但又不想让OSPF的协议数据一直保持拨号链路处于激活状态
回答
下面例子是R4只能拨号到R1
Router4#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router4(config)#[b]username [i]Router1 [/i]password 0 cisco[/b]
Router4(config)#[b]interface [i]BRI0[/i][/b]
Router4(config-if)#[b]ip address [i]192.168.15.4 255.255.255.0[/i][/b]
Router4(config-if)#[b]encapsulation ppp[/b]
Router4(config-if)#[b]ip ospf demand-circuit[/b]
Router4(config-if)#[b]dialer map ip [i]192.168.15.1[/i][/b] [b]broadcast [i]4165550000[/i][/b]
Router4(config-if)#[b]dialer-group [i]1[/i][/b]
Router4(config-if)#[b]isdn switch-type basic-ni[/b]
Router4(config-if)#[b]isdn spid1 [i]416555001000 4165550010[/i][/b]
Router4(config-if)#[b]isdn spid2 [i]416555001100 4165550011[/i][/b]
Router4(config-if)#[b]ppp authentication chap[/b]
Router4(config-if)#[b]ppp multilink[/b]
Router4(config-if)#[b]exit[/b]
Router4(config)#[b]dialer-list [i]1[/i][/b] [b]protocol ip permit[/b]
Router4(config)#[b]router ospf [i]87[/i][/b]
Router4(config-router)#[b]network [i]192.168.15.0 0.0.0.255[/i][/b] [b]area [i]10[/i][/b]
Router4(config-router)#[b]exit[/b]
Router4(config)#[b]end[/b]
Router4#
Router1#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]username [i]Router4 [/i]password 0 [i]cisco[/i][/b]
Router1(config)#[b]interface [i]BRI0/0[/i][/b]
Router1(config-if)#[b]ip address [i]192.168.15.1 255.255.255.0[/i][/b]
Router1(config-if)#[b]encapsulation ppp[/b]
Router1(config-if)#[b]dialer-group [i]1[/i][/b]
Router1(config-if)#[b]isdn switch-type basic-ni[/b]
Router1(config-if)#[b]isdn spid1 [i]416555000000 4165550000[/i][/b]
Router1(config-if)#[b]isdn spid2 [i]416555000100 4165550001[/i][/b]
Router1(config-if)#[b]ppp authentication chap[/b]
Router1(config-if)#[b]ppp multilink[/b]
Router1(config-if)#[b]exit[/b]
Router1(config)#[b]dialer-list [i]1[/i][/b] [b]protocol ip permit[/b]
Router1(config)#[b]router ospf [i]87[/i][/b]
Router1(config-router)#[b]network [i]192.168.15.0 0.0.0.255[/i][/b] [b]area [i]10[/i][/b]
Router1(config-router)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#

注释 使用[i]ip ospf demand-circuit [/i]的命令可以保持邻居关系一直是FULL状态,而不管链路是否激活
8.12.  路由汇总
提问 减少路由表大小
回答
Router1#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]router ospf [i]55[/i][/b]
Router1(config-router)#[b]area [i]100 [/i]range [i]172.20.0.0 255.255.0.0[/i][/b]
Router1(config-router)#[b]area [i]0 [/i]range [i]172.25.0.0 255.255.0.0[/i][/b]
Router1(config-router)#[b]area [i]2 [/i]range [i]10.0.0.0 255.0.0.0[/i][/b]
Router1(config-router)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
注释 OSPF的路由汇总只能配置在ABR上。生成的汇总路由代价值缺省情况下和子网路由中最小的一致,也就是说汇总路由的稳定状态和代价值最小的那个路由条目相关,这也是RFC1583上的定义,在新的RFC中定义了汇总路由代价值和最大的那个路由条目相关,所以一定要确定所有路由器采用相同的计算方法,思科缺省使用RFC1583的方法,禁用可以使用[b]no compatible rfc1583。[/b]在ABR上启用汇总以后会自动生成一条汇总路由的丢弃路由(12.1(6))来避免路由回环
8.13.  在特定端口禁用OSPF
提问 禁止某个端口参与OSPF
回答
Router3#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router3(config)#[b]router ospf[i] 44[/i][/b]
Router3(config-router)#[b]network [i]0.0.0.0 255.255.255.255[/i][/b] [b]area [i]100[/i][/b]
Router3(config-router)#[b]passive-interface [i]Ethernet0[/i][/b]
Router3(config-router)#[b]exit[/b]
Router3(config)#[b]end[/b]
Router3#
注释 OSPF也是通过配置被动接口的方式来不生成邻居关系从而避免参与OSPF。当然也可以通过不在network命令中包含此端口来禁止,下面就是另外一种很好的配置方法,network了所有接口,但是缺省所有端口是被动接口,对于需要的接口再使用no的命令才参与OSPF:
Router3(config)#[b]router ospf[i] 44[/i][/b]
Router3(config-router)#[b]network [i]0.0.0.0 255.255.255.255[/i][/b] [b]area [i]100[/i][/b]
Router3(config-router)#[b]passive-interface default[/b]
Router3(config-router)#[b]no passive-interface [i]Ethernet0[/i][/b]
Router3(config-router)#[b]exit[/b]
Router3(config)#[b]end[/b]
Router3#
8.14.  修改接口的网络类型
提问 修改某个端口缺省的网络类型
回答
Router9#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router9(config)#[b]interface [i]FastEthernet0/0[/i][/b]
Router9(config-if)#[b]ip ospf network [i]?[/i][/b]
  broadcast            Specify OSPF broadcast multi-access network
  non-broadcast        Specify OSPF NBMA network
  point-to-multipoint  Specify OSPF point-to-multipoint network
  point-to-point       Specify OSPF point-to-point network

Router9(config-if)#
注释 上述四个关键词主要定义媒介是否支持广播或者组播数据包,是否需要选举DR。对于Broadcast网络,支持组播,DR可以自动选择,不需要配置。对于nonbroadcast网络,不支持组播,必须人工使用neighbor命令配置邻居关系。对于point-to-multipoint网络,不需要DR选举,也不需要neighbor命令,这时候需要注意的是framerelay配置中要允许broadcast:
Router9(config)#[b]interface [i]Serial0/0[/i][/b]
Router9(config-if)#[b]ip address [i]192.168.10.9 255.255.255.0[/i][/b]
Router9(config-if)#[b]encapsulation frame-relay[/b]
Router9(config-if)#[b]frame-relay map ip [i]192.168.10.2 123[/i] broadcast[/b]
Router9(config-if)#[b]ip ospf network point-to-multipoint[/b]
Router9(config-if)#[b]exit[/b]
Router9(config)#[b]router ospf [i]1[/i][/b]
Router9(config-router)#[b]network [i]192.168.10.0 0.0.0.255[/i][/b] [b]area [i]0[/i][/b]
Router9(config-router)#[b]exit[/b]
否则必须配置neighbor
Router9(config)#[b]interface [i]Serial0/0[/i][/b]
Router9(config-if)#[b]ip address [i]192.168.10.9 255.255.255.0[/i][/b]
Router9(config-if)#[b]encapsulation frame-relay[/b]
Router9(config-if)#[b]frame-relay map ip [i]192.168.10.2 123[/i] [/b]
Router9(config-if)#[b]ip ospf network point-to-multipoint non-broadcast[/b]
Router9(config-if)#[b]exit[/b]
Router9(config)#[b]router ospf [i]1[/i][/b]
Router9(config-router)#[b]network [i]192.168.10.0 0.0.0.255[/i][/b] [b]area [i]0[/i][/b]
Router9(config-router)#[b]neighbor [i]192.168.10.2[/i][/b]
Router9(config-router)#[b]exit[/b]
最后一种point-to-point网络不需要DR,但必须支持组播来建立邻居,否则需要配置neighbor命令。
还有一个特殊的回环地址,缺省情况OSPF会宣告回环地址为/32的网络,但是你可以在回环接口上配置其为[b]ip ospf network point-to-point[/b],来强制他宣告正确的网络掩码
8.15.  路由标签
提问 对特定的路由打标签避免互相再发布出现路由回环
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]router ospf[/b] [b][i]55[/i][/b]
Router1(config-router)#[b]redistribute eigrp [i]11 [/i]metric-type [i]1 [/i]subnets tag [i]67[/i][/b]
Router1(config-router)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
注释
8.16.  记录OSPF邻居状态变化
提问 记录OSPF邻居状态变化信息
回答
Router2#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router2(config)#[b]router ospf[/b] [b][i]12[/i][/b]
Router2(config-router)#[b]log-adjacency-changes[/b]
Router2(config-router)#[b]exit[/b]
Router2(config)#[b]end[/b]
Router2#
注释 12.1后对上面命令增加了detail参数可以看到更多邻居状态变化的信息
8.17.  OSPF定时器
提问 调整定时器,加快收敛
回答
Router1#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]interface [i]Serial0/1[/i][/b]
Router1(config-if)#[b]ip ospf hello-interval [i]5[/i][/b]
Router1(config-if)#[b]ip ospf dead-interval [i]20[/i][/b]
Router1(config-if)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
注释 要保证和此端口相连的设备采用相同的定时器值,否则邻居关系不能建立
8.18.  减少OSPF协议流量
提问 在稳定的网络要不需要LSA的过多数据包传递
回答
Router9#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router9(config)#[b]interface [i]Serial0/0[/i][/b]
Router9(config-if)#[b]ip address [i]192.168.10.9 255.255.255.0[/i][/b]
Router9(config-if)#[b]ip ospf flood-reduction[/b]
Router9(config-if)#[b]exit[/b]
Router9(config)#[b]end[/b]
Router9#
注释 正常情况下OSPF会每隔一小时进行所有的LSA泛洪,在稳定网络里面一般不需要,所以通过这种方式设定LSA的DoNotAge位,避免过多流量
8.19.  OSPF虚拟链路
提问 把两个分开的路由器通过虚拟链路的方式相连
回答
Router9#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router9(config)#[b]router ospf [i]1[/i][/b]
Router9(config-router)#[b]area [i]10[/i][/b] [b]virtual-link [i]10.54.0.1[/i][/b]
Router9(config-router)#[b]exit[/b]
Router9(config)#[b]end[/b]
Router9#
注释 通过[i]show ip ospf virtual-links[/i]来验证。需要注意的是这个需要两个路由器都进行配置,IP地址是对方的Router ID,要确保这个地址是通的,area后面跟的是穿越的Area
8.20.  使用域名查看OSPF状态
提问 在OSPF的show命令中现实设备域名而不是地址
回答
Router3#[b]configure terminal [/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router3(config)#[b]ip ospf name-lookup [/b]
Router3(config)#[b]end[/b]
Router3#
注释 无
8.21.  OSPF排错
提问 对OSPF进行排错
回答
Router3#[b]debug ip ospf adj [/b]
OSPF adjacency events debugging is on
Router3#
注释 OSPF排错命令很多,这里只提供了对邻居关系的排错命令,因为邻居是OSPF的基础
第九章 BGP
9.1.  Configuring BGP
提问 在网络中启用BGP
回答
Route1在AS 65500中
Router1#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#[b]interface[/b] [b][i]Serial0[/i][/b]
Router1(config-if)#[b]ip address [i]192.168.55.6 255.255.255.252[/i][/b]
Router1(config-if)#[b]exit[/b]
Router1(config)#[b]router bgp [i]65500[/i][/b]
Router1(config-router)#[b]network [i]192.168.1.0[/i][/b]
Router1(config-router)#[b]neighbor [i]192.168.55.5 [/i]remote-as [i]65501[/i][/b]
Router1(config-router)#[b]no synchronization[/b]
Router1(config-router)#[b]exit[/b]
Router1(config)#[b]end[/b]
Router1#
Router2在AS 65501中
Router2#[b]configure terminal[/b]
Enter configuration commands, one per line.  End with CNTL/Z.
Router2(config)#[b]interface [i]Serial0[/i][/b]
Router2(config-if)#[b]ip address [i]192.168.55.5 255.255.255.252[/i][/b]
Router2(config-if)#[b]exit[/b]
Router2(config)#[b]router bgp [i]65501[/i][/b]
Router2(config-router)#[b]network [i]172.25.17.0 [/i]mask [i]255.255.255.0[/i][/b]
Router2(config-router)#[b]neighbor [i]192.168.55.6 [/i]remote-as [i]65500[/i][/b]
Router2(config-router)#[b]no synchronization[/b]
Router2(config-router)#[b]exit[/b]
Router2(config)#[b]end[/b]
Router2#
注释 在对BGP验证的时候比较有用的命令是
Router1#[b]show ip bgp summary[/b]
BGP router identifier 192.168.99.5, local AS number 65500
BGP table version is 7, main routing table version 7
4 network entries and 4 paths using 484 bytes of memory
2 BGP path attribute entries using 196 bytes of memory
BGP activity 11/7 prefixes, 11/7 paths

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
192.168.55.5    4 65501      17      18        7    0    0 00:12:38        2
172.25.2.2      4 65531     527     526        0    0    0 21:05:23 Active
Router1#
需要注意的是理想状态是State里面是数字,尽管是Active也不代表是配置正常,反而是配置出现错误。通过[b]neighbor[/b] [b][i]172.20.1.2 [/i]update-source [i]Loopback0[/i][/b] 命令来限制BGP数据包源地址为回环地址,但要确保此地址的连通性
9.2.  使用eBGP Multihop
提问 配置外部BGP,但是不是直连的路由器
回答
Router1#[b]configur