7. IP 路由
- 7. IP 路由
- 概述
- 7.1 直接傳遞與間接傳遞
- 7.2 IP 路由核心機制
- 7.3 路由表
- 7.3.1 路由表的構成
- 7.3.2 信宿地址采用網絡地址的好處
- 7.3.3 下一跳地址的優勢
- 7.3.4 特殊路由表項
- 7.3.5 路由算法
- 7.4 靜態路由
- 7.4.1 特點
- 7.4.2 自治系統(AS)
- 7.4.3 配置命令
- 7.4.4 問題
- 7.5 動態路由
- 7.5.1 路由算法分類
- 7.5.2 路由協議分類
- 本章要點
7. IP 路由
概述
IP 路由(路由選擇)是為數據報從信源到信宿尋找最佳 / 較佳路徑的過程,核心依據是網絡拓撲結構,通過路由表實現。路由表存在于主機和路由器中,反映局部網絡拓撲,其使用頻率遠高于刷新頻率(路由表由 IP 模塊使用,由路由協議負責建立和刷新)。
7.1 直接傳遞與間接傳遞
數據報從信源到信宿的傳遞分為兩種方式:
- 直接傳遞:數據報直接發送到最終信宿(信源與信宿位于同一物理網絡)。
- 間接傳遞:信源與信宿位于不同物理網絡,數據報需經過中間路由器轉發(由多個中間傳遞組成)。
關系:完整的數據傳遞過程由 “1 次直接傳遞 + 0~ 多次間接傳遞” 構成。
7.2 IP 路由核心機制
- 路由選擇依據:網絡拓撲結構(抽象為 “點 - 線” 模型:點表示路由器,線表示網絡)。
- 表驅動路由:主機和路由器均通過路由表進行路由選擇,路由表反映局部網絡拓撲,所有路由表的集合反映整體拓撲。
- 路由表操作:
- 使用:IP 模塊根據數據報目的 IP 地址和路由表選擇下一跳(高頻操作,每秒可達數百次)。
- 建立與刷新:由專門的路由協議負責(低頻操作,每隔十秒至數十秒一次)。
- 路由表維護:ICMP 可對主機路由表進行重定向;動態路由協議(如 OSPF)負責動態刷新路由表,確保其及時反映網絡結構變化。
7.3 路由表
路由表是主機和路由器中反映網絡拓撲的數據集,核心功能是指明去往某信宿的路徑,由多個字段構成。
7.3.1 路由表的構成
路由表為二維表,每個表項包含以下核心字段:
字段 | 含義 |
---|---|
信宿地址 | 通常為目標網絡的 IP 地址(而非單主機地址,減小路由表規模)。 |
子網掩碼 | 用于提取數據報目的 IP 地址對應的網絡地址(與目的 IP “與” 操作后匹配信宿地址)。 |
下一跳地址 | 數據報通往信宿的 “下一步” 地址(可為路由器 IP 或本地接口,將多個路由器串聯成完整路徑)。 |
輸出接口 | 路由器發送數據報的接口 IP 地址。 |
度量 | 衡量路徑優劣的指標(通常為跳數,即途經路由器數量,取最小值)。 |
7.3.2 信宿地址采用網絡地址的好處
- 減小路由表規模:網絡數量遠少于主機數量,簡化表結構。
- 匹配網絡抽象結構:抽象拓撲中僅關注網絡,不關注單主機。
- 增強適應性:主機增減不影響路由表(信息隱藏)。
- 降低開銷:減少路由表維護和路由選擇的計算量。
7.3.3 下一跳地址的優勢
- 路由表中僅存儲 “下一跳” 而非完整路徑,可:
- 大幅減小路由表規模;
- 消除路徑冗余信息;
- 簡化路由表維護。
7.3.4 特殊路由表項
- 特定主機路由:
- 信宿地址為單主機 IP,子網掩碼為
255.255.255.255
。 - 用途:為特定主機指定特殊路徑(如安全性測試、網絡管控)。
- 信宿地址為單主機 IP,子網掩碼為
- 默認路由:
- 信宿地址和子網掩碼均為
0.0.0.0
(0.0.0.0/0
)。 - 用途:當路由表中無匹配的網絡 / 主機地址時,默認使用此路徑(通常指向自治系統外的出口路由器)。
- 限制:一個路由表最多只能有一條默認路由。
- 信宿地址和子網掩碼均為
7.3.5 路由算法
IP 模塊根據數據報目的 IP 地址和路由表選擇路徑的步驟:
- 提取數據報目的 IP 地址;
- 將路由表中各表項的子網掩碼與目的 IP 進行 “與” 操作,得到目標網絡地址;
- 匹配規則:
- 優先匹配特定主機路由(最長掩碼匹配原則);
- 其次匹配網絡地址;
- 若均不匹配,使用默認路由;
- 若無默認路由,丟棄數據報并發送 “網絡不可達” ICMP 差錯報告。
7.4 靜態路由
靜態路由是通過手工配置建立和維護路由表的方式,適用于小型、拓撲穩定的網絡。
7.4.1 特點
- 路由器初始僅知曉直連網絡,非直連網絡需手工添加路由表項;
- 路由表為本地文件,網絡結構變化時需人工調整。
7.4.2 自治系統(AS)
- 定義:由獨立管理機構控制的一組網絡和路由器的集合,內部拓撲、路由機制自主選擇。
- 靜態路由應用:自治系統內網絡需手工添加到路由表,去往外部的網絡通過默認路由轉發。
7.4.3 配置命令
- Windows 系統(
route
命令):- 添加:
route add 目的網絡 mask 子網掩碼 下一跳 [metric 度量]
- 刪除:
route delete 目的網絡 mask 子網掩碼
- 顯示:
route print
- 選項:
-p
(重啟后保留路由)。
- 添加:
- Cisco 路由器:
- 添加:
ip route 目的網絡 子網掩碼 下一跳/出口接口
- 刪除:
no ip route 目的網絡 子網掩碼 下一跳/出口接口
- 顯示:
show ip route
。
- 添加:
7.4.4 問題
- 大型網絡中手工配置工作量極大;
- 無法動態適應網絡拓撲變化(如鏈路故障);
- 可能產生冗余路徑,增加管理復雜度。
7.5 動態路由
動態路由通過路由協議自動建立和維護路由表,適用于大型、拓撲動態變化的網絡。核心原則是 “最短路徑優先”(以跳數、時延等為度量)。
7.5.1 路由算法分類
- 距離 - 向量算法(V-D 算法):
- 思想:路由器周期性向相鄰路由器廣播 “(信宿,距離)” 序偶(V 為信宿,D 為跳數),根據最短路徑優先原則刷新路由表。
- 優點:簡單易實現。
- 缺點:收斂速度慢(網絡變化后,所有路由器同步拓撲信息耗時久);信息交換量大(每次廣播近完整路由表)。
- 鏈路 - 狀態算法(L-S 算法 / SPF 算法):
- 思想:路由器通過 “鏈路狀態通告(LSA)” 交換鄰接鏈路狀態,構建全局拓撲圖,使用 Dijkstra 算法生成以自身為根的最短路徑樹(SPF 樹),再構造路由表。
- 優點:收斂速度快(局部變化僅擴散相關信息);信息交換量小(僅廣播鏈路狀態變化)。
7.5.2 路由協議分類
動態路由協議分為內部網關協議(IGP)(自治系統內)和外部網關協議(EGP)(自治系統間)。
1. 路由信息協議(RIP)—— IGP,基于距離 - 向量算法
- 核心機制:以跳數為度量(1 跳 = 1 個路由器),最大有效跳數為 15(16 表示不可達)。
- 解決的問題:
- 路由環路:限制最大跳數為 15,避免無限循環。
- 相同距離路徑:先入為主(保留首次收到的路徑)。
- 失效路徑:為路由表項設定時器(180 秒無更新則標記為 “不可達”,120 秒后刪除)。
- 慢收斂(計數到無窮):
- 水平分割 + 毒性逆轉:從某接口收到的路由信息,再從該接口發出時將距離設為 16(不可達),避免環路。
- 觸發刷新:網絡變化時立即廣播更新,加速收斂。
- RIPv1 與 RIPv2 的對比:
特性 | RIPv1 | RIPv2 |
---|---|---|
子網支持 | 不支持(無子網掩碼字段) | 支持(含子網掩碼字段,兼容 VLSM 和 CIDR) |
鑒別機制 | 無 | 支持(明文口令 / 加密鑒別) |
通告方式 | 廣播(255.255.255.255) | 組播(224.0.0.9) |
報文格式 | 無路由標記、下一跳字段 | 含路由標記(區分路由源)、下一跳字段 |
- 報文與封裝:
- 報文類型:請求(類型 1)、響應(類型 2),響應報文含多個(信宿,距離)序偶。
- 封裝:UDP 數據報(端口 520),最大報文長度 504 字節(含 25 個路由項)。
2. 開放最短路徑優先(OSPF)—— IGP,基于鏈路 - 狀態算法
- 核心機制:自治系統劃分為區域(減少路由信息量),主干區域(0.0.0.0)連接所有區域,邊界路由器匯總區域信息。路由器通過 LSA 交換鏈路狀態,構建鏈路狀態數據庫(LSDB),生成 SPF 樹,再構造路由表。
- 關鍵特性:
- 支持服務類型路由(根據數據報 TOS 字段選擇路徑)。
- 可為接口指派費用(基于吞吐率、時延等,影響路徑選擇)。
- 負載均衡(相同費用的路徑平均分配流量)。
- 層次化結構(區域隱藏內部拓撲,支持大規模網絡)。
- 支持多種鑒別機制(不同區域可采用不同方式)。
- 組播通告(減少無關主機開銷)。
- 報文類型:
- 共 5 種,均含 24 字節標準首部(版本、類型、長度等):
- Hello 分組(類型 1):發現 / 維護鄰機關系,周期發送。
- 數據庫描述分組(類型 2):交換 LSDB 概要,同步拓撲信息。
- 鏈路狀態請求分組(類型 3):請求缺失的 LSA 細節。
- 鏈路狀態更新分組(類型 4):泛洪 LSA(核心報文)。
- 鏈路狀態確認分組(類型 5):確認 LSA 接收,保證可靠性。
- 共 5 種,均含 24 字節標準首部(版本、類型、長度等):
- 封裝:直接封裝在 IP 數據報中(協議字段 = 89)。
3. 增強型內部網關路由協議(EIGRP)—— IGP,Cisco 私有
- 核心機制:結合距離 - 向量和鏈路 - 狀態特性,使用擴散更新算法(DUAL) 計算路由。
- 路由表結構:
- 鄰機表:存儲鄰機狀態信息。
- 拓撲表:存儲可行后繼路由(備用次佳路由)。
- 路由表:存儲后繼路由(最佳路由,用于轉發)。
- 報文類型:
- Hello:發現 / 維護鄰機關系。
- Update:發送路由更新信息。
- Query:路由失效且無備用路由時,向鄰機查詢。
- Reply:響應 Query 報文。
- Ack:確認收到報文(通過其他報文承載,或單播 Hello 報文)。
- 封裝:直接封裝在 IP 數據報中(協議字段 = 88)。
4. 邊界網關協議(BGP)—— EGP,基于路徑 - 向量算法
- 核心機制:用于自治系統間交換路由信息,路徑以 “自治系統號(ASN)序列” 表示,支持基于策略的路由(考慮政治、經濟、安全等因素)。
- 報文類型:
- 打開報文(類型 1):建立鄰機關系(TCP 連接建立后發送)。
- 更新報文(類型 2):通告新路由或刪除無效路由(核心報文)。
- 保持活動報文(類型 3):定期發送,維持鄰機連接。
- 通告報文(類型 4):報告錯誤或關閉連接。
- 封裝:通過 TCP 傳輸(端口 179),保證可靠性。
- 防環機制:路由更新時,若路徑中已包含本地 ASN,則拒絕該路徑。
本章要點
- 數據傳遞分為直接傳遞(同一網絡)和間接傳遞(跨網絡,經路由器轉發)。
- 路由表是路由選擇的核心,含信宿地址、子網掩碼、下一跳、輸出接口、度量,特殊表項包括特定主機路由(
255.255.255.255
)和默認路由(0.0.0.0/0
)。 - 靜態路由手工配置,適用于小型穩定網絡;動態路由通過協議自動維護,適用于大型動態網絡。
- 路由算法分為距離 - 向量(如 RIP)和鏈路 - 狀態(如 OSPF),前者簡單但收斂慢,后者復雜但收斂快。
- 主要路由協議:
- RIP(IGP,V-D 算法,跳數度量,適用于小型網絡);
- OSPF(IGP,L-S 算法,區域劃分,適用于大規模網絡);
- EIGRP(Cisco 私有 IGP,DUAL 算法,復合度量);
- BGP(EGP,路徑 - 向量算法,AS 間路由,支持策略路由)。