简介
本文档介绍静态路由,并通过问题场景来说明何时需要指定到达下一跳 IP 地址的方式。
先决条件
要求
本文档没有任何特定的要求。
使用的组件
本文档不限于特定的软件和硬件版本。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
背景信息
静态路由有多种用途,如果没有到目的 IP 地址的动态路由,或要重写动态学习路由,则通常会使用静态路由。
默认情况下,静态路由的管理距离为 1,因此优先于来自任何动态路由协议的路由。当管理距离的值增大到超过动态路由协议时,静态路由可以作为动态路由失效时的安全网络。例如,增强型内部网关路由协议 (EIGRP) 派生路由的内部路由默认管理距离为 90,外部路由默认管理距离为 170。要配置由 EIGRP 路由重写的静态路由,请将静态路由的管理距离指定为大于 170。
具有较大管理距离的静态路由称为浮动静态路由。只有在动态学习路由消失时,才会将其安装在路由表中。浮动静态路由的一个示例是:ip route 172.31.10.0 255.255.255.0 10.10.10.2 101。
注意:如果管理距离为 255,则被视为不可访问,并且路由表中从不会列出管理距离为 255 的静态路由。
规则
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
不含下一跳 IP 地址的接口的静态路由
如果配置为将静态路由指向接口,请不要指定下一跳 IP 地址。仅当接口处于活动状态时,才会将该路由插入路由表。不建议使用此配置,因为当静态路由指向某个接口但不含下一跳信息时,路由器会将路由范围内的每台主机视为通过该接口直连。此类静态路由的一个示例是:ip route 0.0.0.0 0.0.0.0 Ethernet0。
在此类配置下,路由器在以太网上为路由器在默认路由中找到的每个目的地执行地址解析协议 (ARP),因为路由器将所有这些目的地都视为直接连接到 Ethernet 0。此类静态路由可能会导致处理器使用率升高,ARP 缓存剧增(以及内存分配失败),尤其在被许多数据包用于许多不同目的子网时更是如此。因此,不建议使用这种静态路由。
在直连接口上指定下一跳地址时,路由器不会为每个目的地址执行 ARP。例如 IP route 0.0.0.0 0.0.0.0 Ethernet0 192.168.1.1。仅指定直连的下一跳地址,但不建议这样做,原因如本文档所述。无需指定直连的下一跳地址,但是可以指定远程下一跳地址以及远程下一跳递归的接口。
如果下一跳的接口可能关闭,而通过递归路由可以到达下一跳,则应同时指定下一跳 IP 地址和可用于查找下一跳的备用接口。例如,IP 路由 10.0.0.1 255.255.255.255 串行 3/3 192.168.20.1。添加备用接口使静态路由安装变得更具确定性。
浮动静态路由示例
本示例描述浮动静态路由的使用,并说明使用静态路由命令指定出站接口和下一跳地址的必要性。
问题
根据如图所示的网络配置,主机 172.31.10.1 可以连接到互联网。在此示例中,该主机连接到远程互联网主机 10.100.1.1:
在此配置下,主链路是 R1 上串行端口 1/0 与 R2 上串行端口 1/0 之间的链路,用于从主机 172.31.10.1 向互联网传递流量。主机 10.100.1.1 是作为互联网主机的一个示例。R1 上串行端口 2/0 与 R2 上串行端口 2/0 之间的链路是备份链路。仅在主链路失效时才使用备份链路。这是使用指向主链路的静态路由和指向备份链路的浮动静态路由来部署的。
在 R1 上有两个静态路由到同一目的地 (172.31.10.0/24)。一个路由是常规静态路由,另一个路由是浮动静态路由,后者是到局域网中目的网络的备份或冗余路径。此情景中的问题是,当主链路关闭时,系统不会在路由表中安装浮动静态路由。
这是 R1 上的配置:
hostname R1
!
interface Serial1/0
ip address 10.10.10.1 255.255.255.252
!
interface Serial2/0
ip address 10.10.20.1 255.255.255.252
!
ip route 10.0.0.0 255.0.0.0 192.168.10.2
! This is the primary route to get to hosts on the internet.
ip route 172.31.10.0 255.255.255.0 10.10.10.2
! This is the preferred route to the LAN.
ip route 172.31.10.0 255.255.255.0 10.10.20.2 250
! This is the floating static route to the LAN.
这是 R2 上的配置:
hostname R2
!
interface Serial1/0
ip address 10.10.10.2 255.255.255.252
!
interface Serial2/0
ip address 10.10.20.2 255.255.255.252
!
ip route 0.0.0.0 0.0.0.0 10.10.10.1
ip route 0.0.0.0 0.0.0.0 10.10.20.1 250
!
这是 R1 的路由表:
R1#show ip route
Codes: L - local, 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, H - NHRP, l - LISP
a - application route
+ - replicated route, % - next hop override
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 5 subnets, 3 masks
S 10.0.0.0/8 [1/0] via 192.168.10.2
C 10.10.10.0/30 is directly connected, Serial1/0
L 10.10.10.1/32 is directly connected, Serial1/0
C 10.10.20.0/30 is directly connected, Serial2/0
L 10.10.20.1/32 is directly connected, Serial2/0
172.31.0.0/24 is subnetted, 1 subnets
S 172.31.10.0 [1/0] via 10.10.10.2
192.168.10.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.10.0/30 is directly connected, Serial3/0
L 192.168.10.1/32 is directly connected, Serial3/0
当从主机对互联网主机 10.100.1.1 执行 ping 操作时,它按预期运行。
host#ping 10.100.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.100.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 73/78/80 ms
从主机到互联网主机 10.100.1.1 的跟踪路由显示:
host#traceroute 10.100.1.1
Type escape sequence to abort.
Tracing the route to 10.100.1.1
VRF info: (vrf in name/id, vrf out name/id)
1 172.31.10.2 1 msec 1 msec 1 msec
2 10.10.10.1 31 msec 39 msec 39 msec
3 192.168.10.2 80 msec * 80 msec
使用的主链路是 10.10.10.0/30。
如果关闭 R1 上的串行端口 1/0 以测试故障切换,则预期 R1 会将浮动静态路由安装到本地局域网 172.31.10.0,并且 R2 通过 10.10.20.1 将浮动静态路由安装到 0.0.0.0。并且预期流量会流过备份链路。
R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#interface serial1/0
R1(config-if)#shutdown
R1(config-if)#end
R1#
但是,局域网 172.31.10.0/24 的静态路由仍保留在 R1 的路由表中:
R1#show ip route
Codes: L - local, 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, H - NHRP, l - LISP
a - application route
+ - replicated route, % - next hop override
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 3 subnets, 3 masks
S 10.0.0.0/8 [1/0] via 192.168.10.2
C 10.10.20.0/30 is directly connected, Serial2/0
L 10.10.20.1/32 is directly connected, Serial2/0
172.31.0.0/24 is subnetted, 1 subnets
S 172.31.10.0 [1/0] via 10.10.10.2
192.168.10.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.10.0/30 is directly connected, Serial3/0
L 192.168.10.1/32 is directly connected, Serial3/0
R1#show ip route 172.31.10.0
Routing entry for 172.31.10.0/24
Known via "static", distance 1, metric 0
Routing Descriptor Blocks:
* 10.10.10.2
Route metric is 0, traffic share count is 1
R1#show ip route 10.10.10.2
Routing entry for 10.0.0.0/8
Known via "static", distance 1, metric 0
Routing Descriptor Blocks:
* 192.168.10.2
Route metric is 0, traffic share count is 1
来自主机的 ping 操作和跟踪路由不再起作用:
host#ping 10.100.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.100.1.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
host#traceroute 10.100.1.1
Type escape sequence to abort.
Tracing the route to 10.100.1.1
VRF info: (vrf in name/id, vrf out name/id)
1 172.31.10.2 1 msec 1 msec 1 msec
2 * * *
3 * * *
4 * * *
5 * * *
6 * * *
7 * * *
8 * * *
9 * * *
10 * * *
11 * * *
…
浮动静态路由没有安装在 R1 上,并且主静态路由仍然位于 R1 的路由表中,即使串行端口 1/0 链路已关闭。发生这种情况的原因是静态路由在本质上是递归的。只要有到达下一跳的路由,就始终将静态路由保留在路由表中。
在这个问题情景中,因为主链路已关闭,您可能会预期 R1 的路由表中已安装管理距离为 250 的浮动静态路由。但是,由于常规静态路由仍保留在路由表中,所以路由表中并未安装浮动静态路由。下一跳 IP 地址 10.10.10.2 成功通过路由表中的静态路由 10.0.0.0/8 递归到 192.168.10.2。
解决方案
在下一跳不能递归到其他静态路由的 R1 上配置静态路由。思科建议您为静态路由同时配置出站接口和下一跳 IP 地址。对于串行接口,指定出站接口即可,因为串行接口是点对点接口。如果出站接口是以太网接口,则同时配置出站接口和下一跳 IP 地址。
以下示例中,为局域网配置静态路由时指定了出站接口:
R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#no ip route 172.31.10.0 255.255.255.0 10.10.10.2
R1(config)#ip route 172.31.10.0 255.255.255.0 Serial1/0
R1(config)#end
R1#show ip route
Codes: L - local, 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, H - NHRP, l - LISP
a - application route
+ - replicated route, % - next hop override
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 3 subnets, 3 masks
S 10.0.0.0/8 [1/0] via 192.168.10.2
C 10.10.20.0/30 is directly connected, Serial2/0
L 10.10.20.1/32 is directly connected, Serial2/0
172.31.0.0/24 is subnetted, 1 subnets
S 172.31.10.0 [250/0] via 10.10.20.2
192.168.10.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.10.0/30 is directly connected, Serial3/0
L 192.168.10.1/32 is directly connected, Serial3/0
从主机到互联网主机的 ping 操作和跟踪路由现在正常运行,并使用备份链路:
R1#show ip route 172.31.10.0
Routing entry for 172.31.10.0/24
Known via "static", distance 250, metric 0 (connected)
Routing Descriptor Blocks:
* 10.10.20.2
Route metric is 0, traffic share count is 1
host#ping 10.100.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.100.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 76/79/80 ms
host#traceroute 10.100.1.1
Type escape sequence to abort.
Tracing the route to 10.100.1.1
VRF info: (vrf in name/id, vrf out name/id)
1 172.31.10.2 1 msec 1 msec 1 msec
2 10.10.20.1 38 msec 39 msec 40 msec
3 192.168.10.2 80 msec * 80 msec
结论
思科强烈建议您在配置静态路由时指定出站接口和下一跳 IP 地址。如果出站接口是点对点类型的链路(例如,串行链路),则不需要指定下一跳 IP 地址。