簡介
本文件說明靜態路由,以及使用問題情境示範適合指定連線至下一個躍點 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的靜態路由絕不會輸入路由表。
慣例
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
對沒有下一個躍點 IP 位址之介面的靜態路由
您可以配置到介面的靜態路由,而不指定下一跳IP地址。這適用於介面是點對點介面的所有情況。如果介面是多路訪問介面(如乙太網介面),則不建議這樣做。僅當介面處於活動狀態時,指向介面的靜態路由才會插入到路由表中。建議不要使用沒有下一跳地址的乙太網介面的靜態路由,因為當靜態路由指向某個介面並且沒有下一跳資訊時,路由器會認為路由範圍內的每台主機都通過介面直接連線。此類靜態路由的示例包括:ip route 0.0.0.0 0.0.0.0 Ethernet0。
通過這種配置,路由器會針對通過預設路由找到的每個目標,在乙太網上執行地址解析協定(ARP),因為路由器認為所有這些目標都直接連線到Ethernet0。這種靜態路由型別,特別是當許多資料包使用這種路由型別到許多不同的目標子網時,會導致處理器使用率高和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 Serial 3/3 192.168.20.1。新增備用介面使靜態路由安裝變得更加確定。
浮動靜態路由範例
以下範例說明如何使用浮動靜態路由,並解說為何使用 static route 命令同時指定傳出介面和下一個躍點位址有其必要。
問題
透過此圖所示的網路組態,主機 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)的靜態路由。一條路由是常規靜態路由,另一條路由是浮動靜態路由,它是LAN上通往目的地網路的備份(redundant路徑)。此情境的問題為主要連結中斷時,浮動靜態路由從未安裝於路由表。
以下是 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 的 Traceroute 會顯示:
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安裝通往本地LAN 172.31.10.0的浮動靜態路由,並希望R2安裝通向0.0.0.0到10.10.20.1的浮動靜態路由。還期望流量通過備份鏈路流動。
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#
但是,LAN 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 和 Traceroute 已無法使用:
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 * * *
…
即使關閉序列連接埠 1/0 連結,浮動靜態路由也不會安裝在 R1 上,而且主要靜態路由仍在 R1 的路由表中。發生這種情況是因為靜態路由的本質為遞迴。只要您具有前往下一個躍點的路由,請務必將靜態路由保留在路由表中。
在此問題場景中,您可能預期,由於主鏈路斷開,因此在R1的路由表中安裝了管理距離為250的浮動靜態路由。但是,由於常規靜態路由仍然保留在路由表中,因此浮動靜態路由沒有安裝在路由表中。下一個躍點 IP 位址 10.10.10.2 已透過路由表中出現的靜態路由 10.0.0.0/8 成功遞迴到 192.168.10.2。
解決方案
在下一個躍點無法遞迴到另一個靜態路由的 R1 上設定靜態路由。思科建議您為靜態路由同時設定傳出介面和下一個躍點 IP 位址。如果為序列介面,由於其介面為點對點介面,因此傳出介面的規格即足夠。如果傳出介面為乙太網路介面,請同時設定傳出介面和下一個躍點 IP 位址。
此範例為使用傳出介面的規格來設定用於 LAN 的靜態路由:
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 和 traceroute 現在可以正常運作,而且會使用備用連結:
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 位址。