故障背景:如图14.1所示的网络环境,在所包含的区域启动了OSPF路由,当然路由器R1的E1/0和R2的E1/0这段10MB的以太网链路没有被包含到OSPF的路由域中,由于某些特殊原因,在这一段链路将使用静态路由来到达172.17.100.0的子网,具体每台路由器的原始配置请参看产生故障的原始配置部分,现在网络中的OSPF路由器邻居关系与路由学习完全正常,工程师通过查看网络环境发现路由器R2总是通过56K的低速链路转到目标172.17.100.1的数据包,通过traceroute指令进行测试,如图14.2所示。事实上,这不是工程师所希望的,因为工程师已经为路由器R1配置了一条静态路由,希望172.16.1.0子网到达目标172.17.100.0通过高速链路转发,而不是56K的低速链路,但是事实上数据包总是通过低速链路的下一跳(192.168.0.2)转发到172.17.100.0的数据包,具体的路由表如图14.3所示,分析故障原因,然后排除故障。
产生故障的原始配置:各路由器产生故障的原始配置如下所示:
路由器R1的原始配置
interface Loopback1
ip address 172.16.1.1 255.255.255.0
!
interfaceEthernet1/0
ip address 192.168.1.1 255.255.255.0
duplex half
!
interface Serial2/0
bandwidth 56000
ip address 192.168.0.1 255.255.255.252
encapsulation ppp
router ospf 1
router-id 1.1.1.1
log-adjacency-changes
network 172.16.1.0 0.0.0.255area 0
network 192.168.0.0 0.0.0.255area 0
ip route172.17.100.0 255.255.255.0 192.168.1.2*关于10MB链路部分的静态路由
路由器R2的原始配置:
interfaceEthernet1/0
ip address 192.168.1.2 255.255.255.0
duplex half
!
interfaceEthernet1/1
ip address 192.168.3.1 255.255.255.0
duplex half
!
interface Serial2/0
bandwidth 56000
ip address 192.168.0.2 255.255.255.0
encapsulation ppp
!
router ospf 1
router-id 2.2.2.2
log-adjacency-changes
network 192.168.0.0 0.0.0.255area 0
network 192.168.3.0 0.0.0.255area 0
路由器R3的原始配置
interface Loopback1
ip address 172.17.100.1 255.255.255.0
!
interfaceEthernet1/0
ip address 192.168.3.2 255.255.255.0
duplex half
!
router ospf 1
router-id 3.3.3.3
log-adjacency-changes
network 172.17.100.0 0.0.0.255area 0
network 192.168.3.0 0.0.0.255area 0
故障分析:根据图14.3所示的路由表,可以很直观的判断故障的原因,虽然在路由表中存在两条路由到同一目标(172.17.100.0)的路由,一条是通过OSPF学习到,一条是通过静态路由输写的,可看出通过OSPF路由学到的是一个32位的主机路由(172.17.100.1/32),而静态路由是一个24位的子网路由(172.17.100.0/24),根据路由选择的原则:数据包将选择较长子网位的路由转发数据,通过OSPF学到的路由是32位,静态路由是24位,所以选择了OSPF学到的路由转发数据,也就是在低速路径上转发。
解决方案:现在只需要将静态路由变为32位,然后下一跳地址为192.168.1.2(高速链路的下一跳)即可。具体配置如下所示。完成配置后, 可以通过在路由器R1执行showip route查看路由表,如图14.4所示,其中只存在一条32位的静态路由,当OSPF路由与静态路由的子网位数相同时,路由的管理距离较小的会被优先放入到路由表,静态路由的管理距离是1;OSPF的管理距离是110,所以会将这条32位的静态路由放入到R1的路由表中,此时,已经满足让数据包通过高速链路转发的条件。然后,再次通过traceroute指令进行测试,如图14.5所示,已经通过高速路径下一跳为192.168.1.2进行转发。故障成功排除。
将静态路由变为32位的解决方案:
R1(config)#no iproute 172.17.100.0 255.255.255.0 192.168.1.2*删除原有配置
R1(config)#ip route 172.17.100.1 255.255.255.255 192.168.1.2*配置32位路由
R2(config)#ip route 172.16.1.1 255.255.255.255 192.168.1.1*配置R2返回R1路由