路由協議和架構/分層路由
分層路由允許將網路劃分為自治路由域。路由域是網路中由同一路由協議例項處理的部分。
屬於一個域的路由器不知道另一個域的確切拓撲,但它們只知道目標列表及其相關成本(有時是虛構的)→ 一個好的選擇是選擇跨越邊界路由器通往目標域的最佳出口路徑。
每個邊界路由器都可以看到它所連線的兩個域
- 當資料包離開域時,它被稱為出口路由器;
- 當資料包進入域時,它被稱為入口路由器。
分層路由引入了一條新的規則來處理與域外目標相關的路由
- 內部目標:如果目標在同一個路由域內,則必須使用“內部”路由協議生成的路由資訊;
- 外部目標:如果目標在另一個路由域內,則必須將流量轉發到最接近的出口路由器,從當前域到目標域,然後後者將負責使用其內部路由資訊將資料包傳遞給目標。
從源到最接近的出口路由器的子路徑和從這裡到最終目標的子路徑分別是最優的,但它們的連線形成的整體路徑不是最優的:給定一個目標,路徑的第一部分(源-邊界路由器)對於遠端域中的所有目標都是相同的。
- 動機
- 互操作性:可以互連由不同路由協議處理的域;
- 可見性:ISP 不希望讓競爭對手瞭解其網路的詳細資訊;
- 可擴充套件性:網路的範圍過大,無法由單個路由協議例項處理,需要進行分割槽
- 記憶體:它排除了有關遠端域精確拓撲的資訊,從而減少了每臺路由器需要儲存在記憶體中的資訊量;
- 彙總:它允許宣佈一個“虛擬”目的地(具有常規成本),將多個“真實”目的地組合在一起(例如,在 IP 網路中,多個網路地址可以聚合到具有更長網路掩碼的網路地址中);
- 隔離:如果在某個域內出現故障或添加了新鏈路,則路由更改不會影響其他域,即遠端域路由器中的路由表保持不變→ 瞬變更少,網路更穩定,收斂更快。
- 實現
分層路由可以透過兩種方式實現(不相互排斥)
如果從邊界路由器開始,無法再透過始終保持在域本身內的路徑到達其所有內部目的地,則該域將被分割槽。

在側面圖形的示例中,由節點 A 傳送的資料包儘快退出路由域 A,但一旦它進入域 B,由於邊界路由器與節點 I 之間的鏈路故障,它將無法到達最終目的地 H。實際上,存在一條穿過另一個邊界路由器的備用路徑通往目的地 H,但無法使用它,因為資料包需要退出域 B 並穿過域 A。
此外,路徑可能是非對稱的:回覆資料包可能會走與查詢資料包不同的路徑,透過不同的邊界路由器→ 資料可能會被接收,但確認它們已接收的 ACK 可能會丟失。
- 解決方案
- 每個域內部的鏈路可以進行冗餘,使其強連通,以避免鏈路故障導致域被分割槽;
- OSPF 協議允許手動配置邊界路由器之間的一種虛擬隧道,稱為虛擬鏈路。
重分發是執行在邊界路由器上的軟體過程,它允許將路由資訊從一個路由域傳輸到另一個路由域。

在側面圖形的示例中,在 RIP 域中瞭解的目的地可以注入到 OSPF 域中,反之亦然。
- 備註
- 重分發命令是單向的→ 可以僅在一個方向上進行選擇性重分發(例如,ISP 不接受客戶宣佈的不可信路由)。
- 重分發也可以在由同一個協議例項處理的域之間執行。
- 透過重分發過程瞭解的路由可以透過路由協議標記為“外部路由”。
一個域中的路由器將知道更廣泛的目標集,即使其中一些目標可能具有“錯誤”(簡化)的拓撲結構:實際上,重分發過程可以
- 保持原始路由的成本,最多由一個係數固定,
- 或者在以下情況下將成本設定為常規值
- 兩種協議使用不同的指標:例如,在“跳數”中瞭解的成本無法轉換為使用“延遲”的另一個成本;
- 將具有不同成本的多個目的地聚合到一個彙總路由中。
| 路由源 | 管理距離 | |
|---|---|---|
| 連線介面 | 0 | |
| 靜態路由 | 1 | |
| 動態路由 | 外部 BGP | 20 |
| 內部 EIGRP | 90 | |
| IGRP | 100 | |
| OSPF | 110 | |
| RIP | 120 | |
當一個目的地被宣佈為兩個域都可達時,這兩個域由具有不同指標的路由協議處理,邊界路由器如何比較成本以確定通往該目的地的最佳路由?每個路由協議都具有由裝置製造商預先分配的內在成本→ 路由器始終選擇具有最低內在成本的協議(即使所選路由可能不是最佳路由)。