浮动路由(Floating Route),用于实现多出口环境下的路径(路由)选择,通过浮动路由技术,可以将所有数据流指往主路径,当主路径出现故障后,数据报流量能够自动切换到备用路径,可以说浮动路由是根据默认路由衍生出来的一个技术。
针对路由有多个出口的环境下的路由路径选择,可以通过使用浮动路由技术配置主备路由的优先级(管理距离),一般优先级是0-255之间,值越小代表优先级越高
,主链路的优先级默认是0或者1,备用路由的优先级一般都很低。这样pc发送的数据都会转发给主路由出口,当主路由出现故障时,数据转发会自动切换到备用路由。
配置浮动路由完成后,一般只有主路由才会显示,备用的路由默认是隐藏的,只有当主路由出现故障时,才会切换到并显示备用路由,浮动路由语法如下所示:
ip route 0.0.0.0 0.0.0.0 f0/0 //主链路
ip route 0.0.0.0 0.0.0.0 f1/0 100 //备链路
R1设备配置如下:
R1#conf t
R1(config)#int f0/0
R1(config-if)#ip add 12.1.1.1 255.255.255.0 //配置f0/0口的ip地址为12.1.1.1
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#int f0/1
R1(config-if)#ip add 13.1.1.1 255.255.255.0 //配置f0/1口的ip地址为13.1.1.1
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#int loopback 1
*Mar 1 00:01:21.255: %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback1, changed state to up
R1(config-if)#ip add 1.1.1.1 255.255.255.255 //配置loopback1口为1.1.1.1
R1(config-if)#exit
R1(config)#
R2设备配置如下:
R2#conf t
R2(config)#int f0/0
R2(config-if)#ip add 12.1.1.2 255.255.255.0 //配置f0/0口ip地址为12.1.1.2
R2(config-if)#no shutdown
R2(config-if)#exit
R2(config)#
*Mar 1 00:01:26.687: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
*Mar 1 00:01:27.687: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
R2(config)#int loopback 1
R2(config-if)#ip add 8.8.8.8 255.255.255.255 //配置loopback1口ip地址为8.8.8.8
R2(config-if)#exit
R2(config)#
R3设备配置如下:
R3#conf t
R3(config)#int f0/0
R3(config-if)#ip add 13.1.1.2 255.255.255.0 //配置f0/0口ip地址为13.1.1.2
R3(config-if)#no shutdown
R3(config-if)#exit
R3(config)#
R3(config)#int loopback 1
*Mar 1 00:03:21.455: %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback1, changed state to up
R3(config-if)#ip add 8.8.8.8 255.255.255.255
R3(config-if)#exit
R3(config)#
再选择R1设备添加路由,12.1.1.2是主路由,管理距离没写,但是默认为0;13.1.1.3是备用路由,管理距离为100,所以备用链路的管理距离要比主链路的管理距离大,默认情况下,默认路由的管理距离为0,管理距离可以理解为优先级,管理距离越小越优先,范围从0到255之间。
选择R1设备添加主路由和备用路由,配置如下:
R1(config)#ip route 0.0.0.0 0.0.0.0 12.1.1.2 //12.1.1.2路由的优先级更高
R1(config)#ip route 0.0.0.0 0.0.0.0 13.1.1.2 100 //13.1.1.2是备用路由,管理距离为100
R1#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route
Gateway of last resort is 12.1.1.2 to network 0.0.0.0
1.0.0.0/32 is subnetted, 1 subnets
C 1.1.1.1 is directly connected, Loopback1
12.0.0.0/24 is subnetted, 1 subnets
C 12.1.1.0 is directly connected, FastEthernet0/0
13.0.0.0/24 is subnetted, 1 subnets
C 13.1.1.0 is directly connected, FastEthernet0/1
S* 0.0.0.0/0 [1/0] via 12.1.1.2 //这里暂时只能看到12.1.1.2主路由,这是因为路由表会先把优先级高的路由加进来
R1#
在R2设备上都开启icmp的debug模式,R3设备同理:
R2#debug ip icmp
ICMP packet debugging is on
R2#
然后R1去ping 8.8.8.8,发现回复的是R2设备,说明现在R1的数据流量是从R2设备出去的:
选择R1设备,把f0/0口关闭:
R1#conf t
R1(config)#int f0/0
R1(config-if)#shutdown
*Mar 1 00:30:33.583: %LINK-5-CHANGED: Interface FastEthernet0/0, changed state to administratively down
*Mar 1 00:30:34.583: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to down
R1(config-if)#
R1(config-if)#
然后再查看R1设备的路由表:
R1#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route
Gateway of last resort is 13.1.1.2 to network 0.0.0.0
1.0.0.0/32 is subnetted, 1 subnets
C 1.1.1.1 is directly connected, Loopback1
13.0.0.0/24 is subnetted, 1 subnets
C 13.1.1.0 is directly connected, FastEthernet0/1
S* 0.0.0.0/0 [100/0] via 13.1.1.2 //此时路由表中已经切换成13.1.1.2备路由
R1#
当切换成13.1.1.2备路由的时候,R1再去ping 8.8.8.8时,发现回复的是R3设备,说明现在R1的数据流量是从R3设备出去的。