故障背景:如图14.6所示的网络环境,工程师在相应的接口配置了接口地址,并在整个网络启动了RIP路由协议,由于一些特殊原因在路由器S2/0的接口上没有配置具体的IP地址,使用了无编号IP地址(ipunnumbered e1/0),事实上S2/0接口上的IP地址是向E1/0接口借的,在实际的生产环境中,产生这种无编号IP地址的原因是为了在点对点的链路上节省IP地址,防止地址浪费,所以这种应用是合法的。然后为了某些安全特性,工程师在路由器R1的E1/0接口的入方向上配置了ACL列表,只允许源地址为192.168.3.1、源子网为192.168.6.0/24的子网访问任意网络,其他的流量被ACL101隐藏的Deny语句所拒绝。当完成上述的配置后,现在出现了一个现象:路由器R1无法学到任何路由如图14.7所示;R2路由学习完全正常如图14.8所示;R3也无法学习到任何路由如图14.9所示。
现在请分析出现这些故障的原因,并在不改变原有配置的情况排除故障。
产生故障的原始配置:产生故障的原始配置如下所示。
路由器R1的原始配置:
interface Loopback1
ip address 192.168.5.1 255.255.255.0
!
interfaceEthernet1/0
ip address 192.168.2.1 255.255.255.0
ip access-group 101 in
duplex half
!
router rip
version 2
network 192.168.2.0
network 192.168.5.0
no auto-summary
access-list 101permit ip host 192.168.3.1 any
access-list 101permit ip 192.168.6.0 0.0.0.255 any
路由器R2的原始配置:
interfaceEthernet1/0
ip address 192.168.2.2 255.255.255.0
duplex half
!
interface Serial2/0
ip unnumbered Ethernet1/0
encapsulation ppp
!
routerrip
version 2
network 192.168.2.0
no auto-summary
路由器R3的原始配置:
interface Loopback1
ip address 192.168.6.1 255.255.255.0
!
interface Serial2/0
ip address 192.168.3.2 255.255.255.252
encapsulation ppp
!
router rip
version 2
network 192.168.3.0
network 192.168.6.0
no auto-summary
故障分析:在事实的工作环境中,有时遇到的故障,通常不在一处,比如:这个故障就产生在路由器R1和R3上,恰好中间的路由器R2工作正常,当遇到这种复合型故障时,请首先将分而治之,进行独立分析,这样可以减小故障重叠后的排除范围,注意这将是一个非常好的建议。所以现在首先在路由器R3上,使用debug ip rip events指令来调试RIP的工作过程,这样可以看到RIP在后台工作的数据包,得到如图14.10所示,指示路由器R3的S2/0的接口收到一个坏的RIP的数据包,发送一个坏的RIP数据包的源地址是192.168.2.2事实上就是路由器R2的S2/0接口,因为路由器R2的S2/0接口是向E1/0借的IP地址,而产生这个故障的原因是路由器R2的S2/0使用了无编号IP地址(ip unnumbered),而路由器R3的S2/0接口使用了具体的IP地址,在这种情况下,路由器R3会检测更新源的合法性,必须要求路由器R2的路由更新源地址与自己的S2/0接口上的IP地址在同一个子网,否则路由器R3会报告收到坏的路由更新,解决这个故障有两种方案:一是为路由器R2的S2/0的接口配置一个与路由器R3的S2/0接口相同子网的具体IP地址,但这种解决方案破坏了原有的地址设计,改变了原有配置,因为在很多情况下进行故障排除时,是以不破坏设备原有配置为原则。第二个解决方案就是关闭路由器R3上关于RIP更新源合法性检测的功能,默认情况下这个功能是被启动的,具体的排除过程请参看解决方案部分,当完成这个行为后,可以看到路由器R3的路由学习正常,路由表成功学到了R2发来的路由更新,如图14.12所示。现在已经成功解决路由器R3的路由故障。
在路由器R1的配置看上去似乎很合理,因为在ACL中允许了RIP网络中的所有远程子网到达路由器R1。在这种情况下,还是首先在路由器R1上使用debug ip rip event指令查看RIP更新的情况,如图14.11所示,指示路由器R1没有收到任何来自路由器R2的路由更新,如果物理链路正常并且保证RIP的配置正常,那么就是ACL的隐藏的Deny语句拒绝了目标地址是224.0.0.9的RIP更新组播地址,这将导致RIP的路由更新失败,解决方案是在路由器R1现有的ACL中加入一条允许目标地址224.0.0.9的组播地址到达路由器R1,
具体的排除过程请参看解决方案部分,当完成这个行为后,可以看到路由器R1的路由学习正常,如图14.13所示。故障成功排除。
解决方案:
R3(config)#router rip
R3(config-router)#no validate-update-source* 关闭RIP更新源合法性检测。
R3(config-router)#exit
R1(config)#access-list 101 permit ip any host 224.0.0.9
* 增加允许RIP更新组播通过的ACL条目。
本文转自 kingsir827 51CTO博客,原文链接:xxxhttp://blog.51cto.com/7658423/1359949xxx,如需转载请自行联系原作者