有時候,我們需要為路由器配置一些靜態路由來指導轉發,配置的語法為: ip route <destination_network> <destination_mask> <next hop>,這里介紹兩種典型的靜態路由使用場景:遞歸靜態路由和直連靜態路由。
以如下的拓撲為例:
配置端口 ip 信息:
R1-f0/0-10.0.0.1/24
R1-f0/1-1.0.0.1/24
R2-f0/0-1.0.0.2/24
R2-loop1-100.0.0.1/24
R2-loop2-200.0.0.1/24
我們為R1配置一條去往100.0.0.0/24網段的靜態路由:ip route 100.0.0.0 255.255.255.0 1.0.0.2
路由器轉發ip數據包需要知道出端口和下一跳ip地址,現在R1的路由表如下(C - connected, S - static):
C 10.0.0.0/24 f0/0
C 1.0.0.0/24 f0/1
S 100.0.0.0/24 1.0.0.2
現在如果要轉發一個去往100.0.0.1目的網絡的數據包,路由器將會做如下查詢:
lookup1:如何到達100.0.0.1 ?通過最長匹配,靜態路由告訴路由器要想到達100.0.0.0/24網段,要先到下一跳ip 1.0.0.2
lookup2:如何到達1.0.0.2 ?通過最長匹配,第二條直連路由告訴路由器要想到達1.0.0.0/24網段,只需要從f0/1端口發送出去
像這種需要經過2次及以上查詢路由表的,可以稱為遞歸查詢,路由器足夠智能,能夠通過ARP協議識別其直連網絡的ip,在實際的路由器將會是這樣:
C 10.0.0.0/24 f0/0
C 1.0.0.0/24 f0/1
S 100.0.0.0/24 f0/1 1.0.0.2
接下來,我們為 R1 配置第二條靜態路由: ip route 200.0.0.0 255.255.255.0 100.0.0.1
為了轉發去往200.0.0.1目的網絡的數據包,路由器將會做如下查詢:
lookup1:要到達 200.0.0.1所在的網段 200.0.0.0/24 ,先到達其下一跳ip 100.0.0.1
lookup2:要到達 100.0.0.1所在的網段 100.0.0.0/24, 先到達其下一條ip 1.0.0.2
lookup3:要到達 1.0.0.2所在的網段 1.0.0.0/24,直接從其 f0/1端口轉發出去
總結:如果路由器為了找到直接的出端口和下一跳ip,需要查找其路由表超過一次,就可以看作是遞歸路由查詢,這樣的靜態路由被稱為遞歸靜態路由。遞歸路由查詢過程比較耗費計算資源,在大規模網絡中應避免。