数据包通过路由器转发时需要通过查询路由表才能确定转发(出方向)端口,一旦路由表稳定后,所有相同目的地址的数据包都会依赖路由表中的表项进行转发。由于静态路由是管理员手工添加的,缺少根据网络拓扑变化实时更新路由表的功能,因此存在这样一种情况,就是当下一站转发设备发生故障时,路由器还是会依据原路由表转发,将数据包交给发生故障的设备,哪怕另外还有一条正常的数据传输路径。换句话说,路由器缺乏在故障发生时自动切换到备用链路的能力。
浮动静态路由就是通过给路由器配置备份的路由表项,使路由器在主链路出现故障时能够自动切换至次优的备件链路。图8-2中,路由器A到达路由器C有两条物理链路,配置IP地址和静态路由后能够实现全网互通。在路由器A上能够“ping”通“3.3.3.3”,但是当正常转发数据的路径发生故障时,路由器不能切换数据传输通路,从另外一条物理链路上传输数据。
图8-2 浮动静态路由
1.基本配置
根据图8-2的拓扑配置接口IP地址及静态路由。配置完毕后,在4台路由器上查看路由表如下所示。
通过查看路由表,我们能够分析出当在路由器A上以“1.1.1.1”为源地址ping“3.3.3.3”时,数据传输的路径是路由器A→路由器B→路由器C→路由器D→路由器A这样的一个环路。为了能更好地观察实验效果,首先在路由器A上使用指令“ping 3.3.3.3 source 1.1.1.1 ntimes 1000”来ping地址“3.3.3.3” 1000次,这个过程需要很久,在这个过程中,使用指令“shutdown”关闭路由器B的S2/0端口,路由器A上将检测到对端端口失效,从而本地F0/0端口也变为“down”状态。ping过程中的“!”变为“.”,表示不通了。需要用到的指令与提示如下所示。
(www.xing528.com)
再次使用指令“no shutdown”激活路由器B的S2/0端口后,路由器A上的ping过程再次正常,提示符变为“!”。
2.配置浮动静态路由
在路由器A上添加下列静态路由,对目的地为“3.3.3.0/24”的数据包从S3/0端口转发,需要注意:这一条指令并不会替换原先已经配置的从S2/0端口转发数据包的路由表项。并且这一条指令最后多了一个数字“50”,这个数字表示正在添加的这条路由表项的管理距离,静态路由默认值是“1”,越小越优先。
刚刚添加的路由表项在路由表中没有出现,但是配置指令确实已经生效了,因为在running-config配置文件中已经出现了。浮动静态路由不同于其他路由,当链路正常时它不出现在路由表中,出现在路由表中的是首选路径,如果首选路径断开时,浮动静态路由才会出现在路由表中。也可以这样理解:用到浮动静态路由的时候,它才会出现在路由表中。
再次在路由器A上使用指令“ping 3.3.3.3 source 1.1.1.1 ntimes 1000”来ping地址“3.3.3.3”1000次,在这个过程中断开路由器B的S2/0端口,可以发现只有在切换链路时丢了一个包,ping的过程全部是“!”提示符。
在路由器S2/0端口断开的情况下,使用“Ctrl+C”中断路由器A上ping的过程,查看路由表,此时的表项为浮动静态路由。
使用“no shutdown”指令恢复路由器S2/0端口为正常后,数据通路又还原为路由器A→路由器B→路由器C→路由器D→路由器A这样的一个环路,路由表中的浮动静态路由又会消失。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。