OSPF 怎麼運作:鄰居、LSA、SPF
OSPF 的設定只有兩三行,但它背後做的事情決定了所有考題的答案。
約 16 分鐘
三個資料庫
| 資料庫 | 指令 | 內容 |
|---|---|---|
| 鄰居表 Neighbor Table | show ip ospf neighbor | 我認識哪些鄰居、關係到哪個階段 |
| 拓樸資料庫 LSDB | show ip ospf database | 整個區域的完整地圖(區域內所有路由器都一樣) |
| 路由表 Routing Table | show ip route ospf | 跑完 SPF 演算法後選出的最佳路徑 |
流程是:建立鄰居 → 交換 LSA 建出相同的 LSDB → 各自跑 Dijkstra SPF 演算法 → 把最佳路徑放進路由表。
鄰居關係的建立條件
這是本章最重要的一段。兩台路由器要成為 OSPF 鄰居,以下每一項都必須一致:
| 必須一致的項目 | 不一致的後果 |
|---|---|
| Area ID(區域編號) | 鄰居建不起來 |
| 子網路與遮罩(必須同網段) | 鄰居建不起來 |
| Hello 與 Dead 間隔 | 鄰居建不起來 |
| 驗證(authentication)設定與密碼 | 鄰居建不起來 |
| Stub 區域旗標 | 鄰居建不起來 |
| MTU | 卡在 EXSTART / EXCHANGE 狀態 |
鄰居狀態機
Down ↓ 收到對方的 Hello Init 我聽到你了,但你還沒聽到我 ↓ 對方的 Hello 裡有我的 Router ID 2-Way 雙向通了。在多重存取網路上,這裡選 DR/BDR ↓ ExStart 協商誰先送資料庫描述(比 Router ID) ↓ ← MTU 不合會卡在這裡 Exchange 交換 DBD 摘要 ↓ Loading 針對缺的部分請求詳細 LSA ↓ Full LSDB 完全同步 ★ 正常狀態
DR 與 BDR
在多重存取網路(乙太網路)上,如果每台路由器都跟每台建立完整鄰接,n 台會產生 n(n−1)/2 個關係,太浪費。所以選出一台 DR(Designated Router)當集散中心,一台 BDR 當備援,其他人(DROTHER)只跟這兩台講話。
| 選舉規則 | 說明 |
|---|---|
| ① 優先權大的贏 | 預設 1。設成 0 表示永不參選 |
| ② 優先權相同 → Router ID 大的贏 | 注意是大的贏 |
| ③ 不可搶佔(non-preemptive) | 選完之後,即使來了更高優先權的也不會換 |
Router ID 怎麼決定
- 有
router-id指令 → 用它(實務與考試都建議手動指定) - 否則 → 用最大的 Loopback 介面 IP
- 否則 → 用最大的實體介面 IP(必須是 up 的)
OSPF Cost 的算法
Cost = 參考頻寬 ÷ 介面頻寬,預設參考頻寬是 100 Mbps。
| 介面速度 | 預設 Cost |
|---|---|
| 10 Mbps | 10 |
| 100 Mbps | 1 |
| 1 Gbps | 1(無條件進位,最小為 1) |
| 10 Gbps | 1 |
立即測驗這一節(7 題)