簡介
本文件說明靜態路由,以及使用問題情境示範適合指定連線至下一個躍點 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),因為路由器會將此類目的地全部視為直接連線到乙太網路 0。此靜態路由類型(尤其如果其受到許多封包用於多個不同的目的地子網路)可能會導致高處理器使用率和非常大量的 ARP 快取(以及記憶體配置失敗)。因此,不建議使用這種靜態路由。
在直接連線的介面上指定下一個躍點位址時,路由器不會對每個目的地位址執行 ARP。範例為 ip route 0.0.0.0 0.0.0.0 Ethernet0 192.168.1.1。您僅指定直接連線的下一個躍點位址,但是基於本文件中說明的原因,我們建議不要使用這種方式。您不需要指定直接連線的下一個躍點位址。但是可以指定遠端下一個躍點位址,以及前往遠端下一個躍點遞迴的介面。
如果具備下一個躍點的介面可能會發生故障,而且下一個躍點會透過遞迴路由而變成可連線,則請同時指定下一個躍點 IP 位址,以及可用來找到下一個躍點的替代介面。例如,IP route 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 之目的地網路的備用或備援路徑。此情境的問題為主要連結中斷時,浮動靜態路由從未安裝於路由表。
以下是 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 則是透過 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#
但是,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 位址。