第一章路由器配置和文件管理
路由器配置和文件管理
1.1. 通过TFTP来配置路由器
提问 使用TFTP来加载路由器的配置文件
回答
Router1# copy tftp://172.25.1.1/NEWCONFIG running-config
Destination filename [running-config]?
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版本以前使用的 configure network命令,另外拷贝至路由器的配置文件应该以End结尾,否则会出现下面的错误提示信息:%PARSER-4-BADCFG: Unexpected end of configuration file.
1.2. 保存路由器配置到服务器
提问 保存路由器当前配置文件到TFTP服务器作为备份
回答
Freebsd% touch /tftpboot/router1-confg
Freebsd% chmod 666 /tftpboot/router1-confg
Freebsd% telnet Router1
Trying 172.25.1.5...
Connected to Router1.
Escape character is '^]'.
User Access Verification
Password:
Router1> enable
Password:
Router1# copy running-config tftp://172.25.1.1/router1-confg
Address or name of remote host [172.25.1.1]?
Destination filename [router1-confg]?
!!!
9640 bytes copied in 3.956 secs (2437 bytes/sec)
Router1#
注释 确保TFTP服务器上的目录和文件可写
1.3. 使用远端配置文件启动路由器
提问 使用另外的配置文件来启动路由器
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# service config
Router1(config)# boot network tftp Network-auto 172.25.1.1
Router1(config)# boot host tftp Router8-auto 172.25.1.1
Router1(config)# end
Router1#
注释 service config缺省是关闭的,如果打开缺省会去查找的文件名为network-config, cisconet.cfg, router1-confg, router1.cfg等
1.4. 保存大于NVRAM大小的配置文件
提问 配置文件过大,超过了可用的NVRAM大小
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# service compress-config
Router1(config)# end
Router1#
注释 可以使用show startup-config来验证
Router1# show startup-config
Using 5068 out of 29688 bytes, uncompressed size = 9969 bytes
Uncompressed configuration from 5068 bytes to 9969 bytes
1.5. 清除启动配置文件
提问 清除配置文件恢复到出厂设置
回答
Router1# erase nvram: (erase startup-config)
Erasing the nvram filesystem will remove all files! Continue? [confirm]
[OK]
Erase of nvram: complete
Router1# reload
System configuration has been modified. Save? [yes/no]: no
Proceed with reload? [confirm]
注释 无
1.6. 加载新的IOS镜像
提问 升级当前的IOS
回答
Router1# copy tftp://172.25.1.1/c2600-ik9o3s-mz.122-12a.bin flash:
Destination filename [c2600-ik9o3s-mz.122-12a.bin]?
Accessing tftp://172.25.1.1/c2600-ik9o3s-mz.122-12a.bin...
Erase flash: before copying? [confirm]
Erasing the flash filesystem will remove all files! Continue? [confirm]
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# reload
Proceed with reload? [confirm]
注释 无
1.7. 以另一个IOS镜像文件启动
提问 使用其它的IOS镜像启动
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# boot system flash:c3620-jk9o3s-mz.122-7a.bin
Router1(config)# boot system flash:c3620-jos56i-l.120-11.bin
Router1(config)# boot system slot0:c3620-ik9s-mz.122-13.bin
Router1(config)# boot system rom
Router1(config)# end
注释 boot system命令的顺序非常重要,如果使用新的IOS,建议先进行no boot system的操作。从IOS 12.3(4)T 后思科引入了boot markers的概念,所有的boot systme命令都会放在boot markers之间,比如:
Router1# show running-config | include ^boot
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# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# boot system tftp c2500-io-l.122-7a.bin 172.25.1.1
Router1(config)# boot system flash
Router1(config)# end
Router1#
注释 无
阅读(902) | 评论(0) | 转发(0) |
<script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
路由器配置和文件管理
1.1. 通过TFTP来配置路由器
提问 使用TFTP来加载路由器的配置文件
回答
Router1# copy tftp://172.25.1.1/NEWCONFIG running-config
Destination filename [running-config]?
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版本以前使用的 configure network命令,另外拷贝至路由器的配置文件应该以End结尾,否则会出现下面的错误提示信息:%PARSER-4-BADCFG: Unexpected end of configuration file.
1.2. 保存路由器配置到服务器
提问 保存路由器当前配置文件到TFTP服务器作为备份
回答
Freebsd% touch /tftpboot/router1-confg
Freebsd% chmod 666 /tftpboot/router1-confg
Freebsd% telnet Router1
Trying 172.25.1.5...
Connected to Router1.
Escape character is '^]'.
User Access Verification
Password:
Router1> enable
Password:
Router1# copy running-config tftp://172.25.1.1/router1-confg
Address or name of remote host [172.25.1.1]?
Destination filename [router1-confg]?
!!!
9640 bytes copied in 3.956 secs (2437 bytes/sec)
Router1#
注释 确保TFTP服务器上的目录和文件可写
1.3. 使用远端配置文件启动路由器
提问 使用另外的配置文件来启动路由器
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# service config
Router1(config)# boot network tftp Network-auto 172.25.1.1
Router1(config)# boot host tftp Router8-auto 172.25.1.1
Router1(config)# end
Router1#
注释 service config缺省是关闭的,如果打开缺省会去查找的文件名为network-config, cisconet.cfg, router1-confg, router1.cfg等
1.4. 保存大于NVRAM大小的配置文件
提问 配置文件过大,超过了可用的NVRAM大小
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# service compress-config
Router1(config)# end
Router1#
注释 可以使用show startup-config来验证
Router1# show startup-config
Using 5068 out of 29688 bytes, uncompressed size = 9969 bytes
Uncompressed configuration from 5068 bytes to 9969 bytes
1.5. 清除启动配置文件
提问 清除配置文件恢复到出厂设置
回答
Router1# erase nvram: (erase startup-config)
Erasing the nvram filesystem will remove all files! Continue? [confirm]
[OK]
Erase of nvram: complete
Router1# reload
System configuration has been modified. Save? [yes/no]: no
Proceed with reload? [confirm]
注释 无
1.6. 加载新的IOS镜像
提问 升级当前的IOS
回答
Router1# copy tftp://172.25.1.1/c2600-ik9o3s-mz.122-12a.bin flash:
Destination filename [c2600-ik9o3s-mz.122-12a.bin]?
Accessing tftp://172.25.1.1/c2600-ik9o3s-mz.122-12a.bin...
Erase flash: before copying? [confirm]
Erasing the flash filesystem will remove all files! Continue? [confirm]
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# reload
Proceed with reload? [confirm]
注释 无
1.7. 以另一个IOS镜像文件启动
提问 使用其它的IOS镜像启动
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# boot system flash:c3620-jk9o3s-mz.122-7a.bin
Router1(config)# boot system flash:c3620-jos56i-l.120-11.bin
Router1(config)# boot system slot0:c3620-ik9s-mz.122-13.bin
Router1(config)# boot system rom
Router1(config)# end
注释 boot system命令的顺序非常重要,如果使用新的IOS,建议先进行no boot system的操作。从IOS 12.3(4)T 后思科引入了boot markers的概念,所有的boot systme命令都会放在boot markers之间,比如:
Router1# show running-config | include ^boot
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# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# boot system tftp c2500-io-l.122-7a.bin 172.25.1.1
Router1(config)# boot system flash
Router1(config)# end
Router1#
注释 无
1.9. 拷贝IOS镜像文件到服务器
提问 保存一份IOS到TFTP服务器作为备份
回答
Freebsd% touch /tftpboot/c2600-ik9o3s-mz.122-12a.bin
Freebsd% chmod 666 /tftpboot/c2600-ik9o3s-mz.122-12a.bin
Freebsd% telnet Router1
Trying 172.25.1.5...
Connected to Router1.
Escape character is '^]'.
User Access Verification
Password: <vtypassword>
Router1>enable
Password: <enablepassword>
Router1#copy flash:c2600-ik9o3s-mz.122-12a.bin tftp
Address or name of remote host []? 172.25.1.1
Destination filename [c2600-ik9o3s-mz.122-12a.bin]? <enter>
!!!!!!
11135588 bytes copied in 52.588 secs (211752 bytes/sec)
Router1#
注释
1.10. 通过控制台口拷贝IOS镜像文件
提问 通过控制台口和AUX端口来加载IOS
回答
Router1#copy xmodem: slot1:
**** 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] <enter>
Destination filename []? c3620-ik9s-mz.122-12a.bin
Erase slot1: before copying? [confirm] <enter>
Use crc block checksumming? [confirm] <enter>
Max Retry Count [10]: <enter>
Perform image validation checks? [confirm] <enter>
Xmodem download using crc checksumming with image validation
Continue? [confirm] <enter>
Ready to receive file...........CC <start xmodem file transfer here>
4294967295 bytes copied in 1450.848 secs (1271445669961 bytes/sec)
Router1#
注释 思科建议使用AUX口进行此步骤,因为AUX口支持硬件流控。为了提高拷贝速度,建议提前使用下述命令来设置端口速度
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#line aux 0
Router1(config-line)#speed 115200
Router1(config-line)#end
Router1#
1.11. 删除Flash中的文件
提问 删除Flash中的文件
回答
Router1#erase slot1:
Erasing the slot1 filesystem will remove all files! Continue? [confirm] <enter>
Erasing device... eeeeeeeeeeee ...erased
Erase of slot1: complete
Router1#
或者删除单个文件
Router1#delete slot1:c3620-ik9s-mz.122-13.bin
Delete filename [c3620-ik9s-mz.122-13.bin]? <enter>
Delete slot1:c3620-ik9s-mz.122-13.bin? [confirm] <enter>
Router1#
注释 并不是所有的路由器都支持erase命令,不行的话可以尝试format命令,有些路由器在使用delete命令以后还可以使用undelete来恢复,同时也需要使用squeeze来彻底删除文件
1.12. 对Flash进行分区
提问 对Flash进行分区
回答
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#partition slot1: 2 8 8
Router1(config)#end
Router1#
注释 如果erase不支持也可以试试partition命令
1.13. 配置路由器为TFTP服务器
提问 配置路由器为TFTP服务器
回答
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#tftp-server flash:c2600-ik9o3s-mz.122-12a.bin
Router1(config)#end
Router1#
注释 使用此命令并不能把路由器配置为全功能的TFTP服务器,此服务器只能用于文件下载,而不能进行上传
1.14. 在路由器上使用FTP
提问 在路由器上使用FTP来进行文件的下载
回答
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#ip ftp username neoshi
Router1(config)#ip ftp password ioscookbook
Router1(config)#end
Router1#copy ftp: running-config
Address or name of remote host [172.25.1.1]? 172.25.1.1
Source filename []? test
Destination filename [running-config]? <enter>
Accessing ftp://172.25.1.1/test...
Loading /test
[OK - 24/4096 bytes]
24 bytes copied in 0.276 secs (87 bytes/sec)
Router1#
当然也可以使用下面的简化命令
copy ftp://neoshi:ioscookbook@172.25.1.1/c3620-ik9s-mz.122-10a.bin slot1:
注释 如果没有指定用户名和密码,路由器缺省会使用匿名登录
1.15. 批量产生路由器配置文件
1.16. 同时改变多台路由器的配置
1.17. 获得设备的硬件信息
1.18. 备份路由器的配置
以上都是使用perl脚本来进行批量化操作,建议使用我推荐的图形话绿色免费工具软件
1.19. 热重启
提问 重启路由器而对业务影响减少到最低
回答
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#warm-reboot
Router1(config)#end
Router1#
注释 要使用热启动必须先冷启动一次…无语了吧哈哈。此特性开始于12.3(2)T,根据实验冷启动要比热启动慢4分钟。可以使用reload warm命令进行人工的热重启
1.20. 热升级
提问 升级路由器IOS而对业务影响最小
回答
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#warm-reboot
Router1(config)#end
Router1#reload warm file slot0:c3745-ipbasek9-mz.124-7.bin
注释 12.3(11)T开始支持此特性
1.21. 配置存档特性
提问 自动对路由器配置进行存档
回答
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#archive
Router1(config-archive)#path slot0:/configs/$h
Router1(config-archive)#write-memory
Router1(config-archive)#time-period 1440
Router1(config-archive)#end
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#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#configuration mode exclusive auto
Router1(config)#end
Router1#
按需进行配置锁定
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#configuration mode exclusive manual
Router1(config)#end
Router1#
注释 12.3(14)T引入了此特性防止多个用户同时对路由器配置进行修改,在配置为auto的模式下,如果有用户进入了配置模式就自动对配置进行锁定,在manual模式下可以使用configure terminal lock进行配置锁定,可以使用show configuration lock来查看当前的配置锁定信息,如果你确实需要进行配置,就把看到锁定的人踢掉吧。
提问 保存一份IOS到TFTP服务器作为备份
回答
Freebsd% touch /tftpboot/c2600-ik9o3s-mz.122-12a.bin
Freebsd% chmod 666 /tftpboot/c2600-ik9o3s-mz.122-12a.bin
Freebsd% telnet Router1
Trying 172.25.1.5...
Connected to Router1.
Escape character is '^]'.
User Access Verification
Password: <vtypassword>
Router1>enable
Password: <enablepassword>
Router1#copy flash:c2600-ik9o3s-mz.122-12a.bin tftp
Address or name of remote host []? 172.25.1.1
Destination filename [c2600-ik9o3s-mz.122-12a.bin]? <enter>
!!!!!!
11135588 bytes copied in 52.588 secs (211752 bytes/sec)
Router1#
注释
1.10. 通过控制台口拷贝IOS镜像文件
提问 通过控制台口和AUX端口来加载IOS
回答
Router1#copy xmodem: slot1:
**** 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] <enter>
Destination filename []? c3620-ik9s-mz.122-12a.bin
Erase slot1: before copying? [confirm] <enter>
Use crc block checksumming? [confirm] <enter>
Max Retry Count [10]: <enter>
Perform image validation checks? [confirm] <enter>
Xmodem download using crc checksumming with image validation
Continue? [confirm] <enter>
Ready to receive file...........CC <start xmodem file transfer here>
4294967295 bytes copied in 1450.848 secs (1271445669961 bytes/sec)
Router1#
注释 思科建议使用AUX口进行此步骤,因为AUX口支持硬件流控。为了提高拷贝速度,建议提前使用下述命令来设置端口速度
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#line aux 0
Router1(config-line)#speed 115200
Router1(config-line)#end
Router1#
1.11. 删除Flash中的文件
提问 删除Flash中的文件
回答
Router1#erase slot1:
Erasing the slot1 filesystem will remove all files! Continue? [confirm] <enter>
Erasing device... eeeeeeeeeeee ...erased
Erase of slot1: complete
Router1#
或者删除单个文件
Router1#delete slot1:c3620-ik9s-mz.122-13.bin
Delete filename [c3620-ik9s-mz.122-13.bin]? <enter>
Delete slot1:c3620-ik9s-mz.122-13.bin? [confirm] <enter>
Router1#
注释 并不是所有的路由器都支持erase命令,不行的话可以尝试format命令,有些路由器在使用delete命令以后还可以使用undelete来恢复,同时也需要使用squeeze来彻底删除文件
1.12. 对Flash进行分区
提问 对Flash进行分区
回答
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#partition slot1: 2 8 8
Router1(config)#end
Router1#
注释 如果erase不支持也可以试试partition命令
1.13. 配置路由器为TFTP服务器
提问 配置路由器为TFTP服务器
回答
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#tftp-server flash:c2600-ik9o3s-mz.122-12a.bin
Router1(config)#end
Router1#
注释 使用此命令并不能把路由器配置为全功能的TFTP服务器,此服务器只能用于文件下载,而不能进行上传
1.14. 在路由器上使用FTP
提问 在路由器上使用FTP来进行文件的下载
回答
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#ip ftp username neoshi
Router1(config)#ip ftp password ioscookbook
Router1(config)#end
Router1#copy ftp: running-config
Address or name of remote host [172.25.1.1]? 172.25.1.1
Source filename []? test
Destination filename [running-config]? <enter>
Accessing ftp://172.25.1.1/test...
Loading /test
[OK - 24/4096 bytes]
24 bytes copied in 0.276 secs (87 bytes/sec)
Router1#
当然也可以使用下面的简化命令
copy ftp://neoshi:ioscookbook@172.25.1.1/c3620-ik9s-mz.122-10a.bin slot1:
注释 如果没有指定用户名和密码,路由器缺省会使用匿名登录
1.15. 批量产生路由器配置文件
1.16. 同时改变多台路由器的配置
1.17. 获得设备的硬件信息
1.18. 备份路由器的配置
以上都是使用perl脚本来进行批量化操作,建议使用我推荐的图形话绿色免费工具软件
1.19. 热重启
提问 重启路由器而对业务影响减少到最低
回答
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#warm-reboot
Router1(config)#end
Router1#
注释 要使用热启动必须先冷启动一次…无语了吧哈哈。此特性开始于12.3(2)T,根据实验冷启动要比热启动慢4分钟。可以使用reload warm命令进行人工的热重启
1.20. 热升级
提问 升级路由器IOS而对业务影响最小
回答
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#warm-reboot
Router1(config)#end
Router1#reload warm file slot0:c3745-ipbasek9-mz.124-7.bin
注释 12.3(11)T开始支持此特性
1.21. 配置存档特性
提问 自动对路由器配置进行存档
回答
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#archive
Router1(config-archive)#path slot0:/configs/$h
Router1(config-archive)#write-memory
Router1(config-archive)#time-period 1440
Router1(config-archive)#end
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#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#configuration mode exclusive auto
Router1(config)#end
Router1#
按需进行配置锁定
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#configuration mode exclusive manual
Router1(config)#end
Router1#
注释 12.3(14)T引入了此特性防止多个用户同时对路由器配置进行修改,在配置为auto的模式下,如果有用户进入了配置模式就自动对配置进行锁定,在manual模式下可以使用configure terminal lock进行配置锁定,可以使用show configuration lock来查看当前的配置锁定信息,如果你确实需要进行配置,就把看到锁定的人踢掉吧。
第二章路由器管理
2.1. 创建命令别名
提问 为常用的命令创建简洁的别名
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# alias exec rt show ip route
Router1(config)# alias exec on show ip ospf neighbor
Router1(config)# end
Router1#
注释 show aliases命令可以输出当前配置的别名
2.2. 管理路由器ARP缓存
提问 修改ARP表条目超时时长
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Ethernet0
Router1(config-if)# arp timeout 600
Router1(config-if)# end
Router1#
注释 缺省情况为4个小时,同时思科没有提供命令能单独的清除某个ARP缓存,只能通过 clear arp 命令来清除整个ARP表
2.3. 路由器Buffer调整
提问 手动调整路由器Buffer分配来使其工作的更高效
回答 路由器维护两个Buffer池,public buffers和interface buffers
调整public buffers
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# buffers big initial 100
Router1(config)# buffers big max-free 200
Router1(config)# buffers big min-free 50
Router1(config)# buffers big permanent 50
Router1(config)# end
Router1#
调整interface buffers
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# buffers Ethernet0 initial 200
Router1(config)# buffers Ethernet0 max-free 300
Router1(config)# buffers Ethernet0 min-free 50
Router1(config)# buffers Ethernet0 permanent 50
Router1(config)# end
Router1#
注释 一般不建议修改,如果修改,建议首先使用 show buffers命令来查看当前buffer使用情况,调整完以后建议使用 show memory来查看内存使用情况
2.4. 自动调整路由器Buffer
提问 希望路由器根据自己的情况自动进行buffer分配调整
回答
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#buffers tune automatic
Router(config)# end
Router#
注释 此命令引自IOS 12.3(14)T,使用 show buffers tune命令来查看自动调整情况
2.5. 使用CDP协议
提问 希望获得相连网络设备的信息
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# cdp run
Router1(config)# interface Serial0/0
Router1(config-if)# cdp enable
Router1(config-if)# exit
Router1(config)# interface FastEthernet0/0
Router1(config-if)# no cdp enable
Router1(config-if)# exit
Router1(config)# interface FastEthernet1/0
Router1(config-if)# cdp enable
Router1(config-if)# end
Router1#
注释 CDP(Cisco Discovery Protocol)是思科专有的协议,用于发现相连的思科设备,帮助了解网络拓朴,缺省是启用的,使用 show cdp neighbor detail 命令可以查看相连设备的详细信息
2.6. 禁止CDP协议
提问 为了安全期间不想让邻近设备发现自己设备的信息
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# cdp run
Router1(config)# interface FastEthernet0/0
Router1(config-if)# no cdp enable
Router1(config-if)# end
Router1#
注释 为了安全期间可以在边界设备上禁止CDP
2.7. 小服务的开启
提问 开启或者禁用一些类似finger的小服务
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# service tcp-small-servers (no service tcp-small-servers )
Router1(config)# service udp-small-servers (no sercie udp-small-servers)
Router1(config)# end
Router1#
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip finger (no ip finger)
Router1#
注释 tcp和udp的小服务指开启路由器的echo,discard,daytime和chargen服务,为了安全期间都建议将其关闭
2.8. 启用路由器HTTP访问
提问 通过浏览器来配置和管理路由器
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# access-list 75 permit 172.25.1.1
Router1(config)# access-list 75 deny any
Router1(config)# ip http server
Router1(config)# ip http access-class 75
Router1(config)# end
Router1#
注释 由于IOS 12.1(5)之前存在HTTP访问的高危漏洞,所以如果你的IOS版本小于此版本建议不要开启此服务
2.9. 启用路由器安全HTTPS访问
提问 通过加密的访问HTTP访问路由器
回答
Core# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Core(config)# ip http secure-server
Core(config)# end
Core#
注释 IOS 12.2(14)S之后引入此特性,建议先用 no ip http server命令关闭非加密的HTTP访问,然后开启安全的访问,同时可以使用 ip http secure-port 8080
命令来更改访问端口
2.10. 使用静态主机名映射
提问 在路由器上配置静态的主机映射表,从而使用主机名而不是IP地址来访问设备
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip host freebsd 172.25.1.1
Router1(config)# ip host router2 10.1.1.1 172.22.1.4
Router1(config)# end
Router1#
注释 可以对一个主机名映射很多IP地址来提供冗余访问, show hosts命令来验证
2.11. 启用DNS服务
提问 路由器使用DNS服务器来解析主机名
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip domain-lookup
Router1(config)# ip domain-name oreilly.com
Router1(config)# ip name-server 172.25.1.1
Router1(config)# ip name-server 10.1.20.5
Router1(config)# end
Router1#
注释 从IOS 12.2开始,思科使用了 ip domain lookup.来代替 ip domain-lookup 类似的 ip domain-name 被 ip domain name代替
2.12. 禁用域名解析
提问 禁用域名解析,防止路由器自动对打错的命令的进行DNS查询
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# no ip domain-lookup
Router1(config)# end
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# reload in 20
Reload scheduled for 11:33:53 EST Sat Feb 1 2003 (in 20 minutes)
Proceed with reload? [confirm]
Router1#
Router1# reload at 14:00 Feb 2
Reload scheduled for 14:00:00 EST Sun Feb 2 2003 (in 26 hours and 44 minutes)
Proceed with reload? [confirm]
Router1#
注释 很有用的命令,当你在对路由器配置进行修改前可以先行输入此命令,然后进行修改但是不保存配置,这样可以防止把自己锁在路由器之外。可以使用 reload cancel命令来取消定时重启
2.14. 定时执行配置命令
提问 周期性的定时执行某个命令
回答
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# kron policy-list NEOSHI
Router(config-kron-policy)# cli write memory
Router(config-kron-policy)# exit
Router(config)# kron occurrence DAILYat5 at 17:00 recurring
Router(config-kron-occurrence)# policy-list NEOSHI
Router(config-kron-occurrence)# end
Router#
注释 从IOS12.3(1)开始引入了这个类似Unix Cron的特性,不过也有一些缺点,只能运行EXEC模式下的命令,不能运行配置模式下的命令,同时输入的命令不能是交互性的,比如不能输入copy running-config startup-config来保存配置,因为是需要确认的,必须使用write memory来代替
2.15. 显示路由器CPU利用率的历史数据
提问 显示历史的路由器CPU利用率
回答
Router# show processes cpu history
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# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip ftp source-interface Loopback0
Router1(config)# ip ftp username ijbrown
Router1(config)# ip ftp password ijpassword
Router1(config)# exception protocol ftp
Router1(config)# exception region-size 65536
Router1(config)# exception dump 172.25.1.3
Router1(config)# end
Router1#
注释 缺省情况下路由器会使用tftp命令进行传送,不过TFTP有16M的限制所以建议换为FTP协议。另外为了防止当机导致文件不能生成,所以使用了 exception region-size 65536 来提前保留部分内存给该命令使用。可以先使用 write core命令来提前实验下生成此文件
2.17. 生成接口信息报告
2.18. 生成路由表报告
2.19. 生成ARP表报告
2.20. 生成主机表报告
以上都是使用perl脚本来进行命令输出的汇总操作,脚本略去
2.1. 创建命令别名
提问 为常用的命令创建简洁的别名
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# alias exec rt show ip route
Router1(config)# alias exec on show ip ospf neighbor
Router1(config)# end
Router1#
注释 show aliases命令可以输出当前配置的别名
2.2. 管理路由器ARP缓存
提问 修改ARP表条目超时时长
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Ethernet0
Router1(config-if)# arp timeout 600
Router1(config-if)# end
Router1#
注释 缺省情况为4个小时,同时思科没有提供命令能单独的清除某个ARP缓存,只能通过 clear arp 命令来清除整个ARP表
2.3. 路由器Buffer调整
提问 手动调整路由器Buffer分配来使其工作的更高效
回答 路由器维护两个Buffer池,public buffers和interface buffers
调整public buffers
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# buffers big initial 100
Router1(config)# buffers big max-free 200
Router1(config)# buffers big min-free 50
Router1(config)# buffers big permanent 50
Router1(config)# end
Router1#
调整interface buffers
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# buffers Ethernet0 initial 200
Router1(config)# buffers Ethernet0 max-free 300
Router1(config)# buffers Ethernet0 min-free 50
Router1(config)# buffers Ethernet0 permanent 50
Router1(config)# end
Router1#
注释 一般不建议修改,如果修改,建议首先使用 show buffers命令来查看当前buffer使用情况,调整完以后建议使用 show memory来查看内存使用情况
2.4. 自动调整路由器Buffer
提问 希望路由器根据自己的情况自动进行buffer分配调整
回答
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#buffers tune automatic
Router(config)# end
Router#
注释 此命令引自IOS 12.3(14)T,使用 show buffers tune命令来查看自动调整情况
2.5. 使用CDP协议
提问 希望获得相连网络设备的信息
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# cdp run
Router1(config)# interface Serial0/0
Router1(config-if)# cdp enable
Router1(config-if)# exit
Router1(config)# interface FastEthernet0/0
Router1(config-if)# no cdp enable
Router1(config-if)# exit
Router1(config)# interface FastEthernet1/0
Router1(config-if)# cdp enable
Router1(config-if)# end
Router1#
注释 CDP(Cisco Discovery Protocol)是思科专有的协议,用于发现相连的思科设备,帮助了解网络拓朴,缺省是启用的,使用 show cdp neighbor detail 命令可以查看相连设备的详细信息
2.6. 禁止CDP协议
提问 为了安全期间不想让邻近设备发现自己设备的信息
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# cdp run
Router1(config)# interface FastEthernet0/0
Router1(config-if)# no cdp enable
Router1(config-if)# end
Router1#
注释 为了安全期间可以在边界设备上禁止CDP
2.7. 小服务的开启
提问 开启或者禁用一些类似finger的小服务
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# service tcp-small-servers (no service tcp-small-servers )
Router1(config)# service udp-small-servers (no sercie udp-small-servers)
Router1(config)# end
Router1#
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip finger (no ip finger)
Router1#
注释 tcp和udp的小服务指开启路由器的echo,discard,daytime和chargen服务,为了安全期间都建议将其关闭
2.8. 启用路由器HTTP访问
提问 通过浏览器来配置和管理路由器
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# access-list 75 permit 172.25.1.1
Router1(config)# access-list 75 deny any
Router1(config)# ip http server
Router1(config)# ip http access-class 75
Router1(config)# end
Router1#
注释 由于IOS 12.1(5)之前存在HTTP访问的高危漏洞,所以如果你的IOS版本小于此版本建议不要开启此服务
2.9. 启用路由器安全HTTPS访问
提问 通过加密的访问HTTP访问路由器
回答
Core# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Core(config)# ip http secure-server
Core(config)# end
Core#
注释 IOS 12.2(14)S之后引入此特性,建议先用 no ip http server命令关闭非加密的HTTP访问,然后开启安全的访问,同时可以使用 ip http secure-port 8080
命令来更改访问端口
2.10. 使用静态主机名映射
提问 在路由器上配置静态的主机映射表,从而使用主机名而不是IP地址来访问设备
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip host freebsd 172.25.1.1
Router1(config)# ip host router2 10.1.1.1 172.22.1.4
Router1(config)# end
Router1#
注释 可以对一个主机名映射很多IP地址来提供冗余访问, show hosts命令来验证
2.11. 启用DNS服务
提问 路由器使用DNS服务器来解析主机名
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip domain-lookup
Router1(config)# ip domain-name oreilly.com
Router1(config)# ip name-server 172.25.1.1
Router1(config)# ip name-server 10.1.20.5
Router1(config)# end
Router1#
注释 从IOS 12.2开始,思科使用了 ip domain lookup.来代替 ip domain-lookup 类似的 ip domain-name 被 ip domain name代替
2.12. 禁用域名解析
提问 禁用域名解析,防止路由器自动对打错的命令的进行DNS查询
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# no ip domain-lookup
Router1(config)# end
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# reload in 20
Reload scheduled for 11:33:53 EST Sat Feb 1 2003 (in 20 minutes)
Proceed with reload? [confirm]
Router1#
Router1# reload at 14:00 Feb 2
Reload scheduled for 14:00:00 EST Sun Feb 2 2003 (in 26 hours and 44 minutes)
Proceed with reload? [confirm]
Router1#
注释 很有用的命令,当你在对路由器配置进行修改前可以先行输入此命令,然后进行修改但是不保存配置,这样可以防止把自己锁在路由器之外。可以使用 reload cancel命令来取消定时重启
2.14. 定时执行配置命令
提问 周期性的定时执行某个命令
回答
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# kron policy-list NEOSHI
Router(config-kron-policy)# cli write memory
Router(config-kron-policy)# exit
Router(config)# kron occurrence DAILYat5 at 17:00 recurring
Router(config-kron-occurrence)# policy-list NEOSHI
Router(config-kron-occurrence)# end
Router#
注释 从IOS12.3(1)开始引入了这个类似Unix Cron的特性,不过也有一些缺点,只能运行EXEC模式下的命令,不能运行配置模式下的命令,同时输入的命令不能是交互性的,比如不能输入copy running-config startup-config来保存配置,因为是需要确认的,必须使用write memory来代替
2.15. 显示路由器CPU利用率的历史数据
提问 显示历史的路由器CPU利用率
回答
Router# show processes cpu history
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# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip ftp source-interface Loopback0
Router1(config)# ip ftp username ijbrown
Router1(config)# ip ftp password ijpassword
Router1(config)# exception protocol ftp
Router1(config)# exception region-size 65536
Router1(config)# exception dump 172.25.1.3
Router1(config)# end
Router1#
注释 缺省情况下路由器会使用tftp命令进行传送,不过TFTP有16M的限制所以建议换为FTP协议。另外为了防止当机导致文件不能生成,所以使用了 exception region-size 65536 来提前保留部分内存给该命令使用。可以先使用 write core命令来提前实验下生成此文件
2.17. 生成接口信息报告
2.18. 生成路由表报告
2.19. 生成ARP表报告
2.20. 生成主机表报告
以上都是使用perl脚本来进行命令输出的汇总操作,脚本略去
第三章用户访问和权限管理
3.1. 设置用户名和密码
提问 为每个单独的人员设置不同的用户名和密码
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# username neoshi password ioscookbook (username weak nopassword )
Router1(config)# aaa new-model
Router1(config)# aaa authentication login local_auth local
Router1(config)# line vty 0 4
Router1(config-line)# login authentication local_auth
Router1(config-line)# exit
Router1(config)# end
Router1#
注释 设置单独的用户名和密码的好处就不用多说了,这里只提一个就是在日志中会显示谁做了修改,比如%SYS-5-RELOAD: Reload requested by kdooley on vty0 (172.25.1.1).另外在username这个命令里面还有一个autocommand的选项,实现登录以后自动执行某个特定的命令的作用,下面的例子就是一个用户名为run无密码,登录以后显示完端口状态就自动退出的例子,很好用吧
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# aaa new-model
Router1(config)# aaa authentication login default local
Router1(config)# aaa authorization exec default local
Router1(config)# username run nopassword noescape
Router1(config)# username run autocommand show ip interface brief
Router1(config)# end
Router1#
3.2. 加密密码
提问 加密密码从而在配置文件中不明文显示
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# enable password oreilly
Router1(config)# line vty 0 4
Router1(config-line)# password cookbook
Router1(config-line)# line con 0
Router1(config-line)# password cookbook
Router1(config-line)# line aux 0
Router1(config-line)# password cookbook
Router1(config-line)# exit
Router1(config)# service password-encryption
Router1(config)# end
Router1#
注释 这种加密方式很弱,很容易被破解
3.3. Using Better Password-Encryption Techniques
提问 使用强度高的加密方式而不是思科缺省的加密技术
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# enable secret ORAbooks
Router1(config)# end
Router1#
在IOS 12.2(8)T后也可以对username的密码做高强度的加密
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# username ijbrown secret oreilly
Router(config)# end
Router#
注释 由于这种加密方式使用的是MD5所以破解难度相对增大了。对于enable secret的密码有个小技巧就是密码设定正常没有?,不过可以通过^V+?的方式来输入。
3.4. 移去配置文件中的密码信息
提问 不想在配置文件中显示密码
回答 使用脚本略去
注释 简单的用show tech命令也可以
3.5. 解密思科的弱密码
提问 破解思科缺省的密码算法
回答 使用脚本略去
注释 可以使用BOSON网站上的免费工具
3.6. 显示当前登录用户
提问 显示当前登录设备的用户
回答
Router1# show users (who )
注释 无
3.7. 发信息给其它用户
提问 试图发送信息给登录在同一设备的其它用户
回答
Router1# send *
Router1# send console 0
Router1# send vty 2
Router1# send 66
注释 很好用的特性,比如当你重启的时候需要告诉别人,文本信息^+Z结束
3.8. 修改可用VTY数目
提问 增加或者减少可登录用户的数目
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# line vty 0 9
Router1(config-line)# exit
Router1(config)# end
Router1#
注释 缺省可登录vty数目为5,不能删除,对于增加的可以使用no line vty x 删除,不能不能删除单独的vty,是删除所有大于x的vty
3.9. 修改VTY的超时时长
提问 修改超时避免用户登录超时被系统断开
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# line vty 0 4
Router1(config-line)# exec-timeout 0 0 (exec-timeout 240 0 )
Router1(config-line)# exit
Router1(config)# end
Router1#
注释 缺省用户10分钟空闲就会被踢掉系统,0 0可以用不超时,第一个0是分钟,第二个0是秒。同时为了防止有些用户掉死但是还占用vty端口的情况,建议使用下面命令来防止:
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# service tcp-keepalives-in
Router1(config)# end
Router1#
3.10. 限制用户登录可以使用的协议
提问 只允许用户用特定的协议来进行系统登录
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# line vty 0 4
Router1(config-line)# transport input telnet
Router1(config-line)# exit
Router1(config)# end
Router1#
注释 缺省情况下除了可以telnet登录,还支持以下协议登录 lat pad v120 lapb-ta rlogin ssh
3.11. 配置用户登录可用总时长Enabling Absolute Timeouts on VTY Lines
提问 对用户登录总时长进行限制,不论是否在空闲还是活动
回答 Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# line vty 0 4
Router1(config-line)# absolute-timeout 5
Router1(config-line)# logout-warning 30
Router1(config-line)# exit
Router1(config)# end
Router1#
注释 无
3.12. 部署Banners
提问 设置登录时显示的警示性信息
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# banner exec # This is an exec banner #
Router1(config)# banner login # This is a login banner #
Router1(config)# banner motd $ This is a motd banner $
Router1(config)# end
Router1#
注释 不用使用welcome之类的字样,下面是一个FBI的路由器登录banner做参考
Router1(config)# banner login #
Enter TEXT message. End with the character '#'.
+--------------------------------------------------------------------+
| WARNING |
| ------- |
| This system is solely for the use of authorized users for official |
| purposes. You have no expectation of privacy in its use and to |
| ensure that the system is functioning properly, individuals using |
| this computer system are subject to having all of their activities |
| monitored and recorded by system personnel. Use of this system |
| evidences an express consent to such monitoring and agreement that |
| if such monitoring reveals evidence of possible abuse or criminal |
| activity, system personnel may provide the results of such |
| monitoring to appropriate officials. |
+--------------------------------------------------------------------+
#
Router1(config)# end
Router1#
3.13. 在特定端口禁用Banners显示
提问 aux口用于modem连接,为了避免出现问题希望关闭banner显示
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# line aux 0
Router1(config-line)# no motd-banner
Router1(config-line)# no exec-banner
Router1(config-line)# exit
Router1(config)# end
Router1#
注释
3.14. 禁用Line登录
提问 禁止在AUX或者Line端口进行设备登录
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# line aux 0
Router1(config-line)# transport input none
Router1(config-line)# no exec
Router1(config-line)# exec-timeout 0 1
Router1(config-line)# no password
Router1(config-line)# exit
Router1(config)# end
Router1#
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# access-list 98 deny any log
Router1(config)# line vty 0 4
Router1(config-line)# transport input none
Router1(config-line)# exec-timeout 0 1
Router1(config-line)# no exec
Router1(config-line)# access-class 98 in
Router1(config-line)# exit
Router1(config)# end
Router1#
注释 无
3.15. 为管理员保留特定的登录端口
提问 防止所有的登录端口都被占用,为管理员留一个后门
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# access-list 9 permit 172.25.1.1
Router1(config)# line vty 4
Router1(config-line)# access-class 9 in
Router1(config-line)# exit
Router1(config)# end
Router1#
或者
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# access-list 9 permit 172.25.1.1
Router1(config)# line vty 5 7
Router1(config-line)# rotary 25
Router1(config-line)# access-class 9 in
Router1(config-line)# exit
Router1(config)# end
Router1#
注释 在使用第二种rotary命令时就相应的改变登录时的端口号码,不是缺省的23,而是3000+rotary的号码25=3025
3.16. 限制特定地址的Telnet登录
提问 只允许特定的机器进行Telnet登录
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# access-list 99 permit 172.25.1.0 0.0.0.255
Router1(config)# access-list 99 deny any log
Router1(config)# line vty 0 4
Router1(config-line)# access-class 99 in
Router1(config-line)# exit
Router1(config)# end
Router1#
注释 无
3.17. 对Telnet访问进行日志记录
提问 记录每次telnet的日志
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# access-list 90 permit any log
Router1(config)# line vty 0 4
Router1(config-line)# access-class 90 in
Router1(config-line)# exit
Router1(config)# end
Router1#
注释 需要注意的是不管登录成功还是失败,在日志中都是显示的permitted:
%SEC-6-IPACCESSLOGS: list 90 permitted 172.25.1.1 1 packet
3.18. 设置发起Telnet的源地址
提问 有时对端设备有安全设置只允许特定的地址发起telnet请求
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip telnet source-interface loopback0
Router1(config)# end
Router1#
或者
Router1# telnet 172.25.1.5 /source-interface loopback0
注释 缺省情况路由器会使用到目的地所使用的端口来做Telnet的源地址
3.19. 自动登录
注释 使用脚本略去,其实用SecueCRT很容易设定
3.20. 使用SSH登录
提问 启用SSH这种加密的登录方式
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# hostname Router1
Router1(config)# ip domain-name neoshi.net
Router1(config)# crypto key generate rsa
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]: 1024
Generating RSA keys ...
[OK]
Router1(config)#
Jun 27 15:04:15: %SSH-5-ENABLED: SSH 1.5 has been enabled
Router1(config)# ip ssh time-out 120
Router1(config)# ip ssh authentication-retries 4
Router1(config)# end
Router1#
注释 从IOS 12.3(4)T开始支持SSH v2,之前只支持v1,首先要确认你的IOS版本,然后确认支持安全特性3DES,才能开启SSH的特性
3.21. 改变IOS命令的特权等级
提问 修改特定IOS命令的特权等级
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# privilege exec level 1 show startup-config
Router1(config)# end
Router1#
注释 缺省情况路由器支持16种特权等级,命令一般归属于0,1和15三种特权等级,在特权等级0下面只支持disable, enable, exit, help, 和logout命令,1下面不能对配置进行修改,15就是enable的特权等级
3.22. 基于用户的特权等级Defining Per User Privileges
提问 给不同的用户赋予不同的特权等级
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# aaa new-model
Router1(config)# aaa authentication login default local
Router1(config)# aaa authorization exec default local
Router1(config)# username neoshi privilege 10 password ioscookbook
Router1(config)# privilege exec level 10 show ip route
Router1(config)# privilege exec level 1 show ip
Router1(config)# privilege exec level 1 show
Router1(config)# end
Router1#
注释 通常的0,1和15三种等级弹性不足,可以定义更多的等级给不同的用户
3.22. 基于端口的特权等级
提问 根据登录的不同端口自动赋予特定的特权等级
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# line aux 0
Router1(config-line)# privilege level 5
Router1(config-line)# exit
Router1(config)# privilege exec level 5 show ip route
Router1(config)# privilege exec level 1 show ip
Router1(config)# privilege exec level 1 show
Router1(config)# end
Router1#
注释 无
3.1. 设置用户名和密码
提问 为每个单独的人员设置不同的用户名和密码
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# username neoshi password ioscookbook (username weak nopassword )
Router1(config)# aaa new-model
Router1(config)# aaa authentication login local_auth local
Router1(config)# line vty 0 4
Router1(config-line)# login authentication local_auth
Router1(config-line)# exit
Router1(config)# end
Router1#
注释 设置单独的用户名和密码的好处就不用多说了,这里只提一个就是在日志中会显示谁做了修改,比如%SYS-5-RELOAD: Reload requested by kdooley on vty0 (172.25.1.1).另外在username这个命令里面还有一个autocommand的选项,实现登录以后自动执行某个特定的命令的作用,下面的例子就是一个用户名为run无密码,登录以后显示完端口状态就自动退出的例子,很好用吧
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# aaa new-model
Router1(config)# aaa authentication login default local
Router1(config)# aaa authorization exec default local
Router1(config)# username run nopassword noescape
Router1(config)# username run autocommand show ip interface brief
Router1(config)# end
Router1#
3.2. 加密密码
提问 加密密码从而在配置文件中不明文显示
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# enable password oreilly
Router1(config)# line vty 0 4
Router1(config-line)# password cookbook
Router1(config-line)# line con 0
Router1(config-line)# password cookbook
Router1(config-line)# line aux 0
Router1(config-line)# password cookbook
Router1(config-line)# exit
Router1(config)# service password-encryption
Router1(config)# end
Router1#
注释 这种加密方式很弱,很容易被破解
3.3. Using Better Password-Encryption Techniques
提问 使用强度高的加密方式而不是思科缺省的加密技术
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# enable secret ORAbooks
Router1(config)# end
Router1#
在IOS 12.2(8)T后也可以对username的密码做高强度的加密
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# username ijbrown secret oreilly
Router(config)# end
Router#
注释 由于这种加密方式使用的是MD5所以破解难度相对增大了。对于enable secret的密码有个小技巧就是密码设定正常没有?,不过可以通过^V+?的方式来输入。
3.4. 移去配置文件中的密码信息
提问 不想在配置文件中显示密码
回答 使用脚本略去
注释 简单的用show tech命令也可以
3.5. 解密思科的弱密码
提问 破解思科缺省的密码算法
回答 使用脚本略去
注释 可以使用BOSON网站上的免费工具
3.6. 显示当前登录用户
提问 显示当前登录设备的用户
回答
Router1# show users (who )
注释 无
3.7. 发信息给其它用户
提问 试图发送信息给登录在同一设备的其它用户
回答
Router1# send *
Router1# send console 0
Router1# send vty 2
Router1# send 66
注释 很好用的特性,比如当你重启的时候需要告诉别人,文本信息^+Z结束
3.8. 修改可用VTY数目
提问 增加或者减少可登录用户的数目
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# line vty 0 9
Router1(config-line)# exit
Router1(config)# end
Router1#
注释 缺省可登录vty数目为5,不能删除,对于增加的可以使用no line vty x 删除,不能不能删除单独的vty,是删除所有大于x的vty
3.9. 修改VTY的超时时长
提问 修改超时避免用户登录超时被系统断开
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# line vty 0 4
Router1(config-line)# exec-timeout 0 0 (exec-timeout 240 0 )
Router1(config-line)# exit
Router1(config)# end
Router1#
注释 缺省用户10分钟空闲就会被踢掉系统,0 0可以用不超时,第一个0是分钟,第二个0是秒。同时为了防止有些用户掉死但是还占用vty端口的情况,建议使用下面命令来防止:
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# service tcp-keepalives-in
Router1(config)# end
Router1#
3.10. 限制用户登录可以使用的协议
提问 只允许用户用特定的协议来进行系统登录
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# line vty 0 4
Router1(config-line)# transport input telnet
Router1(config-line)# exit
Router1(config)# end
Router1#
注释 缺省情况下除了可以telnet登录,还支持以下协议登录 lat pad v120 lapb-ta rlogin ssh
3.11. 配置用户登录可用总时长Enabling Absolute Timeouts on VTY Lines
提问 对用户登录总时长进行限制,不论是否在空闲还是活动
回答 Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# line vty 0 4
Router1(config-line)# absolute-timeout 5
Router1(config-line)# logout-warning 30
Router1(config-line)# exit
Router1(config)# end
Router1#
注释 无
3.12. 部署Banners
提问 设置登录时显示的警示性信息
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# banner exec # This is an exec banner #
Router1(config)# banner login # This is a login banner #
Router1(config)# banner motd $ This is a motd banner $
Router1(config)# end
Router1#
注释 不用使用welcome之类的字样,下面是一个FBI的路由器登录banner做参考
Router1(config)# banner login #
Enter TEXT message. End with the character '#'.
+--------------------------------------------------------------------+
| WARNING |
| ------- |
| This system is solely for the use of authorized users for official |
| purposes. You have no expectation of privacy in its use and to |
| ensure that the system is functioning properly, individuals using |
| this computer system are subject to having all of their activities |
| monitored and recorded by system personnel. Use of this system |
| evidences an express consent to such monitoring and agreement that |
| if such monitoring reveals evidence of possible abuse or criminal |
| activity, system personnel may provide the results of such |
| monitoring to appropriate officials. |
+--------------------------------------------------------------------+
#
Router1(config)# end
Router1#
3.13. 在特定端口禁用Banners显示
提问 aux口用于modem连接,为了避免出现问题希望关闭banner显示
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# line aux 0
Router1(config-line)# no motd-banner
Router1(config-line)# no exec-banner
Router1(config-line)# exit
Router1(config)# end
Router1#
注释
3.14. 禁用Line登录
提问 禁止在AUX或者Line端口进行设备登录
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# line aux 0
Router1(config-line)# transport input none
Router1(config-line)# no exec
Router1(config-line)# exec-timeout 0 1
Router1(config-line)# no password
Router1(config-line)# exit
Router1(config)# end
Router1#
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# access-list 98 deny any log
Router1(config)# line vty 0 4
Router1(config-line)# transport input none
Router1(config-line)# exec-timeout 0 1
Router1(config-line)# no exec
Router1(config-line)# access-class 98 in
Router1(config-line)# exit
Router1(config)# end
Router1#
注释 无
3.15. 为管理员保留特定的登录端口
提问 防止所有的登录端口都被占用,为管理员留一个后门
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# access-list 9 permit 172.25.1.1
Router1(config)# line vty 4
Router1(config-line)# access-class 9 in
Router1(config-line)# exit
Router1(config)# end
Router1#
或者
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# access-list 9 permit 172.25.1.1
Router1(config)# line vty 5 7
Router1(config-line)# rotary 25
Router1(config-line)# access-class 9 in
Router1(config-line)# exit
Router1(config)# end
Router1#
注释 在使用第二种rotary命令时就相应的改变登录时的端口号码,不是缺省的23,而是3000+rotary的号码25=3025
3.16. 限制特定地址的Telnet登录
提问 只允许特定的机器进行Telnet登录
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# access-list 99 permit 172.25.1.0 0.0.0.255
Router1(config)# access-list 99 deny any log
Router1(config)# line vty 0 4
Router1(config-line)# access-class 99 in
Router1(config-line)# exit
Router1(config)# end
Router1#
注释 无
3.17. 对Telnet访问进行日志记录
提问 记录每次telnet的日志
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# access-list 90 permit any log
Router1(config)# line vty 0 4
Router1(config-line)# access-class 90 in
Router1(config-line)# exit
Router1(config)# end
Router1#
注释 需要注意的是不管登录成功还是失败,在日志中都是显示的permitted:
%SEC-6-IPACCESSLOGS: list 90 permitted 172.25.1.1 1 packet
3.18. 设置发起Telnet的源地址
提问 有时对端设备有安全设置只允许特定的地址发起telnet请求
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip telnet source-interface loopback0
Router1(config)# end
Router1#
或者
Router1# telnet 172.25.1.5 /source-interface loopback0
注释 缺省情况路由器会使用到目的地所使用的端口来做Telnet的源地址
3.19. 自动登录
注释 使用脚本略去,其实用SecueCRT很容易设定
3.20. 使用SSH登录
提问 启用SSH这种加密的登录方式
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# hostname Router1
Router1(config)# ip domain-name neoshi.net
Router1(config)# crypto key generate rsa
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]: 1024
Generating RSA keys ...
[OK]
Router1(config)#
Jun 27 15:04:15: %SSH-5-ENABLED: SSH 1.5 has been enabled
Router1(config)# ip ssh time-out 120
Router1(config)# ip ssh authentication-retries 4
Router1(config)# end
Router1#
注释 从IOS 12.3(4)T开始支持SSH v2,之前只支持v1,首先要确认你的IOS版本,然后确认支持安全特性3DES,才能开启SSH的特性
3.21. 改变IOS命令的特权等级
提问 修改特定IOS命令的特权等级
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# privilege exec level 1 show startup-config
Router1(config)# end
Router1#
注释 缺省情况路由器支持16种特权等级,命令一般归属于0,1和15三种特权等级,在特权等级0下面只支持disable, enable, exit, help, 和logout命令,1下面不能对配置进行修改,15就是enable的特权等级
3.22. 基于用户的特权等级Defining Per User Privileges
提问 给不同的用户赋予不同的特权等级
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# aaa new-model
Router1(config)# aaa authentication login default local
Router1(config)# aaa authorization exec default local
Router1(config)# username neoshi privilege 10 password ioscookbook
Router1(config)# privilege exec level 10 show ip route
Router1(config)# privilege exec level 1 show ip
Router1(config)# privilege exec level 1 show
Router1(config)# end
Router1#
注释 通常的0,1和15三种等级弹性不足,可以定义更多的等级给不同的用户
3.22. 基于端口的特权等级
提问 根据登录的不同端口自动赋予特定的特权等级
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# line aux 0
Router1(config-line)# privilege level 5
Router1(config-line)# exit
Router1(config)# privilege exec level 5 show ip route
Router1(config)# privilege exec level 1 show ip
Router1(config)# privilege exec level 1 show
Router1(config)# end
Router1#
注释 无
第四章TACAS+
4.1. 用户登录集中鉴权
提问 使用集中的鉴权方式对用户登录设备进行控制
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# aaa new-model
Router1(config)# aaa authentication login default group tacacs+
Router1(config)# aaa authentication enable default group tacacs+
Router1(config)# tacacs-server host 172.25.1.1
Router1(config)# tacacs-server key COOKBOOK
Router1(config)# end
Router1#
注释 部署集中化鉴权就不需要在每台设备上配置用户名密码了,改密码也变得简单了
4.2. 限制特定命令的执行权限
提问 对设备可执行命令权限进行基于用户的授权
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# aaa new-model
Router1(config)# aaa authorization exec default group tacacs+
Router1(config)# aaa authorization commands 15 default group tacacs+
Router1(config)# tacacs-server host 172.25.1.1
Router1(config)# tacacs-server key neoshi
Router1(config)# end
Router1#
注释 无
4.3. TACACS+服务器无法访问
提问 防止出现TACACS+服务器故障导致所有用户都不能登录
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# aaa new-model
Router1(config)# aaa authentication login default group tacacs+ enable
Router1(config)# aaa authentication enable default group tacacs+ enable
Router1(config)# aaa authorization commands 15 default group tacacs+ if-authenticated
Router1(config)# tacacs-server host 172.25.1.1
Router1(config)# tacacs-server key COOKBOOK
Router1(config)# end
Router1#
注释 在认证服务器出现故障的情况下使用enable密码作为备份,同时建议使用 if-authenticated参数在你配置授权的时候
4.4. 在特定端口禁用TACACS+鉴权
提问 为了方便禁止在控制口使用TACACS+鉴权
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# aaa new-model
Router1(config)# aaa authentication login default group tacacs+ local
Router1(config)# aaa authentication login NEOSHI line
Router1(config)# line con 0
Router1(config-line)# login authentication NEOSHI
Router1(config-line)# end
Router1#
注释
4.5. 记录用户行为
提问 记录用户输入的配置命令和时间
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# aaa new-model
Router1(config)# aaa accounting commands 1 default stop-only group tacacs+
Router1(config)# aaa accounting commands 15 default stop-only group tacacs+
Router1(config)# end
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# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# aaa new-model
Router1(config)# aaa accounting exec default start-stop group tacacs+
Router1(config)# aaa accounting connection default start-stop group tacacs+
Router1(config)# aaa accounting system default stop-only group tacacs+
Router1(config)# end
Router1#
注释 除了可以记录用户输入命令以外还提供了exec(用户开始和中止exec会话的时间记录),connection(用户发起外部连接的时间,地址,数据包多少等信息记录比如telnet ssh等)和system(系统重启,禁用AAA等系统信息)等三种系统事件的记录
4.7. 设置TACACS+消息的源地址
提问 发送TACACS+消息时只使用特定的源地址
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip tacacs source-interface Loopback0
Router1(config)# end
Router1#
注释 所有本设备的记录都来自于同一地址方便对日志进行汇总和统计
4.8. TACACS+服务器配置文件样本
注释 可以使用思科免费的TACACS+服务器也可以使用商业的服务器,配置方式略
4.1. 用户登录集中鉴权
提问 使用集中的鉴权方式对用户登录设备进行控制
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# aaa new-model
Router1(config)# aaa authentication login default group tacacs+
Router1(config)# aaa authentication enable default group tacacs+
Router1(config)# tacacs-server host 172.25.1.1
Router1(config)# tacacs-server key COOKBOOK
Router1(config)# end
Router1#
注释 部署集中化鉴权就不需要在每台设备上配置用户名密码了,改密码也变得简单了
4.2. 限制特定命令的执行权限
提问 对设备可执行命令权限进行基于用户的授权
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# aaa new-model
Router1(config)# aaa authorization exec default group tacacs+
Router1(config)# aaa authorization commands 15 default group tacacs+
Router1(config)# tacacs-server host 172.25.1.1
Router1(config)# tacacs-server key neoshi
Router1(config)# end
Router1#
注释 无
4.3. TACACS+服务器无法访问
提问 防止出现TACACS+服务器故障导致所有用户都不能登录
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# aaa new-model
Router1(config)# aaa authentication login default group tacacs+ enable
Router1(config)# aaa authentication enable default group tacacs+ enable
Router1(config)# aaa authorization commands 15 default group tacacs+ if-authenticated
Router1(config)# tacacs-server host 172.25.1.1
Router1(config)# tacacs-server key COOKBOOK
Router1(config)# end
Router1#
注释 在认证服务器出现故障的情况下使用enable密码作为备份,同时建议使用 if-authenticated参数在你配置授权的时候
4.4. 在特定端口禁用TACACS+鉴权
提问 为了方便禁止在控制口使用TACACS+鉴权
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# aaa new-model
Router1(config)# aaa authentication login default group tacacs+ local
Router1(config)# aaa authentication login NEOSHI line
Router1(config)# line con 0
Router1(config-line)# login authentication NEOSHI
Router1(config-line)# end
Router1#
注释
4.5. 记录用户行为
提问 记录用户输入的配置命令和时间
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# aaa new-model
Router1(config)# aaa accounting commands 1 default stop-only group tacacs+
Router1(config)# aaa accounting commands 15 default stop-only group tacacs+
Router1(config)# end
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# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# aaa new-model
Router1(config)# aaa accounting exec default start-stop group tacacs+
Router1(config)# aaa accounting connection default start-stop group tacacs+
Router1(config)# aaa accounting system default stop-only group tacacs+
Router1(config)# end
Router1#
注释 除了可以记录用户输入命令以外还提供了exec(用户开始和中止exec会话的时间记录),connection(用户发起外部连接的时间,地址,数据包多少等信息记录比如telnet ssh等)和system(系统重启,禁用AAA等系统信息)等三种系统事件的记录
4.7. 设置TACACS+消息的源地址
提问 发送TACACS+消息时只使用特定的源地址
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip tacacs source-interface Loopback0
Router1(config)# end
Router1#
注释 所有本设备的记录都来自于同一地址方便对日志进行汇总和统计
4.8. TACACS+服务器配置文件样本
注释 可以使用思科免费的TACACS+服务器也可以使用商业的服务器,配置方式略
第五章IP路由
5.1. 查找路由条目
提问 在路由表中查找特定的路由条目
回答
Router> show ip route 172.25.100.15
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> show ip route 172.15.101.5
% Network not in table
注意的是这里都是无类路由,如果有类的就不一样了
5.2. 查找特定类型的路由条目
提问 在路由表中查找相同类型的路由条目
回答
Router> show ip route static
192.168.1.0/32 is subnetted, 1 subnets
S 192.168.1.1 [1/0] via 172.25.1.4
还有一个更有用的命令
Router> show ip route summary
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# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# ip route 10.35.15.5 255.255.255.255 Ethernet0 (permanent选项可以使此条目一直存在于路由表中,而不管下一跳的可达性)
Router(config)# ip route 172.16.0.0 255.255.0.0 10.35.6.1 2 ( permanent )
Router(config)# end
Router#
也可以给路由条目打上标签
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# ip route 172.16.0.0 255.255.0.0 10.35.6.1 2 tag 36291
Router(config)# end
Router#
注释 在类似以太网这种多路访问的网络中建议使用下一跳为地址而不是接口。正常情况下路由器对静态路由的下一跳有效性的检查是一分钟,在12.3(10)以后增加了下面的命令可以对此时间进行调整Router(config)# ip route static adjust-time 30 。对静态路由打tag用于路由再发布时的区分
5.5. 浮动静态路由
提问 当动态路由出问题的时候使用静态路由作为备份
回答
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# ip route 10.0.0.0 255.0.0.0 172.16.1.1 190 (下一跳也可以触发一个拨号接口)
Router(config)# end
Router#
注释 通过调整管理距离的方式来进行路由备份,不过要注意的是管理距离只适合在相同路由的情况下,路由条目的最长匹配是第一位的。另外在不同厂商设备互联的时候,调整管理距离一定要设置合理。
5.6. 基于源地址的策略路由
提问 根据源地址的不同选择不同的路径
回答
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# access-list 1 permit 10.15.35.0 0.0.0.255
Router(config)# access-list 2 permit 10.15.36.0 0.0.0.255
Router(config)# interface Ethernet0
Router(config-if)# ip address 10.15.22.7 255.255.255.0
Router(config-if)# ip policy route-map Engineers
Router(config-if)# ip route-cache policy
Router(config-if)# exit
Router(config)# route-map Engineers permit 10
Router(config-route-map)# match ip address 1
Router(config-route-map)# set ip next-hop 10.15.27.1
Router(config-route-map)# exit
Router(config)# route-map Engineers permit 20
Router(config-route-map)# match ip address 2
Router(config-route-map)# set interface Ethernet1
Router(config-route-map)# end
Router#
注释 缺省情况下route map的最后一句都是deny all,这样不符合route map规则的数据包都会按照正常的路由表进行转发。 set ip next-hop verify-availability命令提供了对下一跳的验证,不过是基于CDP的,所以如果使用此命令需要打开CDP,最好同时调整时长,毕竟缺省是180秒。在使用策略路由时会在排错时增加难度,因为缺省对于本路由器发出的数据包可以绕过route map这样会造成错觉。
5.7. 基于应用的策略路由
提问 根据不同的应用来选择不同的路径
回答
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# access-list 101 deny tcp 10.15.25.0 0.0.0.255 any eq www
Router(config)# access-list 101 permit tcp any any eq www
Router(config)# interface Ethernet0
Router(config-if)# ip address 10.15.22.7 255.255.255.0
Router(config-if)# ip policy route-map Websurfers
Router(config-if)# ip route-cache policy
Router(config-if)# exit
Router(config)# route-map Websurfers permit 10
Router(config-route-map)# match ip address 101
Router(config-route-map)# set ip next-hop 10.15.27.1
Router(config-route-map)# exit
Router(config)# route-map Websurfers permit 20
Router(config-route-map)# set ip default next-hop 10.15.26.1
Router(config-route-map)# end
Router#
对于本设备的发出的数据包也使用策略路由
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# ip local policy route-map dlswtraffic
Router(config)# access-list 103 permit tcp any any eq 2065
Router(config)# access-list 103 permit tcp any eq 2065 any
Router(config)# route-map dlswtraffic permit 10
Router(config-route-map)# match ip address 103
Router(config-route-map)# set ip next-hop 10.15.27.3
Router(config-route-map)# end
Router#
注释 正常情况下如果所有定义的下一跳都不存在的情况下会使用路由表来查询,如果路由表没有此定义会使用缺省路由,这时候你可以使用 set ip default next-hop来定义一个不同的缺省路由
5.8. 策略路由检查
提问 检查所应用的策略路由
回答
Router> show ip policy
Interface Route map
local dlswtraffic
Ethernet0 Websurfers
Serial0 High-priority
Router> show route-map
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
注释 也可以通过 show access-list 103命令看到更多的匹配信息
5.9. 改变管理距离
提问 调整学到的外部网络的缺省管理距离
回答
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# router rip
Router(config-route)# network 192.168.15.0
Router(config-route)# distance 15 192.168.15.1 0.0.0.0
Router(config-route)# distance 200 192.168.15.0 0.0.0.255
Router(config-route)# distance 255
Router(config-route)# end
Router#
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# router eigrp 111
Router(config-route)# network 192.168.16.0
Router(config-route)# distance eigrp 55 200
Router(config-route)# end
Router#
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# router ospf 66
Router(config-route)# distance ospf inter-area 115
Router(config-route)# distance ospf intra-area 105
Router(config-route)# distance ospf external 125
Router(config-route)# end
Router#
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# router bgp 65520
Router(config-route)# distance bgp 115 220 50
Router(config-route)# end
Router#
注释 管理距离只是针对自己的,通过调整这些外部路由的管理距离来调整自己路由表的结构
5.10. 相同代价值的多路径路由
提问 限制路由器到达同一目的地的路径数目
回答
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# router ospf 65510
Router(config-router)# maximum-paths 2
Router(config-router)# end
Router#
IOS 12.2T以后对BGP增加了下面的命令
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# router bgp 65511
Router(config-router)# maximum-paths 2
Router(config-router)# maximum-paths ibgp 3
Router(config-router)# end
Router#
注释 缺省情况下静态路由可以有6条冗余,BGP只有一条最佳路径,其他路由协议为4条。使用上述命令在12.3(2)T之前可以调整最大为6条,12.3(2)T之后可以最大为16条
5.11. 配置静态路由的追踪
提问 在某个端口当掉等情况下才启用特定的静态路由
回答
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# track 10 interface Serial0/0 line-protocol
Router(config-track)# delay down 5 up 30
Router(config-track)# exit
Router(config)# ip route 192.168.10.0 255.255.255.0 10.3.12.26 track 10
Router(config)# end
Router#
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# track 11 ip route 10.2.95.0 255.255.255.0 reachability
Router(config-track)# delay down 5 up 5
Router(config-track)# exit
Router(config)# ip route 0.0.0.0 0.0.0.0 10.3.12.26 track 11
Router(config)# end
Router#
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# track 12 list boolean and
Router(config-track)# object 10 not
Router(config-track)# object 11
Router(config-track)# exit
Router(config)# ip route 192.168.13.0 255.255.255.0 10.3.12.26 track 12
Router(config)# end
Router#
注释 从12.3T和12.4以后开始IOS提供了一种track的特性,可以定义跟踪不同的状态。可以使用show track命令来查看跟踪的状态。跟踪状态也可以进行组合,使用and or逻辑运算或者百分比,权重等增加灵活度,很好玩,不过别把自己绕进去了
5.12. 路由表变动统计
提问 通过路由表变动的统计来衡量路由表的稳定性
回答
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# ip route profile
Router(config)# end
Router#
Router# show ip route profile
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次路由表变化就累计一次,多次变化就累计多次。但这个命令还是有一些缺点,一就是不能清掉老的数据,必须通过 no ip route profile,然后 ip route profile 来清除,还有就是这里只是统计结果,没有办法确定是哪条路由出的问题
5.1. 查找路由条目
提问 在路由表中查找特定的路由条目
回答
Router> show ip route 172.25.100.15
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> show ip route 172.15.101.5
% Network not in table
注意的是这里都是无类路由,如果有类的就不一样了
5.2. 查找特定类型的路由条目
提问 在路由表中查找相同类型的路由条目
回答
Router> show ip route static
192.168.1.0/32 is subnetted, 1 subnets
S 192.168.1.1 [1/0] via 172.25.1.4
还有一个更有用的命令
Router> show ip route summary
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# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# ip route 10.35.15.5 255.255.255.255 Ethernet0 (permanent选项可以使此条目一直存在于路由表中,而不管下一跳的可达性)
Router(config)# ip route 172.16.0.0 255.255.0.0 10.35.6.1 2 ( permanent )
Router(config)# end
Router#
也可以给路由条目打上标签
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# ip route 172.16.0.0 255.255.0.0 10.35.6.1 2 tag 36291
Router(config)# end
Router#
注释 在类似以太网这种多路访问的网络中建议使用下一跳为地址而不是接口。正常情况下路由器对静态路由的下一跳有效性的检查是一分钟,在12.3(10)以后增加了下面的命令可以对此时间进行调整Router(config)# ip route static adjust-time 30 。对静态路由打tag用于路由再发布时的区分
5.5. 浮动静态路由
提问 当动态路由出问题的时候使用静态路由作为备份
回答
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# ip route 10.0.0.0 255.0.0.0 172.16.1.1 190 (下一跳也可以触发一个拨号接口)
Router(config)# end
Router#
注释 通过调整管理距离的方式来进行路由备份,不过要注意的是管理距离只适合在相同路由的情况下,路由条目的最长匹配是第一位的。另外在不同厂商设备互联的时候,调整管理距离一定要设置合理。
5.6. 基于源地址的策略路由
提问 根据源地址的不同选择不同的路径
回答
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# access-list 1 permit 10.15.35.0 0.0.0.255
Router(config)# access-list 2 permit 10.15.36.0 0.0.0.255
Router(config)# interface Ethernet0
Router(config-if)# ip address 10.15.22.7 255.255.255.0
Router(config-if)# ip policy route-map Engineers
Router(config-if)# ip route-cache policy
Router(config-if)# exit
Router(config)# route-map Engineers permit 10
Router(config-route-map)# match ip address 1
Router(config-route-map)# set ip next-hop 10.15.27.1
Router(config-route-map)# exit
Router(config)# route-map Engineers permit 20
Router(config-route-map)# match ip address 2
Router(config-route-map)# set interface Ethernet1
Router(config-route-map)# end
Router#
注释 缺省情况下route map的最后一句都是deny all,这样不符合route map规则的数据包都会按照正常的路由表进行转发。 set ip next-hop verify-availability命令提供了对下一跳的验证,不过是基于CDP的,所以如果使用此命令需要打开CDP,最好同时调整时长,毕竟缺省是180秒。在使用策略路由时会在排错时增加难度,因为缺省对于本路由器发出的数据包可以绕过route map这样会造成错觉。
5.7. 基于应用的策略路由
提问 根据不同的应用来选择不同的路径
回答
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# access-list 101 deny tcp 10.15.25.0 0.0.0.255 any eq www
Router(config)# access-list 101 permit tcp any any eq www
Router(config)# interface Ethernet0
Router(config-if)# ip address 10.15.22.7 255.255.255.0
Router(config-if)# ip policy route-map Websurfers
Router(config-if)# ip route-cache policy
Router(config-if)# exit
Router(config)# route-map Websurfers permit 10
Router(config-route-map)# match ip address 101
Router(config-route-map)# set ip next-hop 10.15.27.1
Router(config-route-map)# exit
Router(config)# route-map Websurfers permit 20
Router(config-route-map)# set ip default next-hop 10.15.26.1
Router(config-route-map)# end
Router#
对于本设备的发出的数据包也使用策略路由
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# ip local policy route-map dlswtraffic
Router(config)# access-list 103 permit tcp any any eq 2065
Router(config)# access-list 103 permit tcp any eq 2065 any
Router(config)# route-map dlswtraffic permit 10
Router(config-route-map)# match ip address 103
Router(config-route-map)# set ip next-hop 10.15.27.3
Router(config-route-map)# end
Router#
注释 正常情况下如果所有定义的下一跳都不存在的情况下会使用路由表来查询,如果路由表没有此定义会使用缺省路由,这时候你可以使用 set ip default next-hop来定义一个不同的缺省路由
5.8. 策略路由检查
提问 检查所应用的策略路由
回答
Router> show ip policy
Interface Route map
local dlswtraffic
Ethernet0 Websurfers
Serial0 High-priority
Router> show route-map
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
注释 也可以通过 show access-list 103命令看到更多的匹配信息
5.9. 改变管理距离
提问 调整学到的外部网络的缺省管理距离
回答
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# router rip
Router(config-route)# network 192.168.15.0
Router(config-route)# distance 15 192.168.15.1 0.0.0.0
Router(config-route)# distance 200 192.168.15.0 0.0.0.255
Router(config-route)# distance 255
Router(config-route)# end
Router#
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# router eigrp 111
Router(config-route)# network 192.168.16.0
Router(config-route)# distance eigrp 55 200
Router(config-route)# end
Router#
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# router ospf 66
Router(config-route)# distance ospf inter-area 115
Router(config-route)# distance ospf intra-area 105
Router(config-route)# distance ospf external 125
Router(config-route)# end
Router#
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# router bgp 65520
Router(config-route)# distance bgp 115 220 50
Router(config-route)# end
Router#
注释 管理距离只是针对自己的,通过调整这些外部路由的管理距离来调整自己路由表的结构
5.10. 相同代价值的多路径路由
提问 限制路由器到达同一目的地的路径数目
回答
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# router ospf 65510
Router(config-router)# maximum-paths 2
Router(config-router)# end
Router#
IOS 12.2T以后对BGP增加了下面的命令
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# router bgp 65511
Router(config-router)# maximum-paths 2
Router(config-router)# maximum-paths ibgp 3
Router(config-router)# end
Router#
注释 缺省情况下静态路由可以有6条冗余,BGP只有一条最佳路径,其他路由协议为4条。使用上述命令在12.3(2)T之前可以调整最大为6条,12.3(2)T之后可以最大为16条
5.11. 配置静态路由的追踪
提问 在某个端口当掉等情况下才启用特定的静态路由
回答
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# track 10 interface Serial0/0 line-protocol
Router(config-track)# delay down 5 up 30
Router(config-track)# exit
Router(config)# ip route 192.168.10.0 255.255.255.0 10.3.12.26 track 10
Router(config)# end
Router#
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# track 11 ip route 10.2.95.0 255.255.255.0 reachability
Router(config-track)# delay down 5 up 5
Router(config-track)# exit
Router(config)# ip route 0.0.0.0 0.0.0.0 10.3.12.26 track 11
Router(config)# end
Router#
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# track 12 list boolean and
Router(config-track)# object 10 not
Router(config-track)# object 11
Router(config-track)# exit
Router(config)# ip route 192.168.13.0 255.255.255.0 10.3.12.26 track 12
Router(config)# end
Router#
注释 从12.3T和12.4以后开始IOS提供了一种track的特性,可以定义跟踪不同的状态。可以使用show track命令来查看跟踪的状态。跟踪状态也可以进行组合,使用and or逻辑运算或者百分比,权重等增加灵活度,很好玩,不过别把自己绕进去了
5.12. 路由表变动统计
提问 通过路由表变动的统计来衡量路由表的稳定性
回答
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# ip route profile
Router(config)# end
Router#
Router# show ip route profile
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次路由表变化就累计一次,多次变化就累计多次。但这个命令还是有一些缺点,一就是不能清掉老的数据,必须通过 no ip route profile,然后 ip route profile 来清除,还有就是这里只是统计结果,没有办法确定是哪条路由出的问题
第六章RIP
6.1. 配置RIP(V1)
提问 在简单的网络中启用RIP路由协议
回答
Router2# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)# interface Ethernet0
Router2(config-if)# ip address 192.168.30.1 255.255.255.0
Router2(config-if)# interface Serial0.1
Router2(config-subif)# ip address 172.25.2.2 255.255.255.0
Router2(config-subif)# exit
Router2(config)# router rip
Router2(config-router)# network 172.25.0.0
Router2(config-router)# network 192.168.30.0
Router2(config-router)# exit
Router2(config)# end
Router2#
注释 要特别注意的是版本1的RIP中的network命令是无类的,就算你配置命令是无类的网络,路由器内部还是会转化为无类的。 show ip rip database 是一个很好的验证命令
6.2. RIP中的路由过滤
提问 限制RIP中某些特定路由条目的交换
回答
入方向
Router2# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)# access-list 10 deny 192.168.20.0
Router2(config)# access-list 10 permit any
Router2(config)# router rip
Router2(config-router)# distribute-list 10 in Serial 0.1 (该命令除了可以用于特定接口也可以用于所有接口)
Router2(config-router)# network 172.25.0.0
Router2(config-router)# network 192.168.30.0
Router2(config-router)# exit
Router2(config)# end
Router2#
出方向
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# access-list 20 permit 0.0.0.0
Router1(config)# access-list 20 deny any
Router1(config)# router rip
Router1(config-router)# distribute-list 20 out Serial0/0.2
Router1(config-router)# network 172.25.0.0
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 使用 show ip protocol命令可以用来验证所配置的distribute-list
6.3. 再发布静态路由至RIP
提问 再发布你所配置的静态路由到RIP路由协议中
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip route 192.168.10.0 255.255.255.0 172.22.1.4
Router1(config)# router rip
Router1(config-router)# redistribute static metric 5
Router1(config-router)# distribute-list 7 out static
Router1(config-router)# exit
Router1(config)# access-list 7 permit 192.168.10.0
Router1(config)# end
Router1#
注释 这里再发布还是要注意无类路由的问题,所以还是建议用V2。例子是再发布静态路由,也可以再发布其他动态路由协议,比如OSPF,BGP,EIGRP等,命令类似 redistribute eigrp 65530
有一个好玩的情况是虽然此命令也可以支持RIP自己的再发布,但是配置时候是不允许的,因为RIP没有其他动态路由协议中的进程号的概念,无法区别不同的进程
6.4. 使用Route Maps进行路由再发布
提问 使用Route Maps这种更好控制粒度的方式来进行路由再发布的配置
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip route 192.168.10.0 255.255.255.0 172.22.1.4
Router1(config)# ip route 192.168.11.0 255.255.255.0 172.22.1.4
Router1(config)# ip route 192.168.12.0 255.255.255.0 172.22.1.4
Router1(config)# access-list 20 permit 192.168.10.0
Router1(config)# access-list 21 permit 192.168.11.0
Router1(config)# route-map STATIC permit 10
Router1(config-route-map)# match ip address 20
Router1(config-route-map)# set metric 2
Router1(config-route-map)# set tag 2
Router1(config-route-map)# exit
Router1(config)# route-map STATIC permit 20
Router1(config-route-map)# match ip address 21
Router1(config-route-map)# set metric 8
Router1(config-route-map)# route-map STATIC deny 30
Router1(config-route-map)# exit
Router1(config)# router rip
Router1(config-router)# redistribute static route-map STATIC
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 使用route map可以对路由再发布进行更好粒度的控制,如果觉得配置命令难懂的话,使用验证命令 show route-map 可能更好理解一些
6.5. 在RIP中宣告缺省路由
提问 使用RIP来宣告一条缺省路由
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip route 0.0.0.0 0.0.0.0 172.25.1.1
Router1(config)# router rip
Router1(config-router)# default-information originate
Router1(config-router)# end
Router1#
或者使用再发布命令
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip route 0.0.0.0 0.0.0.0 172.25.1.1
Router1(config)# access-list 7 permit 0.0.0.0
Router1(config)# router rip
Router1(config-router)# redistribute static
Router1(config-router)# distribute-list 7 out static
Router1(config-router)# end
Router1#
注释 推荐使用第一种方式,除了可以免除使用过滤列表以外还可以和route map来组合使用
6.6. 在特定接口禁用RIP
提问 阻止某个接口参与RIP
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# access-list 12 deny any
Router1(config)# router rip
Router1(config-router)# passive-interface FastEthernet0/1
Router1(config-router)# distribute-list 12 in FastEthernet0/1
Router1(config-router)# end
Router1#
注释 passive-interface 用于防止端口发送路由信息,但是并不能控制此接口不接收路由信息,所以要再使用 distribute-list 命令来防止此接口接收路由信息
6.7. 缺省被动接口
提问 缺省在所有端口禁用RIP,除非特别指定
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router rip
Router1(config-router)# passive-interface default
Router1(config-router)# no passive-interface FastEthernet0/0.1
Router1(config-router)# network 172.22.0.0
Router1(config-router)# network 172.25.0.0
Router1(config-router)# network 192.168.1.0
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 无
6.8. RIP更新使用单播包
提问 不想使用组播或者广播的形式来发布路由更新
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router rip
Router1(config-router)# passive-interface FastEthernet0/1
Router1(config-router)# neighbor 172.22.1.4
Router1(config-router)# end
Router1#
注释 缺省V1使用广播包,V2使用组播包的形式来发布路由更新
6.9. 对路由应用Offsets
提问 修改特定接口学到或者发布路由的度量值
回答
Router2# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)# access-list 22 permit 192.168.20.0
Router2(config) #access-list 33 permit 192.168.30.0
Router2(config)# router rip
Router2(config-router) #offset-list 33 out 10 Serial0.1
Router2(config-router)# offset-list 22 in 5 Serial0.1
Router2(config-router)# exit
Router2(config)# end
Router2#
注释 RIP是根据跳数来进行选路而没有考虑到链路的不同,通过这样的命令可以变相的增加某个接口的度量值,从而在选路时考虑,注意的是offset只能增加度量值不能减少
6.10. 定时器调整
提问 对RIP的定时器设定进行调整,提高收敛速度
回答
Router2# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)# router rip
Router2(config-router)# timers basic 20 80 80 120
Router2(config-router)# exit
Router2(config)# end
Router2#
注释 所有定时器单位都是秒,第一个为更新周期,第二个为无效路由时间,第三个为保持时间,第四个为flush时间。需要注意的是要确保启用RIP的网络定时器都设置一致
6.11. 增加路由更新数据包发送延迟
提问 避免路由更新数据包发送速度太快导致老设备来不及处理
回答
Router2# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)# router rip
Router2(config-router)# output-delay 10
Router2(config-router)# exit
Router2(config)# end
Router2#
注释 正常情况下一个RIP更新数据包大小为512字节可以包含25条路由条目,如果路由表条目大于25就会通过多个路由更新包来发送,正常是尽可能快的发,启用本特性可以增加发送的间隔,单位为毫秒
6.12. 启用非周期性更新
提问 避免使用每30秒的周期性更新,使用触发更新
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Serial0/0.2
Router1(config-subif)# ip rip triggered
Router1(config-subif)# end
Router1#
注释 一定要在邻居路由器上也启用此特性,只能用于点对点链路
6.13. 增加RIP的输入队列
提问 在低端路由器上增加RIP的输入队列避免丢失路由信息
回答
Router2# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)# router rip
Router2(config-router)# input-queue 200
Router2(config-router)# end
Router2#
注释 类似6.11
6.14. 配置RIP(V2)
提问 启用更灵活的版本2 RIP
回答
Router2# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)# router rip
Router2(config-router)# version 2
Router2(config-router)# network 172.25.0.0
Router2(config-router)# network 192.168.30.0
Router2(config-router)# end
Router2#
注释 缺省情况下路由器会监听v1和v2的RIP数据包,但是只会发送v1的数据包
6.15. 启用RIP认证
提问 对RIP的数据包进行认证增加安全性
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# key chain ORA
Router1(config-keychain)# key 1
Router1(config-keychain-key)# key-string neoshi
Router1(config-keychain-key)# exit
Router1(config)# interface FastEthernet0/0.1
Router1(config-subif)# ip rip authentication key-chain ORA
Router1(config-subif)# ip rip authentication mode text (或者ip rip authentication mode md5)
Router1(config-subif)# exit
Router1(config)# end
Router1#
注释 RIP认证是RIPv2的特性之一,需要注意的是由于启用了认证所以在更新数据包中所包含的路由条目数会减少,文本方式会减少为24,MD5会减少为23
6.16. 配置RIP路由汇总
提问 通过使用路由汇总来减少路由表的大小,增加稳定性
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Serial0/0.2
Router1(config-subif)# ip summary-address rip 172.25.0.0 255.255.0.0
Router1(config-subif)# exit
Router1(config)# end
Router1#
缺省情况下RIP会自动对路由条目汇总为无类网络路由,使用下面方法关闭
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router rip
Router1(config-router)# no auto-summary
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 只要配置的汇总路由中的有一条子网路由是存在的,路由器就会继续宣告此条汇总路由
6.17. 路由标签
提问 对再发布的路由配置标签,从而避免不同路由协议之间路由再发布出现路由回环
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip route 0.0.0.0 0.0.0.0 172.25.1.1
Router1(config)# access-list 7 permit 0.0.0.0
Router1(config)# route-map TAGGING permit 10
Router1(config-route-map)# match ip address 7
Router1(config-route-map)# set tag 5
Router1(config-route-map)# exit
Router1(config)# router rip
Router1(config-router)# redistribute static route-map TAGGING
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 标签TAG只用于外部的路由,而不是通过RIP学到的路由,RIP自身正常情况下也不直接使用这些标签,只是分发而已,如果这些路由再被分发到其他路由进程就可以用标签来识别从而进行控制
提问 在简单的网络中启用RIP路由协议
回答
Router2# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)# interface Ethernet0
Router2(config-if)# ip address 192.168.30.1 255.255.255.0
Router2(config-if)# interface Serial0.1
Router2(config-subif)# ip address 172.25.2.2 255.255.255.0
Router2(config-subif)# exit
Router2(config)# router rip
Router2(config-router)# network 172.25.0.0
Router2(config-router)# network 192.168.30.0
Router2(config-router)# exit
Router2(config)# end
Router2#
注释 要特别注意的是版本1的RIP中的network命令是无类的,就算你配置命令是无类的网络,路由器内部还是会转化为无类的。 show ip rip database 是一个很好的验证命令
6.2. RIP中的路由过滤
提问 限制RIP中某些特定路由条目的交换
回答
入方向
Router2# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)# access-list 10 deny 192.168.20.0
Router2(config)# access-list 10 permit any
Router2(config)# router rip
Router2(config-router)# distribute-list 10 in Serial 0.1 (该命令除了可以用于特定接口也可以用于所有接口)
Router2(config-router)# network 172.25.0.0
Router2(config-router)# network 192.168.30.0
Router2(config-router)# exit
Router2(config)# end
Router2#
出方向
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# access-list 20 permit 0.0.0.0
Router1(config)# access-list 20 deny any
Router1(config)# router rip
Router1(config-router)# distribute-list 20 out Serial0/0.2
Router1(config-router)# network 172.25.0.0
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 使用 show ip protocol命令可以用来验证所配置的distribute-list
6.3. 再发布静态路由至RIP
提问 再发布你所配置的静态路由到RIP路由协议中
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip route 192.168.10.0 255.255.255.0 172.22.1.4
Router1(config)# router rip
Router1(config-router)# redistribute static metric 5
Router1(config-router)# distribute-list 7 out static
Router1(config-router)# exit
Router1(config)# access-list 7 permit 192.168.10.0
Router1(config)# end
Router1#
注释 这里再发布还是要注意无类路由的问题,所以还是建议用V2。例子是再发布静态路由,也可以再发布其他动态路由协议,比如OSPF,BGP,EIGRP等,命令类似 redistribute eigrp 65530
有一个好玩的情况是虽然此命令也可以支持RIP自己的再发布,但是配置时候是不允许的,因为RIP没有其他动态路由协议中的进程号的概念,无法区别不同的进程
6.4. 使用Route Maps进行路由再发布
提问 使用Route Maps这种更好控制粒度的方式来进行路由再发布的配置
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip route 192.168.10.0 255.255.255.0 172.22.1.4
Router1(config)# ip route 192.168.11.0 255.255.255.0 172.22.1.4
Router1(config)# ip route 192.168.12.0 255.255.255.0 172.22.1.4
Router1(config)# access-list 20 permit 192.168.10.0
Router1(config)# access-list 21 permit 192.168.11.0
Router1(config)# route-map STATIC permit 10
Router1(config-route-map)# match ip address 20
Router1(config-route-map)# set metric 2
Router1(config-route-map)# set tag 2
Router1(config-route-map)# exit
Router1(config)# route-map STATIC permit 20
Router1(config-route-map)# match ip address 21
Router1(config-route-map)# set metric 8
Router1(config-route-map)# route-map STATIC deny 30
Router1(config-route-map)# exit
Router1(config)# router rip
Router1(config-router)# redistribute static route-map STATIC
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 使用route map可以对路由再发布进行更好粒度的控制,如果觉得配置命令难懂的话,使用验证命令 show route-map 可能更好理解一些
6.5. 在RIP中宣告缺省路由
提问 使用RIP来宣告一条缺省路由
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip route 0.0.0.0 0.0.0.0 172.25.1.1
Router1(config)# router rip
Router1(config-router)# default-information originate
Router1(config-router)# end
Router1#
或者使用再发布命令
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip route 0.0.0.0 0.0.0.0 172.25.1.1
Router1(config)# access-list 7 permit 0.0.0.0
Router1(config)# router rip
Router1(config-router)# redistribute static
Router1(config-router)# distribute-list 7 out static
Router1(config-router)# end
Router1#
注释 推荐使用第一种方式,除了可以免除使用过滤列表以外还可以和route map来组合使用
6.6. 在特定接口禁用RIP
提问 阻止某个接口参与RIP
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# access-list 12 deny any
Router1(config)# router rip
Router1(config-router)# passive-interface FastEthernet0/1
Router1(config-router)# distribute-list 12 in FastEthernet0/1
Router1(config-router)# end
Router1#
注释 passive-interface 用于防止端口发送路由信息,但是并不能控制此接口不接收路由信息,所以要再使用 distribute-list 命令来防止此接口接收路由信息
6.7. 缺省被动接口
提问 缺省在所有端口禁用RIP,除非特别指定
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router rip
Router1(config-router)# passive-interface default
Router1(config-router)# no passive-interface FastEthernet0/0.1
Router1(config-router)# network 172.22.0.0
Router1(config-router)# network 172.25.0.0
Router1(config-router)# network 192.168.1.0
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 无
6.8. RIP更新使用单播包
提问 不想使用组播或者广播的形式来发布路由更新
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router rip
Router1(config-router)# passive-interface FastEthernet0/1
Router1(config-router)# neighbor 172.22.1.4
Router1(config-router)# end
Router1#
注释 缺省V1使用广播包,V2使用组播包的形式来发布路由更新
6.9. 对路由应用Offsets
提问 修改特定接口学到或者发布路由的度量值
回答
Router2# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)# access-list 22 permit 192.168.20.0
Router2(config) #access-list 33 permit 192.168.30.0
Router2(config)# router rip
Router2(config-router) #offset-list 33 out 10 Serial0.1
Router2(config-router)# offset-list 22 in 5 Serial0.1
Router2(config-router)# exit
Router2(config)# end
Router2#
注释 RIP是根据跳数来进行选路而没有考虑到链路的不同,通过这样的命令可以变相的增加某个接口的度量值,从而在选路时考虑,注意的是offset只能增加度量值不能减少
6.10. 定时器调整
提问 对RIP的定时器设定进行调整,提高收敛速度
回答
Router2# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)# router rip
Router2(config-router)# timers basic 20 80 80 120
Router2(config-router)# exit
Router2(config)# end
Router2#
注释 所有定时器单位都是秒,第一个为更新周期,第二个为无效路由时间,第三个为保持时间,第四个为flush时间。需要注意的是要确保启用RIP的网络定时器都设置一致
6.11. 增加路由更新数据包发送延迟
提问 避免路由更新数据包发送速度太快导致老设备来不及处理
回答
Router2# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)# router rip
Router2(config-router)# output-delay 10
Router2(config-router)# exit
Router2(config)# end
Router2#
注释 正常情况下一个RIP更新数据包大小为512字节可以包含25条路由条目,如果路由表条目大于25就会通过多个路由更新包来发送,正常是尽可能快的发,启用本特性可以增加发送的间隔,单位为毫秒
6.12. 启用非周期性更新
提问 避免使用每30秒的周期性更新,使用触发更新
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Serial0/0.2
Router1(config-subif)# ip rip triggered
Router1(config-subif)# end
Router1#
注释 一定要在邻居路由器上也启用此特性,只能用于点对点链路
6.13. 增加RIP的输入队列
提问 在低端路由器上增加RIP的输入队列避免丢失路由信息
回答
Router2# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)# router rip
Router2(config-router)# input-queue 200
Router2(config-router)# end
Router2#
注释 类似6.11
6.14. 配置RIP(V2)
提问 启用更灵活的版本2 RIP
回答
Router2# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)# router rip
Router2(config-router)# version 2
Router2(config-router)# network 172.25.0.0
Router2(config-router)# network 192.168.30.0
Router2(config-router)# end
Router2#
注释 缺省情况下路由器会监听v1和v2的RIP数据包,但是只会发送v1的数据包
6.15. 启用RIP认证
提问 对RIP的数据包进行认证增加安全性
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# key chain ORA
Router1(config-keychain)# key 1
Router1(config-keychain-key)# key-string neoshi
Router1(config-keychain-key)# exit
Router1(config)# interface FastEthernet0/0.1
Router1(config-subif)# ip rip authentication key-chain ORA
Router1(config-subif)# ip rip authentication mode text (或者ip rip authentication mode md5)
Router1(config-subif)# exit
Router1(config)# end
Router1#
注释 RIP认证是RIPv2的特性之一,需要注意的是由于启用了认证所以在更新数据包中所包含的路由条目数会减少,文本方式会减少为24,MD5会减少为23
6.16. 配置RIP路由汇总
提问 通过使用路由汇总来减少路由表的大小,增加稳定性
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Serial0/0.2
Router1(config-subif)# ip summary-address rip 172.25.0.0 255.255.0.0
Router1(config-subif)# exit
Router1(config)# end
Router1#
缺省情况下RIP会自动对路由条目汇总为无类网络路由,使用下面方法关闭
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router rip
Router1(config-router)# no auto-summary
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 只要配置的汇总路由中的有一条子网路由是存在的,路由器就会继续宣告此条汇总路由
6.17. 路由标签
提问 对再发布的路由配置标签,从而避免不同路由协议之间路由再发布出现路由回环
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip route 0.0.0.0 0.0.0.0 172.25.1.1
Router1(config)# access-list 7 permit 0.0.0.0
Router1(config)# route-map TAGGING permit 10
Router1(config-route-map)# match ip address 7
Router1(config-route-map)# set tag 5
Router1(config-route-map)# exit
Router1(config)# router rip
Router1(config-router)# redistribute static route-map TAGGING
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 标签TAG只用于外部的路由,而不是通过RIP学到的路由,RIP自身正常情况下也不直接使用这些标签,只是分发而已,如果这些路由再被分发到其他路由进程就可以用标签来识别从而进行控制
7.1. 配置EIGRP
提问 ONT-FAMILY: 宋体">配置网络使用EIGRP路由协议
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Ethernet0
Router1(config-if)# ip address 192.168.20.1 255.255.255.0
Router1(config-if)# exit
Router1(config)# interface Serial0.1 point-to-point
Router1(config-subif)# ip address 172.25.2.2 255.255.255.252
Router1(config-subif)# exit
Router1(config)# router eigrp 55
Router1(config-router)# network 172.25.0.0
Router1(config-router)# network 192.168.20.0
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 要确保启用此路由协议的所有路由器配置的EIGRP后面的进程号相同,可以使用 show ip eigrp neighbors 来验证邻居关系。同时支持 network 192.168.20.0 0.0.0.255 来定义发布的网络
7.2. 路由过滤
提问 对EIGRP学到或者宣告的路由进行过滤
回答
入方向过滤
Router2# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)# access-list 34 deny 192.168.30.0
Router2(config)# access-list 34 permit any
Router2(config)# router eigrp 55
Router2(config-router)# distribute-list 34 in Serial0.1
Router2(config-router)# exit
Router2(config)# end
Router2#
出方向过滤
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# access-list 57 permit 172.25.1.0
Router1(config)# access-list 57 deny any
Router1(config)# router eigrp 55
Router1(config-router)# distribute-list 57 out Serial0/0.2
Router1(config-router)# exit
Router1(config)# end
Router1#
使用prefix方式过滤,并且支持 gateway 选项
Router9# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router9(config)# ip prefix-list ALLOWED-PREFIXES permit 10.0.0.0/8 le 32
Router9(config)# ip prefix-list ALLOWED-PREFIXES deny 0.0.0.0/0 le 32
Router9(config)# ip prefix-list ALLOWED-NEIGHBORS permit 172.18.19.1/32
Router9(config)# ip prefix-list ALLOWED-NEIGHBORS permit 172.18.19.4/32
Router9(config)# ip prefix-list ALLOWED-NEIGHBORS deny 0.0.0.0/0 le 32
Router9(config)# router eigrp 55
Router9(config-router)# distribute-list prefix ALLOWED-PREFIXES gateway ALLOWED-NEIGHBORS in
Router9(config-router)# exit
Router9(config)# end
Router9#
注释 在路由过滤时推荐使用prefix方式而不用ACL形式。Gateway参数只能用于入方向控制,同时建议不用和interface混和使用
7.3. 再发布路由到EIGRP
提问 再发布其他方式学到的路由到EIGRP路由进程
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router eigrp 55
Router1(config-router)# redistribute rip
Router1(config-router)# default-metric 1000 100 250 100 1500
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 如果再发布的是静态路由可以不用配置default-metric命令,对于其他协议都必须配置此命令否则无法成功再发布。再发布之前也可以使用过滤列表进行路由过滤,从而只再发布特定路由
Router1(config)# router eigrp 55
Router1(config-router)# redistribute ospf 99
Router1(config-router)# distribute-list 7 out ospf 99
7.4. 使用Route Map方式来配置再发布
提问 使用控制粒度更好的Route Map方式来配置再发布
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip route 192.168.10.0 255.255.255.0 172.22.1.4
Router1(config)# ip route 192.168.11.0 255.255.255.0 172.22.1.4
Router1(config)# ip route 192.168.12.0 255.255.255.0 172.22.1.4
Router1(config)# access-list 20 permit 192.168.10.0
Router1(config)# access-list 21 permit 192.168.11.0
Router1(config)# route-map STATIC permit 10
Router1(config-route-map)# match ip address 20
Router1(config-route-map)# set metric 56 100 255 1 1500
Router1(config-route-map)# set tag 2
Router1(config-route-map)# exit
Router1(config)# route-map STATIC permit 20
Router1(config-route-map)# match ip address 21
Router1(config-route-map)# set metric 128 200 255 1 1500
Router1(config-route-map)# exit
Router1(config)# route-map STATIC deny 30
Router1(config-route-map)# exit
Router1(config)# router eigrp 55
Router1(config-router)# redistribute static route-map STATIC
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 此处配置和前面6.3的配置差不多,唯一需要注意的就是前面提到的必须要加上metric的设置
7.5. 特定接口禁止EIGRP
提问 禁止某个端口参与EIGRP
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router eigrp 55
Router1(config-router)# passive-interface Serial0/1
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 这里的被动接口和RIP不同,由于结果是不能形成邻居在此接口所以使用该命令以后就不能发送也不能接收路由信息
7.6. 调整EIGRP度量值
提问 修改学到的EIGRP路由器度量值
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# access-list 22 permit 192.168.30.0
Router1(config)# access-list 33 permit 192.168.30.0
Router1(config)# router eigrp 55
Router1(config-router)# offset-list 33 out 10000 Serial0.1
Router1(config-router)# offset-list 22 in 10000 Serial0.1
Router1(config-router)# exit
Router1(config)# end
Router1#
注释
7.7. 定时器调整
提问 调整定时器优化收敛
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Serial0.1
Router1(config-subif)# ip hello-interval eigrp 55 3
Router1(config-subif)# ip hold-time eigrp 55 9
Router1(config-subif)# exit
Router1(config)# end
Router1#
注释 EIGRP的一个特性就是定时器的调整可以基于端口,并且不用保持整个网络中所有设备的定时器设置一致,各个定时器都是独立的
7.8. 启用EIGRP认证
提问 增强路由信息安全性
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# key chain ORA
Router1(config-keychain)# key 1
Router1(config-keychain-key)# key-string oreilly
Router1(config-keychain-key)# exit
Router1(config-keychain)# exit
Router1(config)# interface Serial0/1
Router1(config-if)# ip authentication mode eigrp 55 md5
Router1(config-if)# ip authentication key-chain eigrp 55 ORA
Router1(config-if)# exit
Router1(config)# end
Router1#
注释 注意这里只是认证不是加密路由信息包。下面提供一种更改key方法,帮助网络平稳过渡到新的key
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# key chain Mars
Router1(config-keychain)# key 1
Router1(config-keychain-key)# key-string rocket
Router1(config-keychain-key)# accept-lifetime 00:00:00 Jan 1 1993 00:15:00 Nov 1 2006
Router1(config-keychain-key)# send-lifetime 00:00:00 Jan 1 1993 00:00:00 Nov 1 2006
Router1(config-keychain-key)# key 2
Router1(config-keychain-key)# key-string martian
Router1(config-keychain-key)# accept-lifetime 23:45:00 Oct 31 2006 infinite
Router1(config-keychain-key)# send-lifetime 00:00:00 Nov 1 2006 infinite
Router1(config-keychain-key)# end
Router1#
7.9. 配置EIGRP路由汇总
提问 通过路由汇总来减少路由表大小和增强稳定性
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Serial0/0.2
Router1(config-subif)# ip summary-address eigrp 55 172.25.0.0 255.255.0.0
Router1(config-subif)# exit
Router1(config)# end
Router1#
缺省会自动路由汇总,使用 no auto-summary关闭(12.2(8)T后自动关闭)
同时可以配置汇总路由的同时,宣告部分子网路由
Router9# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router9(config)# ip prefix-list 10.5.5/24 permit 10.5.5.0/24
Router9(config)# route-map LEAK10-5-5 permit 10
Router9(config-route-map)# match ip address prefix-list 10.5.5/24
Router9(config-route-map)# exit
Router9(config)# interface Serial0/0
Router9(config-if)# ip summary-address eigrp 55 10.5.0.0 255.255.0.0 leak-map LEAK10-5-5
Router9(config-if)# exit
Router9(config)# end
Router9#
注释 路由汇总也是EIGRP的特性之一,可以配置在任意路由器的接口进行汇总,不象OSPF那样只能在ABR汇总。汇总路由的度量值和所汇总路由中的最好的子网路由的度量值一致。Leakmap特性在12.3(14)T后引入,可以在汇总路由的同时发布某些更匹配的路由
7.10. 记录邻居状态变化
提问 记录邻居状态变化
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router eigrp 55
Router1(config-router)# eigrp log-neighbor-changes
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 缺省开启
7.11. 限制EIGRP路由更新占用带宽
提问 限制EIGRP路由更新占用带宽的百分比
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Serial0.1
Router1(config-subif)# ip bandwidth-percent eigrp 55 40
Router1(config-subif)# exit
Router1(config)# end
Router1#
注释 这里的百分比可以大于100%,当我们人为的设定了某端口带宽用于计算度量值时
7.12. EIGRP Stub路由
提问 向边缘网络发布较小的路由表
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router eigrp 55
Router1(config-router)# eigrp stub
Router1(config-router)# exit
Router1(config)# end
Router1#
注释
7.13. 路由标签
提问 通过对特定路由进行标签,防止再分发时出现路由回环
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip route 0.0.0.0 0.0.0.0 172.25.1.1
Router1(config)# access-list 7 permit 0.0.0.0
Router1(config)# route-map TAGGING permit 10
Router1(config-route-map)# match ip address 7
Router1(config-route-map)# set tag 5
Router1(config-route-map)# exit
Router1(config)# router eigrp 55
Router1(config-router)# redistribute static route-map TAGGING
Router1(config-router)# exit
Router1(config)# end
Router1#
注释
7.14. 查看EIGRP状态
提问 查看状态命令
回答
Router1# show ip protocols
Router1# show ip route eigrp
Router1# show ip eigrp neighbors
Router1# show ip eigrp interfaces
Router9# show ip eigrp accounting
Router1# show ip eigrp topology
注释 12.3(14)T引入了 show ip eigrp accounting
Router9# show ip eigrp accounting
IP-EIGRP accounting for AS(55)/ID(172.18.5.9)
Total Prefix Count: 50 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# show ip eigrp topology
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
提问 ONT-FAMILY: 宋体">配置网络使用EIGRP路由协议
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Ethernet0
Router1(config-if)# ip address 192.168.20.1 255.255.255.0
Router1(config-if)# exit
Router1(config)# interface Serial0.1 point-to-point
Router1(config-subif)# ip address 172.25.2.2 255.255.255.252
Router1(config-subif)# exit
Router1(config)# router eigrp 55
Router1(config-router)# network 172.25.0.0
Router1(config-router)# network 192.168.20.0
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 要确保启用此路由协议的所有路由器配置的EIGRP后面的进程号相同,可以使用 show ip eigrp neighbors 来验证邻居关系。同时支持 network 192.168.20.0 0.0.0.255 来定义发布的网络
7.2. 路由过滤
提问 对EIGRP学到或者宣告的路由进行过滤
回答
入方向过滤
Router2# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)# access-list 34 deny 192.168.30.0
Router2(config)# access-list 34 permit any
Router2(config)# router eigrp 55
Router2(config-router)# distribute-list 34 in Serial0.1
Router2(config-router)# exit
Router2(config)# end
Router2#
出方向过滤
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# access-list 57 permit 172.25.1.0
Router1(config)# access-list 57 deny any
Router1(config)# router eigrp 55
Router1(config-router)# distribute-list 57 out Serial0/0.2
Router1(config-router)# exit
Router1(config)# end
Router1#
使用prefix方式过滤,并且支持 gateway 选项
Router9# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router9(config)# ip prefix-list ALLOWED-PREFIXES permit 10.0.0.0/8 le 32
Router9(config)# ip prefix-list ALLOWED-PREFIXES deny 0.0.0.0/0 le 32
Router9(config)# ip prefix-list ALLOWED-NEIGHBORS permit 172.18.19.1/32
Router9(config)# ip prefix-list ALLOWED-NEIGHBORS permit 172.18.19.4/32
Router9(config)# ip prefix-list ALLOWED-NEIGHBORS deny 0.0.0.0/0 le 32
Router9(config)# router eigrp 55
Router9(config-router)# distribute-list prefix ALLOWED-PREFIXES gateway ALLOWED-NEIGHBORS in
Router9(config-router)# exit
Router9(config)# end
Router9#
注释 在路由过滤时推荐使用prefix方式而不用ACL形式。Gateway参数只能用于入方向控制,同时建议不用和interface混和使用
7.3. 再发布路由到EIGRP
提问 再发布其他方式学到的路由到EIGRP路由进程
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router eigrp 55
Router1(config-router)# redistribute rip
Router1(config-router)# default-metric 1000 100 250 100 1500
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 如果再发布的是静态路由可以不用配置default-metric命令,对于其他协议都必须配置此命令否则无法成功再发布。再发布之前也可以使用过滤列表进行路由过滤,从而只再发布特定路由
Router1(config)# router eigrp 55
Router1(config-router)# redistribute ospf 99
Router1(config-router)# distribute-list 7 out ospf 99
7.4. 使用Route Map方式来配置再发布
提问 使用控制粒度更好的Route Map方式来配置再发布
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip route 192.168.10.0 255.255.255.0 172.22.1.4
Router1(config)# ip route 192.168.11.0 255.255.255.0 172.22.1.4
Router1(config)# ip route 192.168.12.0 255.255.255.0 172.22.1.4
Router1(config)# access-list 20 permit 192.168.10.0
Router1(config)# access-list 21 permit 192.168.11.0
Router1(config)# route-map STATIC permit 10
Router1(config-route-map)# match ip address 20
Router1(config-route-map)# set metric 56 100 255 1 1500
Router1(config-route-map)# set tag 2
Router1(config-route-map)# exit
Router1(config)# route-map STATIC permit 20
Router1(config-route-map)# match ip address 21
Router1(config-route-map)# set metric 128 200 255 1 1500
Router1(config-route-map)# exit
Router1(config)# route-map STATIC deny 30
Router1(config-route-map)# exit
Router1(config)# router eigrp 55
Router1(config-router)# redistribute static route-map STATIC
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 此处配置和前面6.3的配置差不多,唯一需要注意的就是前面提到的必须要加上metric的设置
7.5. 特定接口禁止EIGRP
提问 禁止某个端口参与EIGRP
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router eigrp 55
Router1(config-router)# passive-interface Serial0/1
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 这里的被动接口和RIP不同,由于结果是不能形成邻居在此接口所以使用该命令以后就不能发送也不能接收路由信息
7.6. 调整EIGRP度量值
提问 修改学到的EIGRP路由器度量值
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# access-list 22 permit 192.168.30.0
Router1(config)# access-list 33 permit 192.168.30.0
Router1(config)# router eigrp 55
Router1(config-router)# offset-list 33 out 10000 Serial0.1
Router1(config-router)# offset-list 22 in 10000 Serial0.1
Router1(config-router)# exit
Router1(config)# end
Router1#
注释
7.7. 定时器调整
提问 调整定时器优化收敛
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Serial0.1
Router1(config-subif)# ip hello-interval eigrp 55 3
Router1(config-subif)# ip hold-time eigrp 55 9
Router1(config-subif)# exit
Router1(config)# end
Router1#
注释 EIGRP的一个特性就是定时器的调整可以基于端口,并且不用保持整个网络中所有设备的定时器设置一致,各个定时器都是独立的
7.8. 启用EIGRP认证
提问 增强路由信息安全性
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# key chain ORA
Router1(config-keychain)# key 1
Router1(config-keychain-key)# key-string oreilly
Router1(config-keychain-key)# exit
Router1(config-keychain)# exit
Router1(config)# interface Serial0/1
Router1(config-if)# ip authentication mode eigrp 55 md5
Router1(config-if)# ip authentication key-chain eigrp 55 ORA
Router1(config-if)# exit
Router1(config)# end
Router1#
注释 注意这里只是认证不是加密路由信息包。下面提供一种更改key方法,帮助网络平稳过渡到新的key
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# key chain Mars
Router1(config-keychain)# key 1
Router1(config-keychain-key)# key-string rocket
Router1(config-keychain-key)# accept-lifetime 00:00:00 Jan 1 1993 00:15:00 Nov 1 2006
Router1(config-keychain-key)# send-lifetime 00:00:00 Jan 1 1993 00:00:00 Nov 1 2006
Router1(config-keychain-key)# key 2
Router1(config-keychain-key)# key-string martian
Router1(config-keychain-key)# accept-lifetime 23:45:00 Oct 31 2006 infinite
Router1(config-keychain-key)# send-lifetime 00:00:00 Nov 1 2006 infinite
Router1(config-keychain-key)# end
Router1#
7.9. 配置EIGRP路由汇总
提问 通过路由汇总来减少路由表大小和增强稳定性
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Serial0/0.2
Router1(config-subif)# ip summary-address eigrp 55 172.25.0.0 255.255.0.0
Router1(config-subif)# exit
Router1(config)# end
Router1#
缺省会自动路由汇总,使用 no auto-summary关闭(12.2(8)T后自动关闭)
同时可以配置汇总路由的同时,宣告部分子网路由
Router9# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router9(config)# ip prefix-list 10.5.5/24 permit 10.5.5.0/24
Router9(config)# route-map LEAK10-5-5 permit 10
Router9(config-route-map)# match ip address prefix-list 10.5.5/24
Router9(config-route-map)# exit
Router9(config)# interface Serial0/0
Router9(config-if)# ip summary-address eigrp 55 10.5.0.0 255.255.0.0 leak-map LEAK10-5-5
Router9(config-if)# exit
Router9(config)# end
Router9#
注释 路由汇总也是EIGRP的特性之一,可以配置在任意路由器的接口进行汇总,不象OSPF那样只能在ABR汇总。汇总路由的度量值和所汇总路由中的最好的子网路由的度量值一致。Leakmap特性在12.3(14)T后引入,可以在汇总路由的同时发布某些更匹配的路由
7.10. 记录邻居状态变化
提问 记录邻居状态变化
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router eigrp 55
Router1(config-router)# eigrp log-neighbor-changes
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 缺省开启
7.11. 限制EIGRP路由更新占用带宽
提问 限制EIGRP路由更新占用带宽的百分比
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Serial0.1
Router1(config-subif)# ip bandwidth-percent eigrp 55 40
Router1(config-subif)# exit
Router1(config)# end
Router1#
注释 这里的百分比可以大于100%,当我们人为的设定了某端口带宽用于计算度量值时
7.12. EIGRP Stub路由
提问 向边缘网络发布较小的路由表
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router eigrp 55
Router1(config-router)# eigrp stub
Router1(config-router)# exit
Router1(config)# end
Router1#
注释
7.13. 路由标签
提问 通过对特定路由进行标签,防止再分发时出现路由回环
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip route 0.0.0.0 0.0.0.0 172.25.1.1
Router1(config)# access-list 7 permit 0.0.0.0
Router1(config)# route-map TAGGING permit 10
Router1(config-route-map)# match ip address 7
Router1(config-route-map)# set tag 5
Router1(config-route-map)# exit
Router1(config)# router eigrp 55
Router1(config-router)# redistribute static route-map TAGGING
Router1(config-router)# exit
Router1(config)# end
Router1#
注释
7.14. 查看EIGRP状态
提问 查看状态命令
回答
Router1# show ip protocols
Router1# show ip route eigrp
Router1# show ip eigrp neighbors
Router1# show ip eigrp interfaces
Router9# show ip eigrp accounting
Router1# show ip eigrp topology
注释 12.3(14)T引入了 show ip eigrp accounting
Router9# show ip eigrp accounting
IP-EIGRP accounting for AS(55)/ID(172.18.5.9)
Total Prefix Count: 50 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# show ip eigrp topology
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# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router5(config)# router ospf 87
Router5(config-router)# network 0.0.0.0 255.255.255.255 area 0
Router5(config-router)# exit
Router5(config)# end
Router5#
注释 这里OSPF的进程号是本地使用,不需要像EIGRP一样整个网络保持一致。在12.3(11)T以后有一个专门的命令来指定端口加入OSPF 区域,而不需要用network的命令
Router9# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router9(config)# router ospf 87
Router9(config-router)# exit
Router9(config)# interface FastEthernet0/0
Router9(config-if)# ip address 172.18.5.9 255.255.255.0
Router9(config-if)# ip ospf 87 area 10
Router9(config-if)# exit
Router9(config)# end
Router9#
8.2. 路由过滤
提问 进行路由过滤,只允许OSPF宣告特定路由进入路由表
回答
入方向
Router5# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router5(config)# access-list 1 deny 172.20.10.0
Router5(config)# access-list 1 permit any
Router5(config)# router ospf 87
Router5(config-router)# distribute-list 1 in Ethernet0/0
Router5(config-router)# exit
Router5(config)# end
Router5#
注释 根据OSPF的机制,所有区域内的路由器LSA数据库内容必须保持一致,所以正常情况下不能对出方向进行过滤,入方向过滤也是防止其进入路由表,在本地的LSA数据库还是有此路由。当然如果确实需要对出方向进行过滤就必须对出方向所有的LSA进行过滤,这样会导致下游路由器的LSA数据库不完整,一般不推荐使用。
点对多点链路出方向过滤
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router ospf 87
Router1(config-router)# neighbor 192.168.1.3 database-filter all out
Router1(config-router)# exit
Router1(config)# end
Router1#
广播,点到点链路出方向过滤
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Serial0/0
Router1(config-if)# encapsulation frame-relay
Router1(config-if)# exit
Router1(config)# interface Serial0/0.10 multipoint
Router1(config-subif)# ip address 192.168.1.1 255.255.255.0
Router1(config-subif)# ip ospf network broadcast
Router1(config-subif)# ip ospf database-filter all out
Router1(config-subif)# frame-relay map ip 192.168.1.3 101 broadcast
Router1(config-subif)# frame-relay map ip 192.168.1.5 109 broadcast
Router1(config-subif)# exit
Router1(config)# router ospf 1
Router1(config-router)# network 0.0.0.0 255.255.255.255 area 10
Router1(config-router)# exit
Router1(config)# end
Router1#
8.3. 调整OSPF代价值
提问 调整OSPF链路的代价值
回答
全局调整
Router5# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router5(config)# router ospf 87
Router5(config-router)# auto-cost reference-bandwidth 1000
Router5(config-router)# exit
Router5(config)# end
Router5#
接口调整
Router5# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router5(config)# interface Ethernet0
Router5(config-if)# ip ospf cost 31
Router5(config-if)# exit
Router5(config)# end
Router5#
注释
8.4. 宣告缺省路由到OSPF
提问 宣告缺省路由到OSPF网络
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip route 0.0.0.0 0.0.0.0 172.25.1.1
Router1(config)# router ospf 55
Router1(config-router)# default-information originate metric 30 metric-type 1
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 在这里不能使用再发布静态路由得命令来发布缺省路由
8.5. 再发布静态路由到OSPF
提问 宣告一条或者多条静态路由到OSPF
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip route 192.168.10.0 255.255.255.0 172.22.1.4
Router1(config)# ip route 172.24.1.0 255.255.255.0 172.22.1.4
Router1(config)# ip route 10.100.1.0 255.255.255.0 172.22.1.4
Router1(config)# router ospf 55
Router1(config-router)# redistribute static
% Only classful networks will be redistributed
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 根据上面得命令提示可以看到缺省情况下OSPF只再发布有类得路由,所以按照例子上虽然三条静态路由但是只有192.168.10.0/24是有类路由,能够发布出去,其它两个就不行。这时候就需要配置 redistribute static subnets命令来发布子网,当然也可以添加metric等选项
8.6. 再发布外部路由到OSPF
提问 再发布其它路由协议得路由信息到OSPF
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router ospf 55
Router1(config-router)# redistribute eigrp 11 subnets
Router1(config-router)# exit
Router1(config)# end
Router1#
在12.3(2)T以后增加了下面得命令对再发布过来得条目做了限制
Router1(config-router)# redistribute maximum-prefix 1000 80
注释 这里还是要注意subnet得参数。对于最后一个条目限制得命令,第一个1000是路由条目数,第二个80是百分比
8.7. DR选举
提问 对DR选举做人为控制
回答
Router5# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router5(config)# interface Ethernet0
Router5(config-if)# ip ospf priority 10
Router5(config-if)# exit
Router5(config)# end
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# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router5(config)# interface Loopback0
Router5(config-if)# ip address 172.25.25.6 255.255.255.255
Router5(config-if)# exit
Router5(config)# end
Router5#
一种是Router ID命令方式
Router5# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router5(config)# router ospf 87
Router5(config-router)# router-id 172.25.1.7
Router5(config-if)# exit
Router5(config)# end
Router5#
注释 缺省会用最大IP地址作为Router ID。Router id命令后面得IP地址可以随意,不需要必须是存在得地址。另外router id一旦定下来以后,即使重新修改了地址也不能变更,必须通过clear
ip ospf process得方式或者reload得方式来改变
8.9. 启用OSPF鉴权
提问 对邻居关系建立启用鉴权从而保证网络设备得安全性
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Serial0/1
Router1(config-if)# ip ospf message-digest-key 1 md5 oreilly
Router1(config-if)# exit
Router1(config)# router ospf 55
Router1(config-router)# area 2 authentication message-digest
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 注意得是不同厂商得OPSF MD5加密认证互联可能会有问题,因为RFC没有规范。对于新老密码替换得问题,通过配置新旧两个密码得方式来解决
8.10. 选择合适得区域类型
提问 不同得区域有不同得链路状态数据库,通过不同区域得选择来节省路由器资源和更快收敛
回答
Stubby Area
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router ospf 55
Router1(config-router)# area 100 stub
Router1(config-router)# exit
Router1(config)# end
Router1#
Totally Stubby Area
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router ospf 55
Router1(config-router)# area 100 stub no-summary
Router1(config-router)# exit
Router1(config)# end
Router1#
Not So Stubby Areas (NSSA), 同时生成一条缺省路由
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router ospf 55
Router1(config-router)# area 100 nssa default-information-originate
Router1(config-router)# exit
Router1(config)# end
Router1#
Totally Stubby, Not So Stubby Area.
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router ospf 55
Router1(config-router)# area 100 nssa no-summary
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 这些都是在ABR上的配置,对于区域里面其它的路由器就是只有NSSA和stub的配置没有必要配置是否为totally stubby。
8.11. 在拨号接口上配置OSPF
提问 在拨号接口上启用OSPF,但又不想让OSPF的协议数据一直保持拨号链路处于激活状态
回答
下面例子是R4只能拨号到R1
Router4# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router4(config)# username Router1 password 0 cisco
Router4(config)# interface BRI0
Router4(config-if)# ip address 192.168.15.4 255.255.255.0
Router4(config-if)# encapsulation ppp
Router4(config-if)# ip ospf demand-circuit
Router4(config-if)# dialer map ip 192.168.15.1 broadcast 4165550000
Router4(config-if)# dialer-group 1
Router4(config-if)# isdn switch-type basic-ni
Router4(config-if)# isdn spid1 416555001000 4165550010
Router4(config-if)# isdn spid2 416555001100 4165550011
Router4(config-if)# ppp authentication chap
Router4(config-if)# ppp multilink
Router4(config-if)# exit
Router4(config)# dialer-list 1 protocol ip permit
Router4(config)# router ospf 87
Router4(config-router)# network 192.168.15.0 0.0.0.255 area 10
Router4(config-router)# exit
Router4(config)# end
Router4#
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# username Router4 password 0 cisco
Router1(config)# interface BRI0/0
Router1(config-if)# ip address 192.168.15.1 255.255.255.0
Router1(config-if)# encapsulation ppp
Router1(config-if)# dialer-group 1
Router1(config-if)# isdn switch-type basic-ni
Router1(config-if)# isdn spid1 416555000000 4165550000
Router1(config-if)# isdn spid2 416555000100 4165550001
Router1(config-if)# ppp authentication chap
Router1(config-if)# ppp multilink
Router1(config-if)# exit
Router1(config)# dialer-list 1 protocol ip permit
Router1(config)# router ospf 87
Router1(config-router)# network 192.168.15.0 0.0.0.255 area 10
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 使用 ip ospf demand-circuit 的命令可以保持邻居关系一直是FULL状态,而不管链路是否激活
8.12. 路由汇总
提问 减少路由表大小
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router ospf 55
Router1(config-router)# area 100 range 172.20.0.0 255.255.0.0
Router1(config-router)# area 0 range 172.25.0.0 255.255.0.0
Router1(config-router)# area 2 range 10.0.0.0 255.0.0.0
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 OSPF的路由汇总只能配置在ABR上。生成的汇总路由代价值缺省情况下和子网路由中最小的一致,也就是说汇总路由的稳定状态和代价值最小的那个路由条目相关,这也是RFC1583上的定义,在新的RFC中定义了汇总路由代价值和最大的那个路由条目相关,所以一定要确定所有路由器采用相同的计算方法,思科缺省使用RFC1583的方法,禁用可以使用 no compatible rfc1583。在ABR上启用汇总以后会自动生成一条汇总路由的丢弃路由(12.1(6))来避免路由回环
8.13. 在特定端口禁用OSPF
提问 禁止某个端口参与OSPF
回答
Router3# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router3(config)# router ospf 44
Router3(config-router)# network 0.0.0.0 255.255.255.255 area 100
Router3(config-router)# passive-interface Ethernet0
Router3(config-router)# exit
Router3(config)# end
Router3#
注释 OSPF也是通过配置被动接口的方式来不生成邻居关系从而避免参与OSPF。当然也可以通过不在network命令中包含此端口来禁止,下面就是另外一种很好的配置方法,network了所有接口,但是缺省所有端口是被动接口,对于需要的接口再使用no的命令才参与OSPF:
Router3(config)# router ospf 44
Router3(config-router)# network 0.0.0.0 255.255.255.255 area 100
Router3(config-router)# passive-interface default
Router3(config-router)# no passive-interface Ethernet0
Router3(config-router)# exit
Router3(config)# end
Router3#
8.14. 修改接口的网络类型
提问 修改某个端口缺省的网络类型
回答
Router9# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router9(config)# interface FastEthernet0/0
Router9(config-if)# ip ospf network ?
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)# interface Serial0/0
Router9(config-if)# ip address 192.168.10.9 255.255.255.0
Router9(config-if)# encapsulation frame-relay
Router9(config-if)# frame-relay map ip 192.168.10.2 123 broadcast
Router9(config-if)# ip ospf network point-to-multipoint
Router9(config-if)# exit
Router9(config)# router ospf 1
Router9(config-router)# network 192.168.10.0 0.0.0.255 area 0
Router9(config-router)# exit
否则必须配置neighbor
Router9(config)# interface Serial0/0
Router9(config-if)# ip address 192.168.10.9 255.255.255.0
Router9(config-if)# encapsulation frame-relay
Router9(config-if)# frame-relay map ip 192.168.10.2 123
Router9(config-if)# ip ospf network point-to-multipoint non-broadcast
Router9(config-if)# exit
Router9(config)# router ospf 1
Router9(config-router)# network 192.168.10.0 0.0.0.255 area 0
Router9(config-router)# neighbor 192.168.10.2
Router9(config-router)# exit
最后一种point-to-point网络不需要DR,但必须支持组播来建立邻居,否则需要配置neighbor命令。
还有一个特殊的回环地址,缺省情况OSPF会宣告回环地址为/32的网络,但是你可以在回环接口上配置其为 ip ospf network point-to-point,来强制他宣告正确的网络掩码
8.15. 路由标签
提问 对特定的路由打标签避免互相再发布出现路由回环
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router ospf 55
Router1(config-router)# redistribute eigrp 11 metric-type 1 subnets tag 67
Router1(config-router)# exit
Router1(config)# end
Router1#
注释
8.16. 记录OSPF邻居状态变化
提问 记录OSPF邻居状态变化信息
回答
Router2# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)# router ospf 12
Router2(config-router)# log-adjacency-changes
Router2(config-router)# exit
Router2(config)# end
Router2#
注释 12.1后对上面命令增加了detail参数可以看到更多邻居状态变化的信息
8.17. OSPF定时器
提问 调整定时器,加快收敛
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Serial0/1
Router1(config-if)# ip ospf hello-interval 5
Router1(config-if)# ip ospf dead-interval 20
Router1(config-if)# exit
Router1(config)# end
Router1#
注释 要保证和此端口相连的设备采用相同的定时器值,否则邻居关系不能建立
8.18. 减少OSPF协议流量
提问 在稳定的网络要不需要LSA的过多数据包传递
回答
Router9# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router9(config)# interface Serial0/0
Router9(config-if)# ip address 192.168.10.9 255.255.255.0
Router9(config-if)# ip ospf flood-reduction
Router9(config-if)# exit
Router9(config)# end
Router9#
注释 正常情况下OSPF会每隔一小时进行所有的LSA泛洪,在稳定网络里面一般不需要,所以通过这种方式设定LSA的DoNotAge位,避免过多流量
8.19. OSPF虚拟链路
提问 把两个分开的路由器通过虚拟链路的方式相连
回答
Router9# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router9(config)# router ospf 1
Router9(config-router)# area 10 virtual-link 10.54.0.1
Router9(config-router)# exit
Router9(config)# end
Router9#
注释 通过 show ip ospf virtual-links来验证。需要注意的是这个需要两个路由器都进行配置,IP地址是对方的Router ID,要确保这个地址是通的,area后面跟的是穿越的Area
8.20. 使用域名查看OSPF状态
提问 在OSPF的show命令中现实设备域名而不是地址
回答
Router3# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router3(config)# ip ospf name-lookup
Router3(config)# end
Router3#
注释 无
8.21. OSPF排错
提问 对OSPF进行排错
回答
Router3# debug ip ospf adj
OSPF adjacency events debugging is on
Router3#注释 OSPF排错命令很多,这里只提供了对邻居关系的排错命令,因为邻居是OSPF的基础
第九章 BGP
提问 NT-FAMILY: 宋体">在网络中启用OSPF
回答
Router5# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router5(config)# router ospf 87
Router5(config-router)# network 0.0.0.0 255.255.255.255 area 0
Router5(config-router)# exit
Router5(config)# end
Router5#
注释 这里OSPF的进程号是本地使用,不需要像EIGRP一样整个网络保持一致。在12.3(11)T以后有一个专门的命令来指定端口加入OSPF 区域,而不需要用network的命令
Router9# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router9(config)# router ospf 87
Router9(config-router)# exit
Router9(config)# interface FastEthernet0/0
Router9(config-if)# ip address 172.18.5.9 255.255.255.0
Router9(config-if)# ip ospf 87 area 10
Router9(config-if)# exit
Router9(config)# end
Router9#
8.2. 路由过滤
提问 进行路由过滤,只允许OSPF宣告特定路由进入路由表
回答
入方向
Router5# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router5(config)# access-list 1 deny 172.20.10.0
Router5(config)# access-list 1 permit any
Router5(config)# router ospf 87
Router5(config-router)# distribute-list 1 in Ethernet0/0
Router5(config-router)# exit
Router5(config)# end
Router5#
注释 根据OSPF的机制,所有区域内的路由器LSA数据库内容必须保持一致,所以正常情况下不能对出方向进行过滤,入方向过滤也是防止其进入路由表,在本地的LSA数据库还是有此路由。当然如果确实需要对出方向进行过滤就必须对出方向所有的LSA进行过滤,这样会导致下游路由器的LSA数据库不完整,一般不推荐使用。
点对多点链路出方向过滤
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router ospf 87
Router1(config-router)# neighbor 192.168.1.3 database-filter all out
Router1(config-router)# exit
Router1(config)# end
Router1#
广播,点到点链路出方向过滤
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Serial0/0
Router1(config-if)# encapsulation frame-relay
Router1(config-if)# exit
Router1(config)# interface Serial0/0.10 multipoint
Router1(config-subif)# ip address 192.168.1.1 255.255.255.0
Router1(config-subif)# ip ospf network broadcast
Router1(config-subif)# ip ospf database-filter all out
Router1(config-subif)# frame-relay map ip 192.168.1.3 101 broadcast
Router1(config-subif)# frame-relay map ip 192.168.1.5 109 broadcast
Router1(config-subif)# exit
Router1(config)# router ospf 1
Router1(config-router)# network 0.0.0.0 255.255.255.255 area 10
Router1(config-router)# exit
Router1(config)# end
Router1#
8.3. 调整OSPF代价值
提问 调整OSPF链路的代价值
回答
全局调整
Router5# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router5(config)# router ospf 87
Router5(config-router)# auto-cost reference-bandwidth 1000
Router5(config-router)# exit
Router5(config)# end
Router5#
接口调整
Router5# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router5(config)# interface Ethernet0
Router5(config-if)# ip ospf cost 31
Router5(config-if)# exit
Router5(config)# end
Router5#
注释
8.4. 宣告缺省路由到OSPF
提问 宣告缺省路由到OSPF网络
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip route 0.0.0.0 0.0.0.0 172.25.1.1
Router1(config)# router ospf 55
Router1(config-router)# default-information originate metric 30 metric-type 1
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 在这里不能使用再发布静态路由得命令来发布缺省路由
8.5. 再发布静态路由到OSPF
提问 宣告一条或者多条静态路由到OSPF
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip route 192.168.10.0 255.255.255.0 172.22.1.4
Router1(config)# ip route 172.24.1.0 255.255.255.0 172.22.1.4
Router1(config)# ip route 10.100.1.0 255.255.255.0 172.22.1.4
Router1(config)# router ospf 55
Router1(config-router)# redistribute static
% Only classful networks will be redistributed
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 根据上面得命令提示可以看到缺省情况下OSPF只再发布有类得路由,所以按照例子上虽然三条静态路由但是只有192.168.10.0/24是有类路由,能够发布出去,其它两个就不行。这时候就需要配置 redistribute static subnets命令来发布子网,当然也可以添加metric等选项
8.6. 再发布外部路由到OSPF
提问 再发布其它路由协议得路由信息到OSPF
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router ospf 55
Router1(config-router)# redistribute eigrp 11 subnets
Router1(config-router)# exit
Router1(config)# end
Router1#
在12.3(2)T以后增加了下面得命令对再发布过来得条目做了限制
Router1(config-router)# redistribute maximum-prefix 1000 80
注释 这里还是要注意subnet得参数。对于最后一个条目限制得命令,第一个1000是路由条目数,第二个80是百分比
8.7. DR选举
提问 对DR选举做人为控制
回答
Router5# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router5(config)# interface Ethernet0
Router5(config-if)# ip ospf priority 10
Router5(config-if)# exit
Router5(config)# end
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# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router5(config)# interface Loopback0
Router5(config-if)# ip address 172.25.25.6 255.255.255.255
Router5(config-if)# exit
Router5(config)# end
Router5#
一种是Router ID命令方式
Router5# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router5(config)# router ospf 87
Router5(config-router)# router-id 172.25.1.7
Router5(config-if)# exit
Router5(config)# end
Router5#
注释 缺省会用最大IP地址作为Router ID。Router id命令后面得IP地址可以随意,不需要必须是存在得地址。另外router id一旦定下来以后,即使重新修改了地址也不能变更,必须通过clear
ip ospf process得方式或者reload得方式来改变
8.9. 启用OSPF鉴权
提问 对邻居关系建立启用鉴权从而保证网络设备得安全性
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Serial0/1
Router1(config-if)# ip ospf message-digest-key 1 md5 oreilly
Router1(config-if)# exit
Router1(config)# router ospf 55
Router1(config-router)# area 2 authentication message-digest
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 注意得是不同厂商得OPSF MD5加密认证互联可能会有问题,因为RFC没有规范。对于新老密码替换得问题,通过配置新旧两个密码得方式来解决
8.10. 选择合适得区域类型
提问 不同得区域有不同得链路状态数据库,通过不同区域得选择来节省路由器资源和更快收敛
回答
Stubby Area
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router ospf 55
Router1(config-router)# area 100 stub
Router1(config-router)# exit
Router1(config)# end
Router1#
Totally Stubby Area
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router ospf 55
Router1(config-router)# area 100 stub no-summary
Router1(config-router)# exit
Router1(config)# end
Router1#
Not So Stubby Areas (NSSA), 同时生成一条缺省路由
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router ospf 55
Router1(config-router)# area 100 nssa default-information-originate
Router1(config-router)# exit
Router1(config)# end
Router1#
Totally Stubby, Not So Stubby Area.
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router ospf 55
Router1(config-router)# area 100 nssa no-summary
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 这些都是在ABR上的配置,对于区域里面其它的路由器就是只有NSSA和stub的配置没有必要配置是否为totally stubby。
8.11. 在拨号接口上配置OSPF
提问 在拨号接口上启用OSPF,但又不想让OSPF的协议数据一直保持拨号链路处于激活状态
回答
下面例子是R4只能拨号到R1
Router4# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router4(config)# username Router1 password 0 cisco
Router4(config)# interface BRI0
Router4(config-if)# ip address 192.168.15.4 255.255.255.0
Router4(config-if)# encapsulation ppp
Router4(config-if)# ip ospf demand-circuit
Router4(config-if)# dialer map ip 192.168.15.1 broadcast 4165550000
Router4(config-if)# dialer-group 1
Router4(config-if)# isdn switch-type basic-ni
Router4(config-if)# isdn spid1 416555001000 4165550010
Router4(config-if)# isdn spid2 416555001100 4165550011
Router4(config-if)# ppp authentication chap
Router4(config-if)# ppp multilink
Router4(config-if)# exit
Router4(config)# dialer-list 1 protocol ip permit
Router4(config)# router ospf 87
Router4(config-router)# network 192.168.15.0 0.0.0.255 area 10
Router4(config-router)# exit
Router4(config)# end
Router4#
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# username Router4 password 0 cisco
Router1(config)# interface BRI0/0
Router1(config-if)# ip address 192.168.15.1 255.255.255.0
Router1(config-if)# encapsulation ppp
Router1(config-if)# dialer-group 1
Router1(config-if)# isdn switch-type basic-ni
Router1(config-if)# isdn spid1 416555000000 4165550000
Router1(config-if)# isdn spid2 416555000100 4165550001
Router1(config-if)# ppp authentication chap
Router1(config-if)# ppp multilink
Router1(config-if)# exit
Router1(config)# dialer-list 1 protocol ip permit
Router1(config)# router ospf 87
Router1(config-router)# network 192.168.15.0 0.0.0.255 area 10
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 使用 ip ospf demand-circuit 的命令可以保持邻居关系一直是FULL状态,而不管链路是否激活
8.12. 路由汇总
提问 减少路由表大小
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router ospf 55
Router1(config-router)# area 100 range 172.20.0.0 255.255.0.0
Router1(config-router)# area 0 range 172.25.0.0 255.255.0.0
Router1(config-router)# area 2 range 10.0.0.0 255.0.0.0
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 OSPF的路由汇总只能配置在ABR上。生成的汇总路由代价值缺省情况下和子网路由中最小的一致,也就是说汇总路由的稳定状态和代价值最小的那个路由条目相关,这也是RFC1583上的定义,在新的RFC中定义了汇总路由代价值和最大的那个路由条目相关,所以一定要确定所有路由器采用相同的计算方法,思科缺省使用RFC1583的方法,禁用可以使用 no compatible rfc1583。在ABR上启用汇总以后会自动生成一条汇总路由的丢弃路由(12.1(6))来避免路由回环
8.13. 在特定端口禁用OSPF
提问 禁止某个端口参与OSPF
回答
Router3# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router3(config)# router ospf 44
Router3(config-router)# network 0.0.0.0 255.255.255.255 area 100
Router3(config-router)# passive-interface Ethernet0
Router3(config-router)# exit
Router3(config)# end
Router3#
注释 OSPF也是通过配置被动接口的方式来不生成邻居关系从而避免参与OSPF。当然也可以通过不在network命令中包含此端口来禁止,下面就是另外一种很好的配置方法,network了所有接口,但是缺省所有端口是被动接口,对于需要的接口再使用no的命令才参与OSPF:
Router3(config)# router ospf 44
Router3(config-router)# network 0.0.0.0 255.255.255.255 area 100
Router3(config-router)# passive-interface default
Router3(config-router)# no passive-interface Ethernet0
Router3(config-router)# exit
Router3(config)# end
Router3#
8.14. 修改接口的网络类型
提问 修改某个端口缺省的网络类型
回答
Router9# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router9(config)# interface FastEthernet0/0
Router9(config-if)# ip ospf network ?
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)# interface Serial0/0
Router9(config-if)# ip address 192.168.10.9 255.255.255.0
Router9(config-if)# encapsulation frame-relay
Router9(config-if)# frame-relay map ip 192.168.10.2 123 broadcast
Router9(config-if)# ip ospf network point-to-multipoint
Router9(config-if)# exit
Router9(config)# router ospf 1
Router9(config-router)# network 192.168.10.0 0.0.0.255 area 0
Router9(config-router)# exit
否则必须配置neighbor
Router9(config)# interface Serial0/0
Router9(config-if)# ip address 192.168.10.9 255.255.255.0
Router9(config-if)# encapsulation frame-relay
Router9(config-if)# frame-relay map ip 192.168.10.2 123
Router9(config-if)# ip ospf network point-to-multipoint non-broadcast
Router9(config-if)# exit
Router9(config)# router ospf 1
Router9(config-router)# network 192.168.10.0 0.0.0.255 area 0
Router9(config-router)# neighbor 192.168.10.2
Router9(config-router)# exit
最后一种point-to-point网络不需要DR,但必须支持组播来建立邻居,否则需要配置neighbor命令。
还有一个特殊的回环地址,缺省情况OSPF会宣告回环地址为/32的网络,但是你可以在回环接口上配置其为 ip ospf network point-to-point,来强制他宣告正确的网络掩码
8.15. 路由标签
提问 对特定的路由打标签避免互相再发布出现路由回环
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router ospf 55
Router1(config-router)# redistribute eigrp 11 metric-type 1 subnets tag 67
Router1(config-router)# exit
Router1(config)# end
Router1#
注释
8.16. 记录OSPF邻居状态变化
提问 记录OSPF邻居状态变化信息
回答
Router2# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)# router ospf 12
Router2(config-router)# log-adjacency-changes
Router2(config-router)# exit
Router2(config)# end
Router2#
注释 12.1后对上面命令增加了detail参数可以看到更多邻居状态变化的信息
8.17. OSPF定时器
提问 调整定时器,加快收敛
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Serial0/1
Router1(config-if)# ip ospf hello-interval 5
Router1(config-if)# ip ospf dead-interval 20
Router1(config-if)# exit
Router1(config)# end
Router1#
注释 要保证和此端口相连的设备采用相同的定时器值,否则邻居关系不能建立
8.18. 减少OSPF协议流量
提问 在稳定的网络要不需要LSA的过多数据包传递
回答
Router9# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router9(config)# interface Serial0/0
Router9(config-if)# ip address 192.168.10.9 255.255.255.0
Router9(config-if)# ip ospf flood-reduction
Router9(config-if)# exit
Router9(config)# end
Router9#
注释 正常情况下OSPF会每隔一小时进行所有的LSA泛洪,在稳定网络里面一般不需要,所以通过这种方式设定LSA的DoNotAge位,避免过多流量
8.19. OSPF虚拟链路
提问 把两个分开的路由器通过虚拟链路的方式相连
回答
Router9# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router9(config)# router ospf 1
Router9(config-router)# area 10 virtual-link 10.54.0.1
Router9(config-router)# exit
Router9(config)# end
Router9#
注释 通过 show ip ospf virtual-links来验证。需要注意的是这个需要两个路由器都进行配置,IP地址是对方的Router ID,要确保这个地址是通的,area后面跟的是穿越的Area
8.20. 使用域名查看OSPF状态
提问 在OSPF的show命令中现实设备域名而不是地址
回答
Router3# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router3(config)# ip ospf name-lookup
Router3(config)# end
Router3#
注释 无
8.21. OSPF排错
提问 对OSPF进行排错
回答
Router3# debug ip ospf adj
OSPF adjacency events debugging is on
Router3#注释 OSPF排错命令很多,这里只提供了对邻居关系的排错命令,因为邻居是OSPF的基础
第九章 BGP
9.1. Configuring BGP
提问 在网络中启用BGP
回答
Route1在AS 65500中
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Serial0
Router1(config-if)# ip address 192.168.55.6 255.255.255.252
Router1(config-if)# exit
Router1(config)# router bgp 65500
Router1(config-router)# network 192.168.1.0
Router1(config-router)# neighbor 192.168.55.5 remote-as 65501
Router1(config-router)# no synchronization
Router1(config-router)# exit
Router1(config)# end
Router1#
Router2在AS 65501中
Router2# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)# interface Serial0
Router2(config-if)# ip address 192.168.55.5 255.255.255.252
Router2(config-if)# exit
Router2(config)# router bgp 65501
Router2(config-router)# network 172.25.17.0 mask 255.255.255.0
Router2(config-router)# neighbor 192.168.55.6 remote-as 65500
Router2(config-router)# no synchronization
Router2(config-router)# exit
Router2(config)# end
Router2#
注释 在对BGP验证的时候比较有用的命令是
Router1# show ip bgp summary
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也不代表是配置正常,反而是配置出现错误。通过 neighbor 172.20.1.2 update-source Loopback0 命令来限制BGP数据包源地址为回环地址,但要确保此地址的连通性
9.2. 使用eBGP Multihop
提问 配置外部BGP,但是不是直连的路由器
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip route 172.20.1.2 255.255.255.255 192.168.1.5 2
Router1(config)# router bgp 65500
Router1(config-router)# neighbor 172.20.1.2 remote-as 65530
Router1(config-router)# neighbor 172.20.1.2 update-source Loopback0
Router1(config-router)# neighbor 172.20.1.2 ebgp-multihop 3
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 缺省情况下eBGP的路由器必须是直连的,如果不是直连的就需要使用此命令。一种说法是此跳数越小越好,但是RFC 3682说为了安全还是越大越好,思科在12.3(7)T后也采用了这个建议,使用了 neighbor 192.168.55.5 ttl-security hops 1 命令,此命令会丢弃所有TTL小于255-1=254的BGP数据包,这时候如果对端eBGP邻居不支持此特性就必须使用下面的命令来配置 neighbor 192.168.55.6 ebgp-multihop 255
9.3. 调整Next-Hop属性值
提问 在iBGP之间宣告路由时候修改下一跳属性值,使其指向内部AS的地址
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router bgp 65500
Router1(config-router)# neighbor 192.168.1.6 remote-as 65500
Router1(config-router)# neighbor 192.168.1.6 next-hop-self
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 正常情况下iBGP之间下一跳属性值是不会修改的,只会在eBGP时会进行修改,而此地址会指向eBGP邻居的地址,而往往内部AS的路由器没有到达此地址的路由。
9.4. 连接两个ISPs
提问 一台路由器连接两个ISP,保证网络冗余
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Serial0
Router1(config-if)# description connection to ISP #1, ASN 65510
Router1(config-if)# ip address 192.168.1.6 255.255.255.252
Router1(config-if)# exit
Router1(config)# interface Serial1
Router1(config-if)# description connection to ISP #2, ASN 65520
Router1(config-if)# ip address 192.168.2.6 255.255.255.252
Router1(config-if)# exit
Router1(config)# interface Ethernet0
Router1(config-if)# description connection to internal network, ASN 65500
Router1(config-if)# ip address 172.18.5.2 255.255.255.0
Router1(config-if)# exit
Router1(config)# router bgp 65500
Router1(config-router)# network 172.18.5.0 mask 255.255.255.0
Router1(config-router)# neighbor 192.168.1.5 remote-as 65510
Router1(config-router)# neighbor 192.168.2.5 remote-as 65520
Router1(config-router)# no synchronization
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 注意此配置不是最佳配置,可能导致内部AS称为两个ISP的transit AS,同时导致自己路由器接收过多路由
9.5. 两台路由器分别连接两个ISP
提问 内部AS有两台路由器,分别连两个ISP保证网络冗余
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Serial0
Router1(config-if)# description connection to ISP #1, ASN 65510
Router1(config-if)# ip address 192.168.1.6 255.255.255.252
Router1(config-if)# exit
Router1(config)# interface Ethernet0
Router1(config-if)# description connection to internal network, ASN 65500
Router1(config-if)# ip address 172.18.5.2 255.255.255.0
Router1(config-if)# exit
Router1(config)# ip as-path access-list 15 permit ^$
Router1(config)# router bgp 65500
Router1(config-router)# network 172.18.5.0 mask 255.255.255.0
Router1(config-router)# neighbor 172.18.5.3 remote-as 65500
Router1(config-router)# neighbor 172.18.5.3 next-hop-self
Router1(config-router)# neighbor 192.168.1.5 remote-as 65510
Router1(config-router)# neighbor 192.168.1.5 filter-list 15 out
Router1(config-router)# no synchronization
Router1(config-router)# exit
Router1(config)# end
Router1#
Router2# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)# interface Serial1
Router2(config-if)# description connection to ISP #2, ASN 65520
Router2(config-if)# ip address 192.168.2.6 255.255.255.252
Router2(config-if)# exit
Router2(config)# interface Ethernet0
Router2(config-if)# description connection to internal network, ASN 65500
Router2(config-if)# ip address 172.18.5.3 255.255.255.0
Router2(config-if)# exit
Router2(config)# ip as-path access-list 15 permit ^$
Router2(config)# router bgp 65500
Router2(config-router)# network 172.18.5.0 mask 255.255.255.0
Router2(config-router)# neighbor 192.168.2.5 remote-as 65520
Router2(config-router)# neighbor 192.168.2.5 filter-list 15 out
Router2(config-router)# neighbor 172.18.5.2 remote-as 65500
Router2(config-router)# neighbor 172.18.5.2 next-hop-self
Router2(config-router)# no synchronization
Router2(config-router)# exit
Router2(config)# end
Router2#
注释
9.6. 限制向BGP 对端的网络宣告
提问 限制特定的路由公告给对端的AS
回答
有三种方法,第一种是扩展ACL
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# access-list 105 deny ip host 172.25.0.0 host 255.255.0.0
Router1(config)# access-list 105 permit ip any any
Router1(config)# route-map ACL-RT-FILTER permit 10
Router1(config-route-map)# match ip address 105
Router1(config-route-map)# exit
Router1(config)# route-map ACL-RT-FILTER deny 20
Router1(config-route-map)# exit
Router1(config)# router bgp 65500
Router1(config-router)# neighbor 192.168.1.5 remote-as 65510
Router1(config-router)# neighbor 192.168.1.5 route-map ACL-RT-FILTER in
Router1(config-router)# exit
Router1(config)# end
Router1#
第二种是使用 distribute-list:
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# access-list 106 deny ip host 172.25.0.0 host 255.255.0.0
Router1(config)# access-list 106 permit ip any any
Router1(config)# router bgp 65500
Router1(config-router)# neighbor 192.168.1.5 remote-as 65510
Router1(config-router)# neighbor 192.168.1.5 distribute-list 106 in
Router1(config-router)# exit
Router1(config)# end
Router1#
第三种也是最常用的是使用prefix lists
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip prefix-list PREFIX-FILTER seq 10 deny 172.25.0.0/16
Router1(config)# ip prefix-list PREFIX-FILTER seq 20 permit 0.0.0.0/0 le 32
Router1(config)# router bgp 65500
Router1(config-router)# neighbor 192.168.1.5 remote-as 65510
Router1(config-router)# neighbor 192.168.1.5 prefix-list PREFIX-FILTER in
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 前两种使用的扩展ACL比较奇特,第一个host是子网,第二个host是子网掩码,而不是传统目的地址,所以host 172.25.0.0 host 255.255.0.0 就代表网络172.25.0.0/16,如果用正常的ACL就实现不了对无类网络的控制。所以推荐使用第三种方式prefixlist,此列表支持序列号,可以帮助你修改和插入新的条目 ge是大于,le是小于,控制子网掩码permit 0.0.0.0/0 le 32就是变相的permit any
9.7. 调整Local Preference属性值
提问 调整Local Preference属性值来控制路由选择
回答
第一种全局
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router bgp 65500
Router1(config-router)# bgp default local-preference 200
Router1(config-router)# exit
Router1(config)# end
Router1#
第二种使用route map控制
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip prefix-list LOW_LP_PREFIXES seq 10 permit 172.22.0.0/16
Router1(config)# route-map LOCALPREF permit 10
Router1(config-route-map)# match ip address prefix-list LOW_LP_PREFIXES
Router1(config-route-map)# set local-preference 50
Router1(config-route-map)# exit
Router1(config)# route-map LOCALPREF permit 20
Router1(config-route-map)# exit
Router1(config)# router bgp 65500
Router1(config-router)# neighbor 192.168.1.5 remote-as 65510
Router1(config-router)# neighbor 192.168.1.5 route-map LOCALPREF in
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 此local preference属性值只在内部AS有用,选路级别高于AS Path。此值越大优先级越高,缺省值为100。Show ip bgp命令可以看到各个路由的local preference属性值
9.8. 负载均衡
提问 在BGP邻居之间的多链路上负载均衡流量
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router bgp 65500
Router1(config-router)# maximum-paths 4
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 正常情况下BGP选路策略会保证只有一条路径,通过此命令可以增加到4条,不过要确保所有属性值相同,包括MED属性。同时注意此负载均衡只针对出流量而不适合入流量
9.9. 在AS Path属性值中清除私有ASNs
提问 避免内网中的私有ASN传播到互联网
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Serial0
Router1(config-if)# description connection to ISP #1, ASN 1
Router1(config-if)# ip address 192.168.1.6 255.255.255.252
Router1(config-if)# exit
Router1(config)# interface Serial1
Router1(config-if)# description connection to private network, ASN 65500
Router1(config-if)# ip address 192.168.5.1 255.255.255.252
Router1(config-if)# exit
Router1(config)# router bgp 2
Router1(config-router)# neighbor 192.168.5.2 remote-as 65500
Router1(config-router)# neighbor 192.168.1.5 remote-as 1
Router1(config-router)# neighbor 192.168.1.5 remove-private-AS
Router1(config-router)# no synchronization
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 注意此命令是不能删除那些在公共ASN之间的私有ASN
9.10. 基于AS Path属性值的路由过滤
提问 基于接收或者发送路由的AS Path属性值进行路由过滤
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip as-path access-list 15 permit ^65501$
Router1(config)# ip as-path access-list 25 permit _65530_
Router1(config)# ip as-path access-list 25 deny _65531$
Router1(config)# ip as-path access-list 25 permit .*
Router1(config)# router bgp 65500
Router1(config-router)# neighbor 192.168.1.5 remote-as 65510
Router1(config-router)# neighbor 192.168.1.5 filter-list 15 in
Router1(config-router)# neighbor 192.168.2.5 remote-as 65520
Router1(config-router)# neighbor 192.168.2.5 filter-list 25 out
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 正则表达式过滤
9.11. 减少接收到的路由表大小
提问 通过汇总接收到路由的方式来减少所接收的路由表大小
回答
通过缺省路由的方式来过滤到过多的外部路由
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip route 0.0.0.0 0.0.0.0 192.168.101.0 1
Router1(config)# ip route 0.0.0.0 0.0.0.0 192.168.102.0 2
Router1(config)# ip prefix-list CREATE-DEFAULT seq 10 permit 192.168.101.0/24
Router1(config)# ip prefix-list CREATE-DEFAULT seq 20 permit 192.168.102.0/24
Router1(config)# router bgp 65500
Router1(config-router)# neighbor 192.168.1.5 remote-as 65520
Router1(config-router)# neighbor 192.168.1.5 prefix-list CREATE-DEFAULT in
Router1(config-router)# exit
Router1(config)# end
Router1#
注释
9.12. 出方向路由信息汇总
提问 在向下游路由器发送路由表之前进行路由汇总
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router bgp 65500
Router1(config-router)# neighbor 192.168.1.5 remote-as 65520
Router1(config-router)# auto-summary
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 这是缺省行为,但是是有类的汇总,并且只能针对再分发过来的路由,不能适用于network命令配置的路由。思科使用了如下命令对出方向路由进行汇总
Router3(config)# router bgp 65530
Router3(config-router)# aggregate-address 172.20.0.0 255.252.0.0 summary-only
Summaryonly选项只发布汇总路由,去掉后会发送汇总路由和子网路由,而为了避免回环建议添加as-set选项
9.13. 在AS Path属性值中添加更多ASN
提问 通过增加AS Path属性中ASN的数目来影响BGP选路
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip as-path access-list 15 permit ^$
Router1(config)# route-map PREPEND permit 10
Router1(config-route-map)# match as-path 15
Router1(config-route-map)# set as-path prepend 65500 65500 65500
Router1(config-route-map)# exit
Router1(config)# route-map PREPEND permit 20
Router1(config-route-map)# exit
Router1(config)# router bgp 65500
Router1(config-router)# neighbor 192.168.1.5 remote-as 65510
Router1(config-router)# neighbor 192.168.1.5 route-map PREPEND out
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 通过这种方式来影响入流量
9.14. 再发布路由到BGP
提问 IGP和BGP之间的再分发
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router ospf 100
Router1(config-router)# network 172.26.0.0 0.0.255.255 area 0
Router1(config-router)# redistribute bgp 65500 metric 500 subnets
Router1(config-router)# exit
Router1(config)# router bgp 65500
Router1(config-router)# neighbor 192.168.1.5 remote-as 65520
Router1(config-router)# network 172.26.0.0
Router1(config-router)# exit
Router1(config)# end
Router1#
Router2(config)# route-map REDIST permit 5
Router2(config-route-map)# match tag 123
Router2(config-route-map)# exit
Router2(config)# route-map REDIST deny 10
Router2(config-route-map)# match route-type external
Router2(config-route-map)# exit
Router2(config)# route-map REDIST permit 20
Router2(config-route-map)# exit
Router2(config)# router bgp 65520
Router2(config-router)# redistribute eigrp 99 route-map REDIST metric 500
注释
9.15. 使用Peer Groups
提问 使用组的形式来简化对多个相同属性邻居的配置
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router bgp 65500
Router1(config-router)# neighbor EBGP-PEERS peer-group
Router1(config-router)# neighbor EBGP-PEERS prefix-list PRE-RTFILTER in
Router1(config-router)# neighbor EBGP-PEERS filter-list 15 out
Router1(config-router)# neighbor 192.168.1.5 remote-as 65520
Router1(config-router)# neighbor 192.168.1.5 peer-group EBGP-PEERS
Router1(config-router)# neighbor 192.168.1.9 remote-as 65521
Router1(config-router)# neighbor 192.168.1.9 peer-group EBGP-PEERS
Router1(config-router)# neighbor 192.168.1.13 remote-as 65522
Router1(config-router)# neighbor 192.168.1.13 peer-group EBGP-PEERS
Router1(config-router)# neighbor 192.168.1.17 remote-as 65523
Router1(config-router)# neighbor 192.168.1.17 peer-group EBGP-PEERS
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 当然也可以针对iBGP邻居
Router1(config)# router bgp 6550
Router1(config-router)# neighbor IBGP-PEERS peer-group
Router1(config-router)# neighbor IBGP-PEERS update-source Loopback0
Router1(config-router)# neighbor IBGP-PEERS route-reflector-client
Router1(config-router)# neighbor 192.168.101.5 remote-as 65500
Router1(config-router)# neighbor 192.168.101.5 peer-group IBGP-PEERS
Router1(config-router)# neighbor 192.168.101.9 remote-as 65500
Router1(config-router)# neighbor 192.168.101.9 peer-group IBGP-PEERS
9.16. BGP邻居认证
提问 使用认证增加安全性
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router bgp 65500
Router1(config-router)# neighbor 192.168.55.5 remote-as 65501
Router1(config-router)# neighbor 192.168.55.5 password password-1234
Router1(config-router)# exit
Router1(config)# end
Router1#
注释
9.17. 使用BGP Communities
提问 使用BGP Communities来对路由进行控制
回答
首先要通过route map的方式针对邻居设定希望的Communities值
Router3# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router3(config)# ip prefix-list 10.101/16 seq 5 permit 10.101.0.0/16
Router3(config)# ip prefix-list 10.102/16 seq 5 permit 10.102.0.0/16
Router3(config)# ip prefix-list 10.103/16 seq 5 permit 10.103.0.0/16
Router3(config)# ip prefix-list 10.104/16 seq 5 permit 10.104.0.0/16
Router3(config)# ip prefix-list 10.105/16 seq 5 permit 10.105.0.0/16
Router3(config)# route-map APPLY_COMMUNITY_A permit 10
Router3(config-route-map)# match ip address prefix-list 10.101/16
Router3(config-route-map)# set community no-advertise
Router3(config-route-map)# exit
Router3(config)# route-map APPLY_COMMUNITY_A permit 20
Router3(config-route-map)# match ip address prefix-list 10.102/16
Router3(config-route-map)# set community no-export
Router3(config-route-map)# exit
Router3(config)# route-map APPLY_COMMUNITY_A permit 30
Router3(config-route-map)# match ip address prefix-list 10.103/16
Router3(config-route-map)# set community local-AS
Router3(config-route-map)# exit
Router3(config)# route-map APPLY_COMMUNITY_A permit 40
Router3(config-route-map)# match ip address prefix-list 10.104/16
Router3(config-route-map)# set community internet
Router3(config-route-map)# exit
Router3(config)# route-map APPLY_COMMUNITY_A permit 50
Router3(config-route-map)# match ip address prefix-list 10.105/16
Router3(config-route-map)# set community 4293328976
Router3(config-route-map)# exit
Router3(config)# route-map APPLY_COMMUNITY_A permit 100
Router3(config-route-map)# exit
Router3(config)# router bgp 65500
Router3(config-router)# no synchronization
Router3(config-router)# neighbor 172.18.5.3 remote-as 65500
Router3(config-router)# neighbor 172.18.5.3 next-hop-self
Router3(config-router)# neighbor 172.18.5.3 send-community both
Router3(config-router)# neighbor 172.18.5.10 remote-as 65500
Router3(config-router)# neighbor 172.18.5.10 next-hop-self
Router3(config-router)# neighbor 172.18.5.10 send-community both
Router3(config-router)# neighbor 192.168.1.9 remote-as 65520
Router3(config-router)# neighbor 192.168.1.9 send-community both
Router3(config-router)# neighbor 192.168.1.9 route-map APPLY_COMMUNITY_A in
Router3(config-router)# exit
Router3(config)#end
Router3#
在下游路由器上配置命令使其可以分发此Community值
Router2# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)# router bgp 65500
Router2(config-router)# no synchronization
Router2(config-router)# neighbor 172.18.5.4 remote-as 65500
Router2(config-router)# neighbor 172.18.5.4 send-community both
Router2(config-router)# neighbor 172.18.5.10 remote-as 65500
Router2(config-router)# neighbor 172.18.5.10 send-community both
Router2(config-router)# no auto-summary
Router2(config-router)# exit
Router2(config)# end
Router2#
注释 通过定义local-as,no-advertise,no-export,internet四种不同community属性值的方式来限制路由公告的范围
9.18. 使用BGP Route Reflectors
提问 通过路由反射器的方式来简化iBGP邻居关系
回答
只要针对三种不同角色路由器的配置
Router1是Client Peer:
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Ethernet0/0
Router1(config-if)# ip address 172.18.5.2 255.255.255.0
Router1(config-if)# exit
Router1(config)# interface Serial0/0
Router1(config-if)# ip address 192.168.1.6 255.255.255.252
Router1(config-if)# exit
Router1(config)# interface Loopback0
Router1(config-if)# ip address 172.18.6.1 255.255.255.255
Router1(config-if)# exit
Router1(config)# router bgp 65500
Router1(config-router)# no synchronization
Router1(config-router)# neighbor 172.18.6.2 remote-as 65500
Router1(config-router)# neighbor 172.18.6.2 next-hop-self
Router1(config-router)# neighbor 172.18.6.2 update-source Loopback0
Router1(config-router)# neighbor 192.168.1.5 remote-as 65510
Router1(config-router)# exit
Router1(config)# ip route 172.18.6.2 255.255.255.255 172.18.5.3
Router1(config)# ip route 172.18.6.3 255.255.255.255 172.18.5.4
Router1(config)# ip route 172.18.6.4 255.255.255.255 172.18.5.10
Router1(config)# end
Router1#
Router4 是Nonclient Peer:
Router4# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router4(config)# interface Ethernet0
Router4(config-if)# ip address 172.18.5.10 255.255.255.0
Router4(config-if)# exit
Router4(config)# interface Loopback0
Router4(config-if)# ip address 172.18.6.4 255.255.255.255
Router4(config-if)# exit
Router4(config)# router bgp 65500
Router4(config-router)# no synchronization
Router4(config-router)# neighbor 172.18.6.2 remote-as 65500
Router4(config-router)# neighbor 172.18.6.2 update-source Loopback0
Router4(config-router)# exit
Router4(config)# ip route 172.18.6.1 255.255.255.255 172.18.5.2
Router4(config)# ip route 172.18.6.2 255.255.255.255 172.18.5.3
Router4(config)# ip route 172.18.6.3 255.255.255.255 172.18.5.4
Router4(config)# end
Router4#
R2是 Route Reflector
Router2# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)# interface FastEthernet0/0
Router2(config-if)# ip address 172.18.5.3 255.255.255.0
Router2(config-if)# exit
Router2(config)# interface Loopback0
Router2(config-if)# ip address 172.18.6.2 255.255.255.255
Router2(config-if)# exit
Router2(config)# router bgp 65500
Router2(config-router)# no synchronization
Router2(config-router)# neighbor 172.18.6.1 remote-as 65500
Router2(config-router)# neighbor 172.18.6.1 route-reflector-client
Router2(config-router)# neighbor 172.18.6.1 update-source Loopback0
Router2(config-router)# neighbor 172.18.6.3 remote-as 65500
Router2(config-router)# neighbor 172.18.6.3 route-reflector-client
Router2(config-router)# neighbor 172.18.6.3 update-source Loopback0
Router2(config-router)# neighbor 172.18.6.4 remote-as 65500
Router2(config-router)# neighbor 172.18.6.4 update-source Loopback0
Router2(config-router)# no auto-summary
Router2(config-router)# exit
Router2(config)# ip route 172.18.6.1 255.255.255.255 172.18.5.2
Router2(config)# ip route 172.18.6.3 255.255.255.255 172.18.5.4
Router2(config)# ip route 172.18.6.4 255.255.255.255 172.18.5.10
Router2(config)# end
Router2#
注释 路由反射器是解决要求iBGP全互联的问题。不过为了保证冗余性还是要配置多个路由反射器,使用 bgp cluster-id 1234命令来定义cluster
9.19. 汇总实验
提问 结合前面的方法,重新配置一台路由器两个冗余链路的情况
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Serial0
Router1(config-if)# description connection to ISP #1, ASN 65510
Router1(config-if)# ip address 192.168.1.6 255.255.255.252
Router1(config-if)# exit
Router1(config)# interface Serial1
Router1(config-if)# description connection to ISP #2, ASN 65520
Router1(config-if)# ip address 192.168.2.6 255.255.255.252
Router1(config-if)# exit
Router1(config)# interface Ethernet0
Router1(config-if)# description connection to internal network, ASN 65500
Router1(config-if)# ip address 172.18.5.2 255.255.255.0
Router1(config-if)# exit
Router1(config)# ip as-path access-list 15 permit ^$
Router1(config)# ip route 0.0.0.0 0.0.0.0 192.168.101.0 1
Router1(config)# ip route 0.0.0.0 0.0.0.0 192.168.102.0 2
Router1(config)# ip prefix-list CREATE-DEFAULT seq 10 permit 192.168.101.0/24
Router1(config)# ip prefix-list CREATE-DEFAULT seq 20 permit 192.168.102.0/24
Router1(config)# ip prefix-list BLOCK-DEFAULT seq 10 permit 0.0.0.0/0 ge 1
Router1(config)# route-map PREPEND permit 10
Router1(config-route-map)# set as-path prepend 65500 65500
Router1(config-route-map)# exit
Router1(config)# route-map LOCALPREF permit 10
Router1(config-route-map)# set local-preference 75
Router1(config-route-map)# exit
Router1(config)# route-map DEFAULT-ROUTE permit 10
Router1(config-route-map)# match ip address prefix-list CREATE-DEFAULT
Router1(config-route-map)# exit
Router1(config)# router bgp 65500
Router1(config-router)# network 172.18.5.0 mask 255.255.255.0
Router1(config-router)# neighbor 172.18.5.3 remote-as 65500
Router1(config-router)# neighbor 172.18.5.3 password password_number1
Router1(config-router)# neighbor 172.18.5.3 default-origniate route-map DEFAULT-ROUTE
Router1(config-router)# neighbor 192.168.1.5 remote-as 65510
Router1(config-router)# neighbor 192.168.1.5 password password_number2
Router1(config-router)# neighbor 192.168.1.5 filter-list 15 out
Router1(config-router)# neighbor 192.168.1.5 prefix-list CREATE-DEFAULT in
Router1(config-router)# neighbor 192.168.1.5 prefix-list BLOCK-DEFAULT out
Router1(config-router)# neighbor 192.168.2.5 remote-as 65520
Router1(config-router)# neighbor 192.168.2.5 password password_number3
Router1(config-router)# neighbor 192.168.2.5 filter-list 15 out
Router1(config-router)# neighbor 192.168.2.5 prefix-list CREATE-DEFAULT in
Router1(config-router)# neighbor 192.168.2.5 prefix-list BLOCK-DEFAULT out
Router1(config-router)# neighbor 192.168.2.5 route-map PREPEND out
Router1(config-router)# neighbor 192.168.2.5 route-map LOCALPREF in
Router1(config-router)# no synchronization
Router1(config-router)# exit
Router1(config)# end
Router1#
提问 在网络中启用BGP
回答
Route1在AS 65500中
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Serial0
Router1(config-if)# ip address 192.168.55.6 255.255.255.252
Router1(config-if)# exit
Router1(config)# router bgp 65500
Router1(config-router)# network 192.168.1.0
Router1(config-router)# neighbor 192.168.55.5 remote-as 65501
Router1(config-router)# no synchronization
Router1(config-router)# exit
Router1(config)# end
Router1#
Router2在AS 65501中
Router2# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)# interface Serial0
Router2(config-if)# ip address 192.168.55.5 255.255.255.252
Router2(config-if)# exit
Router2(config)# router bgp 65501
Router2(config-router)# network 172.25.17.0 mask 255.255.255.0
Router2(config-router)# neighbor 192.168.55.6 remote-as 65500
Router2(config-router)# no synchronization
Router2(config-router)# exit
Router2(config)# end
Router2#
注释 在对BGP验证的时候比较有用的命令是
Router1# show ip bgp summary
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也不代表是配置正常,反而是配置出现错误。通过 neighbor 172.20.1.2 update-source Loopback0 命令来限制BGP数据包源地址为回环地址,但要确保此地址的连通性
9.2. 使用eBGP Multihop
提问 配置外部BGP,但是不是直连的路由器
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip route 172.20.1.2 255.255.255.255 192.168.1.5 2
Router1(config)# router bgp 65500
Router1(config-router)# neighbor 172.20.1.2 remote-as 65530
Router1(config-router)# neighbor 172.20.1.2 update-source Loopback0
Router1(config-router)# neighbor 172.20.1.2 ebgp-multihop 3
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 缺省情况下eBGP的路由器必须是直连的,如果不是直连的就需要使用此命令。一种说法是此跳数越小越好,但是RFC 3682说为了安全还是越大越好,思科在12.3(7)T后也采用了这个建议,使用了 neighbor 192.168.55.5 ttl-security hops 1 命令,此命令会丢弃所有TTL小于255-1=254的BGP数据包,这时候如果对端eBGP邻居不支持此特性就必须使用下面的命令来配置 neighbor 192.168.55.6 ebgp-multihop 255
9.3. 调整Next-Hop属性值
提问 在iBGP之间宣告路由时候修改下一跳属性值,使其指向内部AS的地址
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router bgp 65500
Router1(config-router)# neighbor 192.168.1.6 remote-as 65500
Router1(config-router)# neighbor 192.168.1.6 next-hop-self
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 正常情况下iBGP之间下一跳属性值是不会修改的,只会在eBGP时会进行修改,而此地址会指向eBGP邻居的地址,而往往内部AS的路由器没有到达此地址的路由。
9.4. 连接两个ISPs
提问 一台路由器连接两个ISP,保证网络冗余
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Serial0
Router1(config-if)# description connection to ISP #1, ASN 65510
Router1(config-if)# ip address 192.168.1.6 255.255.255.252
Router1(config-if)# exit
Router1(config)# interface Serial1
Router1(config-if)# description connection to ISP #2, ASN 65520
Router1(config-if)# ip address 192.168.2.6 255.255.255.252
Router1(config-if)# exit
Router1(config)# interface Ethernet0
Router1(config-if)# description connection to internal network, ASN 65500
Router1(config-if)# ip address 172.18.5.2 255.255.255.0
Router1(config-if)# exit
Router1(config)# router bgp 65500
Router1(config-router)# network 172.18.5.0 mask 255.255.255.0
Router1(config-router)# neighbor 192.168.1.5 remote-as 65510
Router1(config-router)# neighbor 192.168.2.5 remote-as 65520
Router1(config-router)# no synchronization
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 注意此配置不是最佳配置,可能导致内部AS称为两个ISP的transit AS,同时导致自己路由器接收过多路由
9.5. 两台路由器分别连接两个ISP
提问 内部AS有两台路由器,分别连两个ISP保证网络冗余
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Serial0
Router1(config-if)# description connection to ISP #1, ASN 65510
Router1(config-if)# ip address 192.168.1.6 255.255.255.252
Router1(config-if)# exit
Router1(config)# interface Ethernet0
Router1(config-if)# description connection to internal network, ASN 65500
Router1(config-if)# ip address 172.18.5.2 255.255.255.0
Router1(config-if)# exit
Router1(config)# ip as-path access-list 15 permit ^$
Router1(config)# router bgp 65500
Router1(config-router)# network 172.18.5.0 mask 255.255.255.0
Router1(config-router)# neighbor 172.18.5.3 remote-as 65500
Router1(config-router)# neighbor 172.18.5.3 next-hop-self
Router1(config-router)# neighbor 192.168.1.5 remote-as 65510
Router1(config-router)# neighbor 192.168.1.5 filter-list 15 out
Router1(config-router)# no synchronization
Router1(config-router)# exit
Router1(config)# end
Router1#
Router2# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)# interface Serial1
Router2(config-if)# description connection to ISP #2, ASN 65520
Router2(config-if)# ip address 192.168.2.6 255.255.255.252
Router2(config-if)# exit
Router2(config)# interface Ethernet0
Router2(config-if)# description connection to internal network, ASN 65500
Router2(config-if)# ip address 172.18.5.3 255.255.255.0
Router2(config-if)# exit
Router2(config)# ip as-path access-list 15 permit ^$
Router2(config)# router bgp 65500
Router2(config-router)# network 172.18.5.0 mask 255.255.255.0
Router2(config-router)# neighbor 192.168.2.5 remote-as 65520
Router2(config-router)# neighbor 192.168.2.5 filter-list 15 out
Router2(config-router)# neighbor 172.18.5.2 remote-as 65500
Router2(config-router)# neighbor 172.18.5.2 next-hop-self
Router2(config-router)# no synchronization
Router2(config-router)# exit
Router2(config)# end
Router2#
注释
9.6. 限制向BGP 对端的网络宣告
提问 限制特定的路由公告给对端的AS
回答
有三种方法,第一种是扩展ACL
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# access-list 105 deny ip host 172.25.0.0 host 255.255.0.0
Router1(config)# access-list 105 permit ip any any
Router1(config)# route-map ACL-RT-FILTER permit 10
Router1(config-route-map)# match ip address 105
Router1(config-route-map)# exit
Router1(config)# route-map ACL-RT-FILTER deny 20
Router1(config-route-map)# exit
Router1(config)# router bgp 65500
Router1(config-router)# neighbor 192.168.1.5 remote-as 65510
Router1(config-router)# neighbor 192.168.1.5 route-map ACL-RT-FILTER in
Router1(config-router)# exit
Router1(config)# end
Router1#
第二种是使用 distribute-list:
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# access-list 106 deny ip host 172.25.0.0 host 255.255.0.0
Router1(config)# access-list 106 permit ip any any
Router1(config)# router bgp 65500
Router1(config-router)# neighbor 192.168.1.5 remote-as 65510
Router1(config-router)# neighbor 192.168.1.5 distribute-list 106 in
Router1(config-router)# exit
Router1(config)# end
Router1#
第三种也是最常用的是使用prefix lists
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip prefix-list PREFIX-FILTER seq 10 deny 172.25.0.0/16
Router1(config)# ip prefix-list PREFIX-FILTER seq 20 permit 0.0.0.0/0 le 32
Router1(config)# router bgp 65500
Router1(config-router)# neighbor 192.168.1.5 remote-as 65510
Router1(config-router)# neighbor 192.168.1.5 prefix-list PREFIX-FILTER in
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 前两种使用的扩展ACL比较奇特,第一个host是子网,第二个host是子网掩码,而不是传统目的地址,所以host 172.25.0.0 host 255.255.0.0 就代表网络172.25.0.0/16,如果用正常的ACL就实现不了对无类网络的控制。所以推荐使用第三种方式prefixlist,此列表支持序列号,可以帮助你修改和插入新的条目 ge是大于,le是小于,控制子网掩码permit 0.0.0.0/0 le 32就是变相的permit any
9.7. 调整Local Preference属性值
提问 调整Local Preference属性值来控制路由选择
回答
第一种全局
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router bgp 65500
Router1(config-router)# bgp default local-preference 200
Router1(config-router)# exit
Router1(config)# end
Router1#
第二种使用route map控制
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip prefix-list LOW_LP_PREFIXES seq 10 permit 172.22.0.0/16
Router1(config)# route-map LOCALPREF permit 10
Router1(config-route-map)# match ip address prefix-list LOW_LP_PREFIXES
Router1(config-route-map)# set local-preference 50
Router1(config-route-map)# exit
Router1(config)# route-map LOCALPREF permit 20
Router1(config-route-map)# exit
Router1(config)# router bgp 65500
Router1(config-router)# neighbor 192.168.1.5 remote-as 65510
Router1(config-router)# neighbor 192.168.1.5 route-map LOCALPREF in
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 此local preference属性值只在内部AS有用,选路级别高于AS Path。此值越大优先级越高,缺省值为100。Show ip bgp命令可以看到各个路由的local preference属性值
9.8. 负载均衡
提问 在BGP邻居之间的多链路上负载均衡流量
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router bgp 65500
Router1(config-router)# maximum-paths 4
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 正常情况下BGP选路策略会保证只有一条路径,通过此命令可以增加到4条,不过要确保所有属性值相同,包括MED属性。同时注意此负载均衡只针对出流量而不适合入流量
9.9. 在AS Path属性值中清除私有ASNs
提问 避免内网中的私有ASN传播到互联网
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Serial0
Router1(config-if)# description connection to ISP #1, ASN 1
Router1(config-if)# ip address 192.168.1.6 255.255.255.252
Router1(config-if)# exit
Router1(config)# interface Serial1
Router1(config-if)# description connection to private network, ASN 65500
Router1(config-if)# ip address 192.168.5.1 255.255.255.252
Router1(config-if)# exit
Router1(config)# router bgp 2
Router1(config-router)# neighbor 192.168.5.2 remote-as 65500
Router1(config-router)# neighbor 192.168.1.5 remote-as 1
Router1(config-router)# neighbor 192.168.1.5 remove-private-AS
Router1(config-router)# no synchronization
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 注意此命令是不能删除那些在公共ASN之间的私有ASN
9.10. 基于AS Path属性值的路由过滤
提问 基于接收或者发送路由的AS Path属性值进行路由过滤
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip as-path access-list 15 permit ^65501$
Router1(config)# ip as-path access-list 25 permit _65530_
Router1(config)# ip as-path access-list 25 deny _65531$
Router1(config)# ip as-path access-list 25 permit .*
Router1(config)# router bgp 65500
Router1(config-router)# neighbor 192.168.1.5 remote-as 65510
Router1(config-router)# neighbor 192.168.1.5 filter-list 15 in
Router1(config-router)# neighbor 192.168.2.5 remote-as 65520
Router1(config-router)# neighbor 192.168.2.5 filter-list 25 out
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 正则表达式过滤
9.11. 减少接收到的路由表大小
提问 通过汇总接收到路由的方式来减少所接收的路由表大小
回答
通过缺省路由的方式来过滤到过多的外部路由
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip route 0.0.0.0 0.0.0.0 192.168.101.0 1
Router1(config)# ip route 0.0.0.0 0.0.0.0 192.168.102.0 2
Router1(config)# ip prefix-list CREATE-DEFAULT seq 10 permit 192.168.101.0/24
Router1(config)# ip prefix-list CREATE-DEFAULT seq 20 permit 192.168.102.0/24
Router1(config)# router bgp 65500
Router1(config-router)# neighbor 192.168.1.5 remote-as 65520
Router1(config-router)# neighbor 192.168.1.5 prefix-list CREATE-DEFAULT in
Router1(config-router)# exit
Router1(config)# end
Router1#
注释
9.12. 出方向路由信息汇总
提问 在向下游路由器发送路由表之前进行路由汇总
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router bgp 65500
Router1(config-router)# neighbor 192.168.1.5 remote-as 65520
Router1(config-router)# auto-summary
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 这是缺省行为,但是是有类的汇总,并且只能针对再分发过来的路由,不能适用于network命令配置的路由。思科使用了如下命令对出方向路由进行汇总
Router3(config)# router bgp 65530
Router3(config-router)# aggregate-address 172.20.0.0 255.252.0.0 summary-only
Summaryonly选项只发布汇总路由,去掉后会发送汇总路由和子网路由,而为了避免回环建议添加as-set选项
9.13. 在AS Path属性值中添加更多ASN
提问 通过增加AS Path属性中ASN的数目来影响BGP选路
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# ip as-path access-list 15 permit ^$
Router1(config)# route-map PREPEND permit 10
Router1(config-route-map)# match as-path 15
Router1(config-route-map)# set as-path prepend 65500 65500 65500
Router1(config-route-map)# exit
Router1(config)# route-map PREPEND permit 20
Router1(config-route-map)# exit
Router1(config)# router bgp 65500
Router1(config-router)# neighbor 192.168.1.5 remote-as 65510
Router1(config-router)# neighbor 192.168.1.5 route-map PREPEND out
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 通过这种方式来影响入流量
9.14. 再发布路由到BGP
提问 IGP和BGP之间的再分发
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router ospf 100
Router1(config-router)# network 172.26.0.0 0.0.255.255 area 0
Router1(config-router)# redistribute bgp 65500 metric 500 subnets
Router1(config-router)# exit
Router1(config)# router bgp 65500
Router1(config-router)# neighbor 192.168.1.5 remote-as 65520
Router1(config-router)# network 172.26.0.0
Router1(config-router)# exit
Router1(config)# end
Router1#
Router2(config)# route-map REDIST permit 5
Router2(config-route-map)# match tag 123
Router2(config-route-map)# exit
Router2(config)# route-map REDIST deny 10
Router2(config-route-map)# match route-type external
Router2(config-route-map)# exit
Router2(config)# route-map REDIST permit 20
Router2(config-route-map)# exit
Router2(config)# router bgp 65520
Router2(config-router)# redistribute eigrp 99 route-map REDIST metric 500
注释
9.15. 使用Peer Groups
提问 使用组的形式来简化对多个相同属性邻居的配置
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router bgp 65500
Router1(config-router)# neighbor EBGP-PEERS peer-group
Router1(config-router)# neighbor EBGP-PEERS prefix-list PRE-RTFILTER in
Router1(config-router)# neighbor EBGP-PEERS filter-list 15 out
Router1(config-router)# neighbor 192.168.1.5 remote-as 65520
Router1(config-router)# neighbor 192.168.1.5 peer-group EBGP-PEERS
Router1(config-router)# neighbor 192.168.1.9 remote-as 65521
Router1(config-router)# neighbor 192.168.1.9 peer-group EBGP-PEERS
Router1(config-router)# neighbor 192.168.1.13 remote-as 65522
Router1(config-router)# neighbor 192.168.1.13 peer-group EBGP-PEERS
Router1(config-router)# neighbor 192.168.1.17 remote-as 65523
Router1(config-router)# neighbor 192.168.1.17 peer-group EBGP-PEERS
Router1(config-router)# exit
Router1(config)# end
Router1#
注释 当然也可以针对iBGP邻居
Router1(config)# router bgp 6550
Router1(config-router)# neighbor IBGP-PEERS peer-group
Router1(config-router)# neighbor IBGP-PEERS update-source Loopback0
Router1(config-router)# neighbor IBGP-PEERS route-reflector-client
Router1(config-router)# neighbor 192.168.101.5 remote-as 65500
Router1(config-router)# neighbor 192.168.101.5 peer-group IBGP-PEERS
Router1(config-router)# neighbor 192.168.101.9 remote-as 65500
Router1(config-router)# neighbor 192.168.101.9 peer-group IBGP-PEERS
9.16. BGP邻居认证
提问 使用认证增加安全性
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# router bgp 65500
Router1(config-router)# neighbor 192.168.55.5 remote-as 65501
Router1(config-router)# neighbor 192.168.55.5 password password-1234
Router1(config-router)# exit
Router1(config)# end
Router1#
注释
9.17. 使用BGP Communities
提问 使用BGP Communities来对路由进行控制
回答
首先要通过route map的方式针对邻居设定希望的Communities值
Router3# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router3(config)# ip prefix-list 10.101/16 seq 5 permit 10.101.0.0/16
Router3(config)# ip prefix-list 10.102/16 seq 5 permit 10.102.0.0/16
Router3(config)# ip prefix-list 10.103/16 seq 5 permit 10.103.0.0/16
Router3(config)# ip prefix-list 10.104/16 seq 5 permit 10.104.0.0/16
Router3(config)# ip prefix-list 10.105/16 seq 5 permit 10.105.0.0/16
Router3(config)# route-map APPLY_COMMUNITY_A permit 10
Router3(config-route-map)# match ip address prefix-list 10.101/16
Router3(config-route-map)# set community no-advertise
Router3(config-route-map)# exit
Router3(config)# route-map APPLY_COMMUNITY_A permit 20
Router3(config-route-map)# match ip address prefix-list 10.102/16
Router3(config-route-map)# set community no-export
Router3(config-route-map)# exit
Router3(config)# route-map APPLY_COMMUNITY_A permit 30
Router3(config-route-map)# match ip address prefix-list 10.103/16
Router3(config-route-map)# set community local-AS
Router3(config-route-map)# exit
Router3(config)# route-map APPLY_COMMUNITY_A permit 40
Router3(config-route-map)# match ip address prefix-list 10.104/16
Router3(config-route-map)# set community internet
Router3(config-route-map)# exit
Router3(config)# route-map APPLY_COMMUNITY_A permit 50
Router3(config-route-map)# match ip address prefix-list 10.105/16
Router3(config-route-map)# set community 4293328976
Router3(config-route-map)# exit
Router3(config)# route-map APPLY_COMMUNITY_A permit 100
Router3(config-route-map)# exit
Router3(config)# router bgp 65500
Router3(config-router)# no synchronization
Router3(config-router)# neighbor 172.18.5.3 remote-as 65500
Router3(config-router)# neighbor 172.18.5.3 next-hop-self
Router3(config-router)# neighbor 172.18.5.3 send-community both
Router3(config-router)# neighbor 172.18.5.10 remote-as 65500
Router3(config-router)# neighbor 172.18.5.10 next-hop-self
Router3(config-router)# neighbor 172.18.5.10 send-community both
Router3(config-router)# neighbor 192.168.1.9 remote-as 65520
Router3(config-router)# neighbor 192.168.1.9 send-community both
Router3(config-router)# neighbor 192.168.1.9 route-map APPLY_COMMUNITY_A in
Router3(config-router)# exit
Router3(config)#end
Router3#
在下游路由器上配置命令使其可以分发此Community值
Router2# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)# router bgp 65500
Router2(config-router)# no synchronization
Router2(config-router)# neighbor 172.18.5.4 remote-as 65500
Router2(config-router)# neighbor 172.18.5.4 send-community both
Router2(config-router)# neighbor 172.18.5.10 remote-as 65500
Router2(config-router)# neighbor 172.18.5.10 send-community both
Router2(config-router)# no auto-summary
Router2(config-router)# exit
Router2(config)# end
Router2#
注释 通过定义local-as,no-advertise,no-export,internet四种不同community属性值的方式来限制路由公告的范围
9.18. 使用BGP Route Reflectors
提问 通过路由反射器的方式来简化iBGP邻居关系
回答
只要针对三种不同角色路由器的配置
Router1是Client Peer:
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Ethernet0/0
Router1(config-if)# ip address 172.18.5.2 255.255.255.0
Router1(config-if)# exit
Router1(config)# interface Serial0/0
Router1(config-if)# ip address 192.168.1.6 255.255.255.252
Router1(config-if)# exit
Router1(config)# interface Loopback0
Router1(config-if)# ip address 172.18.6.1 255.255.255.255
Router1(config-if)# exit
Router1(config)# router bgp 65500
Router1(config-router)# no synchronization
Router1(config-router)# neighbor 172.18.6.2 remote-as 65500
Router1(config-router)# neighbor 172.18.6.2 next-hop-self
Router1(config-router)# neighbor 172.18.6.2 update-source Loopback0
Router1(config-router)# neighbor 192.168.1.5 remote-as 65510
Router1(config-router)# exit
Router1(config)# ip route 172.18.6.2 255.255.255.255 172.18.5.3
Router1(config)# ip route 172.18.6.3 255.255.255.255 172.18.5.4
Router1(config)# ip route 172.18.6.4 255.255.255.255 172.18.5.10
Router1(config)# end
Router1#
Router4 是Nonclient Peer:
Router4# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router4(config)# interface Ethernet0
Router4(config-if)# ip address 172.18.5.10 255.255.255.0
Router4(config-if)# exit
Router4(config)# interface Loopback0
Router4(config-if)# ip address 172.18.6.4 255.255.255.255
Router4(config-if)# exit
Router4(config)# router bgp 65500
Router4(config-router)# no synchronization
Router4(config-router)# neighbor 172.18.6.2 remote-as 65500
Router4(config-router)# neighbor 172.18.6.2 update-source Loopback0
Router4(config-router)# exit
Router4(config)# ip route 172.18.6.1 255.255.255.255 172.18.5.2
Router4(config)# ip route 172.18.6.2 255.255.255.255 172.18.5.3
Router4(config)# ip route 172.18.6.3 255.255.255.255 172.18.5.4
Router4(config)# end
Router4#
R2是 Route Reflector
Router2# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)# interface FastEthernet0/0
Router2(config-if)# ip address 172.18.5.3 255.255.255.0
Router2(config-if)# exit
Router2(config)# interface Loopback0
Router2(config-if)# ip address 172.18.6.2 255.255.255.255
Router2(config-if)# exit
Router2(config)# router bgp 65500
Router2(config-router)# no synchronization
Router2(config-router)# neighbor 172.18.6.1 remote-as 65500
Router2(config-router)# neighbor 172.18.6.1 route-reflector-client
Router2(config-router)# neighbor 172.18.6.1 update-source Loopback0
Router2(config-router)# neighbor 172.18.6.3 remote-as 65500
Router2(config-router)# neighbor 172.18.6.3 route-reflector-client
Router2(config-router)# neighbor 172.18.6.3 update-source Loopback0
Router2(config-router)# neighbor 172.18.6.4 remote-as 65500
Router2(config-router)# neighbor 172.18.6.4 update-source Loopback0
Router2(config-router)# no auto-summary
Router2(config-router)# exit
Router2(config)# ip route 172.18.6.1 255.255.255.255 172.18.5.2
Router2(config)# ip route 172.18.6.3 255.255.255.255 172.18.5.4
Router2(config)# ip route 172.18.6.4 255.255.255.255 172.18.5.10
Router2(config)# end
Router2#
注释 路由反射器是解决要求iBGP全互联的问题。不过为了保证冗余性还是要配置多个路由反射器,使用 bgp cluster-id 1234命令来定义cluster
9.19. 汇总实验
提问 结合前面的方法,重新配置一台路由器两个冗余链路的情况
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Serial0
Router1(config-if)# description connection to ISP #1, ASN 65510
Router1(config-if)# ip address 192.168.1.6 255.255.255.252
Router1(config-if)# exit
Router1(config)# interface Serial1
Router1(config-if)# description connection to ISP #2, ASN 65520
Router1(config-if)# ip address 192.168.2.6 255.255.255.252
Router1(config-if)# exit
Router1(config)# interface Ethernet0
Router1(config-if)# description connection to internal network, ASN 65500
Router1(config-if)# ip address 172.18.5.2 255.255.255.0
Router1(config-if)# exit
Router1(config)# ip as-path access-list 15 permit ^$
Router1(config)# ip route 0.0.0.0 0.0.0.0 192.168.101.0 1
Router1(config)# ip route 0.0.0.0 0.0.0.0 192.168.102.0 2
Router1(config)# ip prefix-list CREATE-DEFAULT seq 10 permit 192.168.101.0/24
Router1(config)# ip prefix-list CREATE-DEFAULT seq 20 permit 192.168.102.0/24
Router1(config)# ip prefix-list BLOCK-DEFAULT seq 10 permit 0.0.0.0/0 ge 1
Router1(config)# route-map PREPEND permit 10
Router1(config-route-map)# set as-path prepend 65500 65500
Router1(config-route-map)# exit
Router1(config)# route-map LOCALPREF permit 10
Router1(config-route-map)# set local-preference 75
Router1(config-route-map)# exit
Router1(config)# route-map DEFAULT-ROUTE permit 10
Router1(config-route-map)# match ip address prefix-list CREATE-DEFAULT
Router1(config-route-map)# exit
Router1(config)# router bgp 65500
Router1(config-router)# network 172.18.5.0 mask 255.255.255.0
Router1(config-router)# neighbor 172.18.5.3 remote-as 65500
Router1(config-router)# neighbor 172.18.5.3 password password_number1
Router1(config-router)# neighbor 172.18.5.3 default-origniate route-map DEFAULT-ROUTE
Router1(config-router)# neighbor 192.168.1.5 remote-as 65510
Router1(config-router)# neighbor 192.168.1.5 password password_number2
Router1(config-router)# neighbor 192.168.1.5 filter-list 15 out
Router1(config-router)# neighbor 192.168.1.5 prefix-list CREATE-DEFAULT in
Router1(config-router)# neighbor 192.168.1.5 prefix-list BLOCK-DEFAULT out
Router1(config-router)# neighbor 192.168.2.5 remote-as 65520
Router1(config-router)# neighbor 192.168.2.5 password password_number3
Router1(config-router)# neighbor 192.168.2.5 filter-list 15 out
Router1(config-router)# neighbor 192.168.2.5 prefix-list CREATE-DEFAULT in
Router1(config-router)# neighbor 192.168.2.5 prefix-list BLOCK-DEFAULT out
Router1(config-router)# neighbor 192.168.2.5 route-map PREPEND out
Router1(config-router)# neighbor 192.168.2.5 route-map LOCALPREF in
Router1(config-router)# no synchronization
Router1(config-router)# exit
Router1(config)# end
Router1#
第十章 帧中继
10.1. 使用点对点子接口的方式配置帧中继
提问 ">每个PVC归属特定子接口的方式来配置帧中继
回答
中心配置
Central# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Central(config)# interface Serial0
Central(config-if)# description Frame-Relay host circuit
Central(config-if)# no ip address
Central(config-if)# encapsulation frame-relay
Central(config-if)# exit
Central(config)# interface Serial0.1 point-to-point
Central(config-subif)# description PVC to first branch - DLCI 101
Central(config-subif)# ip address 192.168.1.5 255.255.255.252
Central(config-subif)# frame-relay interface-dlci 101
Central(config-fr-dlci)# exit
Central(config-subif)# exit
Central(config)# interface Serial0.2 point-to-point
Central(config-subif)# description PVC to second branch - DLCI 102
Central(config-subif)# ip address 192.168.1.9 255.255.255.252
Central(config-subif)# frame-relay interface-dlci 102
Central(config-fr-dlci)# exit
Central(config-subif)# exit
Central(config)# end
Central#
边缘配置
Branch1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Branch1(config)# interface Serial0
Branch1(config-if)# description Frame-Relay circuit
Branch1(config-if)# no ip address
Branch1(config-if)# encapsulation frame-relay
Branch1(config-if)# exit
Branch1(config)# interface Serial0.1 point-to-point
Branch1(config-subif)# description PVC to Central host - DLCI 50
Branch1(config-subif)# ip address 192.168.1.6 255.255.255.252
Branch1(config-subif)# frame-relay interface-dlci 50
Branch1(config-fr-dlci)# exit
Branch1(config-if)# exit
Branch1(config)# end
Branch1#
注释 点对点子接口方式应该是最简单的一种帧中继配置方式了。对于互联非思科设备时候可能需要人工指定包封装格式为标准的IETF格式(RFC1490),可以在接口下配置 encapsulation frame-relay ietf 或者在子接口下配置 frame-relay interface-dlci 101 ietf。当你启用帧中继的时候路由器会自动激活Inverse ARP,而通常都是自动配置映射关系,所以我们一般都不需要 no frame-relay inverse-arp。还有要注意的是这里的 interface Serial0.1 point-to-point,后面的子接口模式不能写错,否则需要删除错误的,然后重启才可以更改
10.2. 调整LMI 选项
提问 在帧中继电路上配置不同的LMI
回答
Branch1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Branch1(config)# interface Serial0
Branch1(config-if)# encapsulation frame-relay
Branch1(config-if)# frame-relay lmi-type ansi (cisco,q933a)
Branch1(config-if)# exit
Branch1(config)# end
Branch1#
缺省情况下LMI的Keeplive包每十秒钟发一次,也可以调整此间隔
Branch1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Branch1(config)# interface Serial0
Branch1(config-if)# encapsulation frame-relay
Branch1(config-if)# keepalive 5
Branch1(config-if)# exit
Branch1(config)# end
Branch1#
对于不支持LMI的网络必须配置路由器宣告自己的DLCI
Branch1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Branch1(config)# interface Serial0
Branch1(config-if)# encapsulation frame-relay
Branch1(config-if)# frame-relay local-dlci 50
Branch1(config-if)# exit
Branch1(config)# end
Branch1#
注释 对于最后不支持LMI的例子中建议用 no keepalive 来关闭LMI的轮询
10.3. 使用MAP命令配置
提问 所有的PVC共享同一个接口
回答
Central# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Central(config)# interface Serial0
Central(config)# description Frame Relay to branches
Central(config-if)# ip address 192.168.1.1 255.255.255.0
Central(config-if)# encapsulation frame-relay
Central(config-if)# frame-relay map ip 192.168.1.10 101
Central(config-if)# frame-relay map ip 192.168.1.11 102
Central(config-if)# frame-relay map ip 192.168.1.12 103
Central(config-if)# exit
Central(config)# end
Central#
注释 在10.1中使用了点对点子接口的方式来配置,此小节MAP的方式和下节的多点子接口都是类似的实现方法,但是在网管中点对点可以生成各个PVC的trap,而后两种则无法针对每个链路产生告警。同时由于帧中继是NBMA网络,所以建议 frame-relay map ip 192.168.1.10 101 broadcast 方式来允许广播包的传递
10.4. 使用多点子接口
提问 所有的PVC共享同一个接口
回答
Central# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Central(config)# interface Serial0.1 multipoint
Central(config-subif)# description Frame Relay to branches
Central(config-subif)# ip address 192.168.1.1 255.255.255.0
Central(config-subif)# frame-relay interface-dlci 101
Central(config-subif)# frame-relay interface-dlci 102
Central(config-subif)# frame-relay interface-dlci 103
Central(config-subif)# frame-relay interface-dlci 104
Central(config-subif)# exit
Central(config)# end
Central#
注释 这种配置方式最大的不同就是不需要配置映射,使用的Inverse ARP,所以在这种模式下不能禁用反向ARP。可以通过show frame-relay map命令来验证
10.5. 配置帧中继SVCs
提问 配置路由器使其支持帧中继SVC
回答
SVC子接口模式
Central# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Central(config)# interface Serial0
Central(config-if)# encapsulation frame-relay
Central(config-if)# frame-relay lmi-type q933a
Central(config-if)# frame-relay svc
Central(config-if)# exit
Central(config)# interface Serial0.10 point-to-point
Central(config-subif)# ip address 192.168.1.129 255.255.255.252
Central(config-subif)# frame-relay interface-dlci 100
Central(config-subif)# map-group SVCMAP
Central(config-fr-dlci)# class SVCclass
Central(config-fr-dlci)# exit
Central(config-subif)# exit
Central(config)# map-list SVCMAP source-addr X121 1234 dest-addr X121 4321
Central(config-map-list)# ip 192.168.55.6 class SVCclass ietf
Central(config-map-list)# exit
Central(config)# map-class frame-relay SVCclass
Central(config-map-class)# frame-relay traffic-rate 56000 128000
Central(config-map-class)# exit
Central(config)# end
Central#
SVC非子接口模式
Central# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Central(config)# interface Serial0
Central(config-if)# ip address 192.168.55.1 255.255.255.0
Central(config-if)# encapsulation frame-relay
Central(config-if)# frame-relay lmi-type q933a
Central(config-if)# frame-relay svc
Central(config-if)# map-group SVCMAP
Central(config-if)# frame-relay interface-dlci 50
Central(config-fr-dlci)# class SVCclass
Central(config-fr-dlci)# exit
Central(config-if)# exit
Central(config)# map-list SVCMAP source-addr X121 1234 dest-addr X121 4321
Central(config-map-list)# ip 192.168.55.6 class SVCclass ietf
Central(config-map-list)# exit
Central(config)# map-class frame-relay SVCclass
Central(config-map-class)# frame-relay traffic-rate 56000 128000
Central(config-map-class)# exit
Central(config)# end
Central#
注释 缺省情况下在空闲120秒后此SVC会被拆除,可以使用 frame-relay idle-timer 命令来修改。通过 show frame-relay svc maplist SVCMAP 来验证。一般网络中都使用PVC,SVC用于节省成本,但是增加了复杂性和管理难度,路由器可以自动增加或者删除链路
10.6. 模拟帧中继云
提问 使用一台路由器来模拟帧中继交换机
回答
Cloud# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Cloud(config)# frame-relay switching
Cloud(config)# interface Serial0
Cloud(config-if)# description Frame-relay connection to Central - DLCI 50
Cloud(config-if)# encapsulation frame-relay
Cloud(config-if)# clock rate 125000
Cloud(config-if)# frame-relay lmi-type cisco
Cloud(config-if)# frame-relay intf-type dce
Cloud(config-if)# frame-relay route 101 interface Serial1 50
Cloud(config-if)# frame-relay route 102 interface Serial2 50
Cloud(config-if)# exit
Cloud(config)# interface Serial1
Cloud(config-if)# description Frame-relay connection to Branch1 - DLCI 101
Cloud(config-if)# encapsulation frame-relay
Cloud(config-if)# clock rate 125000
Cloud(config-if)# frame-relay lmi-type cisco
Cloud(config-if)# frame-relay intf-type dce
Cloud(config-if)# frame-relay route 50 interface Serial0 101
Cloud(config-if)# exit
Cloud(config)# interface Serial2
Cloud(config-if)# description Frame-relay connection to Branch2 - DLCI 102
Cloud(config-if)# encapsulation frame-relay
Cloud(config-if)# clock rate 125000
Cloud(config-if)# frame-relay lmi-type cisco
Cloud(config-if)# frame-relay intf-type dce
Cloud(config-if)# frame-relay route 50 interface Serial0 102
Cloud(config-if)# exit
Cloud(config)# end
Cloud#
注释 此种模拟不支持SVC,同时对于流量整形或者与BECN相关的特性的支持都不是很好。 show frame-relay route 命令来查看当前的链路交换配置。
10.7. 子接口配置下的帧中继压缩
提问 在接口配置帧中继的压缩
回答
Central# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Central(config)# interface Serial0
Central(config-if)# encapsulation frame-relay
Central(config-if)# frame-relay ip tcp header-compression passive
Central(config-if)# frame-relay payload-compression frf9 stac (packet-by-packet)
Central(config-if)# exit
Central(config)# end
Central#
注释 passive参数的含义是只有收到了压缩的数据包才会采用压缩。压缩模式上建议使用FRF.9这个开放标准。使用命令 show frame-relay ip tcp header-compression
可以看到压缩的统计数据
10.8. MAP命令下的帧中继压缩
提问 配置MAP命令下的帧中继压缩
回答
Central# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Central(config)# interface Serial0
Central(config-if)# description Frame Relay to branches
Central(config-if)# ip address 192.168.1.1 255.255.255.0
Central(config-if)# encapsulation frame-relay
Central(config-if)# frame-relay map ip 192.168.1.10 101 payload-compression frf9 stac
Central(config-if)# exit
Central(config)# end
Central#
注释
10.9. PPP over Frame Relay
提问 帧中继链路配置PPP封装
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Loopback1
Router1(config-if)# ip address 10.1.200.5 255.255.255.252
Router1(config-if)# exit
Router1(config)# interface Virtual-Template1
Router1(config-if)# ip unnumbered Loopback1
Router1(config-if)# encapsulation ppp
Router1(config-if)# exit
Router1(config)# interface Serial0
Router1(config-if)# no ip address
Router1(config-if)# encapsulation frame-relay
Router1(config-if)# exit
Router1(config)# interface Serial0.1 point-to-point
Router1(config-subif)# frame-relay interface-dlci 104 ppp Virtual-Template1
Router1(config-fr-dlci)# exit
Router1(config-subif)# exit
Router1(config)# end
Router1#
注释 有点鬼…
10.10. 查看帧中继状态
提问 查看帧中继状态
回答
Central# show interfaces Serial0
Central# show frame-relay pvc
Central# show frame-relay lmi
提问 ">每个PVC归属特定子接口的方式来配置帧中继
回答
中心配置
Central# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Central(config)# interface Serial0
Central(config-if)# description Frame-Relay host circuit
Central(config-if)# no ip address
Central(config-if)# encapsulation frame-relay
Central(config-if)# exit
Central(config)# interface Serial0.1 point-to-point
Central(config-subif)# description PVC to first branch - DLCI 101
Central(config-subif)# ip address 192.168.1.5 255.255.255.252
Central(config-subif)# frame-relay interface-dlci 101
Central(config-fr-dlci)# exit
Central(config-subif)# exit
Central(config)# interface Serial0.2 point-to-point
Central(config-subif)# description PVC to second branch - DLCI 102
Central(config-subif)# ip address 192.168.1.9 255.255.255.252
Central(config-subif)# frame-relay interface-dlci 102
Central(config-fr-dlci)# exit
Central(config-subif)# exit
Central(config)# end
Central#
边缘配置
Branch1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Branch1(config)# interface Serial0
Branch1(config-if)# description Frame-Relay circuit
Branch1(config-if)# no ip address
Branch1(config-if)# encapsulation frame-relay
Branch1(config-if)# exit
Branch1(config)# interface Serial0.1 point-to-point
Branch1(config-subif)# description PVC to Central host - DLCI 50
Branch1(config-subif)# ip address 192.168.1.6 255.255.255.252
Branch1(config-subif)# frame-relay interface-dlci 50
Branch1(config-fr-dlci)# exit
Branch1(config-if)# exit
Branch1(config)# end
Branch1#
注释 点对点子接口方式应该是最简单的一种帧中继配置方式了。对于互联非思科设备时候可能需要人工指定包封装格式为标准的IETF格式(RFC1490),可以在接口下配置 encapsulation frame-relay ietf 或者在子接口下配置 frame-relay interface-dlci 101 ietf。当你启用帧中继的时候路由器会自动激活Inverse ARP,而通常都是自动配置映射关系,所以我们一般都不需要 no frame-relay inverse-arp。还有要注意的是这里的 interface Serial0.1 point-to-point,后面的子接口模式不能写错,否则需要删除错误的,然后重启才可以更改
10.2. 调整LMI 选项
提问 在帧中继电路上配置不同的LMI
回答
Branch1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Branch1(config)# interface Serial0
Branch1(config-if)# encapsulation frame-relay
Branch1(config-if)# frame-relay lmi-type ansi (cisco,q933a)
Branch1(config-if)# exit
Branch1(config)# end
Branch1#
缺省情况下LMI的Keeplive包每十秒钟发一次,也可以调整此间隔
Branch1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Branch1(config)# interface Serial0
Branch1(config-if)# encapsulation frame-relay
Branch1(config-if)# keepalive 5
Branch1(config-if)# exit
Branch1(config)# end
Branch1#
对于不支持LMI的网络必须配置路由器宣告自己的DLCI
Branch1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Branch1(config)# interface Serial0
Branch1(config-if)# encapsulation frame-relay
Branch1(config-if)# frame-relay local-dlci 50
Branch1(config-if)# exit
Branch1(config)# end
Branch1#
注释 对于最后不支持LMI的例子中建议用 no keepalive 来关闭LMI的轮询
10.3. 使用MAP命令配置
提问 所有的PVC共享同一个接口
回答
Central# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Central(config)# interface Serial0
Central(config)# description Frame Relay to branches
Central(config-if)# ip address 192.168.1.1 255.255.255.0
Central(config-if)# encapsulation frame-relay
Central(config-if)# frame-relay map ip 192.168.1.10 101
Central(config-if)# frame-relay map ip 192.168.1.11 102
Central(config-if)# frame-relay map ip 192.168.1.12 103
Central(config-if)# exit
Central(config)# end
Central#
注释 在10.1中使用了点对点子接口的方式来配置,此小节MAP的方式和下节的多点子接口都是类似的实现方法,但是在网管中点对点可以生成各个PVC的trap,而后两种则无法针对每个链路产生告警。同时由于帧中继是NBMA网络,所以建议 frame-relay map ip 192.168.1.10 101 broadcast 方式来允许广播包的传递
10.4. 使用多点子接口
提问 所有的PVC共享同一个接口
回答
Central# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Central(config)# interface Serial0.1 multipoint
Central(config-subif)# description Frame Relay to branches
Central(config-subif)# ip address 192.168.1.1 255.255.255.0
Central(config-subif)# frame-relay interface-dlci 101
Central(config-subif)# frame-relay interface-dlci 102
Central(config-subif)# frame-relay interface-dlci 103
Central(config-subif)# frame-relay interface-dlci 104
Central(config-subif)# exit
Central(config)# end
Central#
注释 这种配置方式最大的不同就是不需要配置映射,使用的Inverse ARP,所以在这种模式下不能禁用反向ARP。可以通过show frame-relay map命令来验证
10.5. 配置帧中继SVCs
提问 配置路由器使其支持帧中继SVC
回答
SVC子接口模式
Central# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Central(config)# interface Serial0
Central(config-if)# encapsulation frame-relay
Central(config-if)# frame-relay lmi-type q933a
Central(config-if)# frame-relay svc
Central(config-if)# exit
Central(config)# interface Serial0.10 point-to-point
Central(config-subif)# ip address 192.168.1.129 255.255.255.252
Central(config-subif)# frame-relay interface-dlci 100
Central(config-subif)# map-group SVCMAP
Central(config-fr-dlci)# class SVCclass
Central(config-fr-dlci)# exit
Central(config-subif)# exit
Central(config)# map-list SVCMAP source-addr X121 1234 dest-addr X121 4321
Central(config-map-list)# ip 192.168.55.6 class SVCclass ietf
Central(config-map-list)# exit
Central(config)# map-class frame-relay SVCclass
Central(config-map-class)# frame-relay traffic-rate 56000 128000
Central(config-map-class)# exit
Central(config)# end
Central#
SVC非子接口模式
Central# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Central(config)# interface Serial0
Central(config-if)# ip address 192.168.55.1 255.255.255.0
Central(config-if)# encapsulation frame-relay
Central(config-if)# frame-relay lmi-type q933a
Central(config-if)# frame-relay svc
Central(config-if)# map-group SVCMAP
Central(config-if)# frame-relay interface-dlci 50
Central(config-fr-dlci)# class SVCclass
Central(config-fr-dlci)# exit
Central(config-if)# exit
Central(config)# map-list SVCMAP source-addr X121 1234 dest-addr X121 4321
Central(config-map-list)# ip 192.168.55.6 class SVCclass ietf
Central(config-map-list)# exit
Central(config)# map-class frame-relay SVCclass
Central(config-map-class)# frame-relay traffic-rate 56000 128000
Central(config-map-class)# exit
Central(config)# end
Central#
注释 缺省情况下在空闲120秒后此SVC会被拆除,可以使用 frame-relay idle-timer 命令来修改。通过 show frame-relay svc maplist SVCMAP 来验证。一般网络中都使用PVC,SVC用于节省成本,但是增加了复杂性和管理难度,路由器可以自动增加或者删除链路
10.6. 模拟帧中继云
提问 使用一台路由器来模拟帧中继交换机
回答
Cloud# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Cloud(config)# frame-relay switching
Cloud(config)# interface Serial0
Cloud(config-if)# description Frame-relay connection to Central - DLCI 50
Cloud(config-if)# encapsulation frame-relay
Cloud(config-if)# clock rate 125000
Cloud(config-if)# frame-relay lmi-type cisco
Cloud(config-if)# frame-relay intf-type dce
Cloud(config-if)# frame-relay route 101 interface Serial1 50
Cloud(config-if)# frame-relay route 102 interface Serial2 50
Cloud(config-if)# exit
Cloud(config)# interface Serial1
Cloud(config-if)# description Frame-relay connection to Branch1 - DLCI 101
Cloud(config-if)# encapsulation frame-relay
Cloud(config-if)# clock rate 125000
Cloud(config-if)# frame-relay lmi-type cisco
Cloud(config-if)# frame-relay intf-type dce
Cloud(config-if)# frame-relay route 50 interface Serial0 101
Cloud(config-if)# exit
Cloud(config)# interface Serial2
Cloud(config-if)# description Frame-relay connection to Branch2 - DLCI 102
Cloud(config-if)# encapsulation frame-relay
Cloud(config-if)# clock rate 125000
Cloud(config-if)# frame-relay lmi-type cisco
Cloud(config-if)# frame-relay intf-type dce
Cloud(config-if)# frame-relay route 50 interface Serial0 102
Cloud(config-if)# exit
Cloud(config)# end
Cloud#
注释 此种模拟不支持SVC,同时对于流量整形或者与BECN相关的特性的支持都不是很好。 show frame-relay route 命令来查看当前的链路交换配置。
10.7. 子接口配置下的帧中继压缩
提问 在接口配置帧中继的压缩
回答
Central# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Central(config)# interface Serial0
Central(config-if)# encapsulation frame-relay
Central(config-if)# frame-relay ip tcp header-compression passive
Central(config-if)# frame-relay payload-compression frf9 stac (packet-by-packet)
Central(config-if)# exit
Central(config)# end
Central#
注释 passive参数的含义是只有收到了压缩的数据包才会采用压缩。压缩模式上建议使用FRF.9这个开放标准。使用命令 show frame-relay ip tcp header-compression
可以看到压缩的统计数据
10.8. MAP命令下的帧中继压缩
提问 配置MAP命令下的帧中继压缩
回答
Central# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Central(config)# interface Serial0
Central(config-if)# description Frame Relay to branches
Central(config-if)# ip address 192.168.1.1 255.255.255.0
Central(config-if)# encapsulation frame-relay
Central(config-if)# frame-relay map ip 192.168.1.10 101 payload-compression frf9 stac
Central(config-if)# exit
Central(config)# end
Central#
注释
10.9. PPP over Frame Relay
提问 帧中继链路配置PPP封装
回答
Router1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Loopback1
Router1(config-if)# ip address 10.1.200.5 255.255.255.252
Router1(config-if)# exit
Router1(config)# interface Virtual-Template1
Router1(config-if)# ip unnumbered Loopback1
Router1(config-if)# encapsulation ppp
Router1(config-if)# exit
Router1(config)# interface Serial0
Router1(config-if)# no ip address
Router1(config-if)# encapsulation frame-relay
Router1(config-if)# exit
Router1(config)# interface Serial0.1 point-to-point
Router1(config-subif)# frame-relay interface-dlci 104 ppp Virtual-Template1
Router1(config-fr-dlci)# exit
Router1(config-subif)# exit
Router1(config)# end
Router1#
注释 有点鬼…
10.10. 查看帧中继状态
提问 查看帧中继状态
回答
Central# show interfaces Serial0
Central# show frame-relay pvc
Central# show frame-relay lmi
相关热门文章
给主人留下些什么吧!~~
评论热议