Day 14 已經認得 O E1、O E2:它們是 OSPF 外部路由。
但知道標籤還不夠。假設兩台 Router 已經是 OSPF 鄰居,我在 R1 加一條 Static Route,R2 為什麼不會自動跟著知道?
因為 R1 自己有這條路,和 R1 把這條路宣告進 OSPF,是兩件事。
今天把外部路由的入口接起來就好,不繼續往所有 LSA 類型展開。
一般 OSPFv2 Area 0
R2 ---------------- R1
10.0.12.2 10.0.12.1
|
本機 Static Route
192.0.2.0/24
R1、R2 的連線網段是 10.0.12.0/30,已設定 OSPF process 1,鄰接狀態已到 FULL。
這時 R1 的 Routing Table 多一條 Static Route,代表它自己有轉送規則;OSPF 不會因此把 R1 整張 Routing Table 自動複製給 R2。
要把這種來源的路由交給 OSPF 宣告,需要設定 Redistribution,也就是路由重分配。
R1 有一條符合條件的外部路由
↓
Redistribution:把它引入 OSPF
↓
R1 扮演 ASBR:外部路由的入口
↓
產生 Type 5 AS-External LSA
↓
R2 收到路由資訊,計算可用路徑
↓
在符合安裝條件時,出現 O E1 或 O E2
ASBR 是 Autonomous System Boundary Router。這裡先記它的工作:把原本不屬於這個 OSPF 內部路由來源的資訊,帶進 OSPF。
不必因為名字有 Autonomous System,就以為一定要先申請公網 ASN、接 Internet 或設定 BGP。把 Static Route 引入 OSPF,也能出現這個角色。
ABR 則是前幾天處理「不同 Area 之間」的角色。兩者不是同義詞,同一台設備也可能同時擔任兩種角色。
先把它讀成一份路由公告:
目的網段:192.0.2.0/24
由誰發起:某一台 ASBR 的 Router ID
外部 metric:多少
metric 類型:E1 或 E2
forwarding address:要往哪個轉送位址走
它不是把外部世界所有線路都畫進來,而是提供到外部目的地的路由資訊。
Type 5 是 LSA 的類型;E1、E2 是外部 metric 的類型。
所以 O E2 不是「由 Type 2 Network LSA 產生的外部路由」。這兩組數字不要混在一起。
Type 5 能跨一般 Area 傳播,但不能直接推成「所有 Area 都收」。Stub、NSSA 有另外的規則;今天只看普通 Area 0。
以下是 Cisco IOS 風格的隔離練習,不是正式網路操作。先確認 R1、R2 已互通、OSPF 鄰居已 FULL,而且沒有既有的 192.0.2.0/24 路由。
R1 也不要有其他 Static Route,避免下面的重分配一起把它們送出去。正式環境應另外用路由政策限制要宣告的前綴。
本篇尚未在 Packet Tracer 跑過。下面是預期觀察項目,實際指令支援與輸出格式依設備版本確認。
在 R1:
configure terminal
ip route 192.0.2.0 255.255.255.0 Null0
end
show ip route 192.0.2.0
這裡故意使用 Null0 建立練習路由,不用再架第三台設備。Null0 會丟棄送進去的封包,不是通往真實主機的出口。
因此這個練習驗證的是「路由資訊如何傳播」,不是「ping 到遠端主機」。
此時預期 R1 有這條 S 路由,但 R2 尚未透過 OSPF 學到它。
在 R1:
configure terminal
router ospf 1
redistribute static metric 20 metric-type 2 subnets
end
這裡明確指定外部 metric 為 20、metric 類型為 E2。subnets 是讓符合條件的子網路由也納入重分配,不是替網路重新切子網。
R1 現在扮演 ASBR,宣告這條外部路由。它自己的原始 Static Route 並不因此被改寫成 O E2。
在 R2:
show ip ospf database external 192.0.2.0
show ip route ospf
第一個問題是:R2 有沒有收到描述這條外部路由的 LSA?
第二個問題是:這條路由最後有沒有裝進 R2 的 Routing Table?
在本例前提成立、且沒有其他更優先來源競爭相同前綴時,預期路由行會類似:
O E2 192.0.2.0/24 [110/20] via 10.0.12.1
這是省略時間與介面欄位的示意,不是實機擷取。
O E2 是 OSPF 外部 Type 2 路由;110 是 Cisco IOS 預設的 OSPF Administrative Distance,20 是剛才指定的外部 metric,10.0.12.1 是這個拓撲中的下一跳。
有 LSA 不等於一定有可用路由。還要考慮到 ASBR/forwarding address 的可達性,以及路由安裝時的其他條件。
在 R1:
configure terminal
router ospf 1
no redistribute static
end
等待收斂後,在 R2 重查 show ip route ospf。在沒有其他宣告來源的前提下,預期那條外部路由會消失;舊 LSA 可能先經過老化撤回,不能要求每個畫面瞬間清空。
R1 自己的 Static Route 則仍然存在,因為剛才關掉的是重分配,不是刪除本機路由。
練習結束,再於 R1 移除剛才新增的練習路由:
configure terminal
no ip route 192.0.2.0 255.255.255.0 Null0
end
這個前後對照,比只背 ASBR 的全名更有用。
先不看答案:
O E2 嗎?Type 5 LSA 和 O E2 裡的 5、2,是不是同一種分類?192.0.2.1 不通,就能判斷這次重分配失敗嗎?ASBR 是入口,Redistribution 是引入路由的動作,Type 5 是一般 Area 中傳遞外部路由資訊的 LSA;最後的 O E1/O E2 才是路由表裡看到的結果。