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
<!--[if !supportLists]-->6.14. <!--[endif]-->配置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#
注释 只要配置的汇总路由中的有一条子网路由是存在的,路由器就会继续宣告此条汇总路由
<!--[if !supportLists]-->6.17. <!--[endif]-->路由标签
提问 对再发布的路由配置标签,从而避免不同路由协议之间路由再发布出现路由回环
回答
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自身正常情况下也不直接使用这些标签,只是分发而已,假如这些路由再被分发到其他路由进程就可以用标签来识别从而进行控制