跳至內容

路由表

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書

電腦網路中,路由表(routing table)或稱路由擇域資訊庫(RIB, Routing Information Base),是一個儲存在路由器或者聯網電腦中的電子試算表(檔案)或類資料庫。路由表儲存著指向特定網路位址的路徑(在有些情況下,還記錄有路徑的路由度量值)。路由表中含有網路周邊的拓撲資訊。路由表建立的主要目標是為了實現路由協定和靜態路由選擇。

在現代路由器構造中,路由表不直接參與封包的傳輸,而是用於生成一個小型指向表,這個指向表僅僅包含由路由演算法選擇的封包傳輸優先路徑,這個表格通常為了最佳化硬體儲存和尋找而被壓縮或提前編譯。本文將忽略這個執行的詳細情況而選擇整個路徑選擇/傳輸資訊子系統作為路由表來說明。

基本概念

路由表使用了和利用地圖投遞包裹相似的思想。只要網路上的一個節點需要傳送資料給網路上的另一個節點,它就必須要知道把資料傳送到哪。裝置不可能直接連接到目的節點,它需要找到另一個方式去傳送封包。在區域網路中,節點也不知道如何傳送IP包到閘道器。將封包發到正確的位址是一個複雜的任務,閘道器需要記錄傳送封包的路徑資訊。路由表就儲存著這樣的路徑資訊,就如地圖一樣,是一個記錄路徑資訊,並為需要這些資訊的節點提供服務的資料庫。在當代路由構造中將路由表的控制功能和傳輸表的傳輸區分開來[1]

逐跳路由選擇需要所有能到達位址的每個路由表清單,路徑中的下一個裝置位址,下一個轉移位址。假設路由表是一致的,中繼包的簡單演算法是傳送資料到每一個位址。逐跳路由選擇是IP網路層[2]OSI網路層的基本特性,與之不同的是IP端到端和OSI傳輸層的功能。

功能

在路徑選擇的過程中,主機路由器的決策是由一個叫路由表的路徑資料庫輔助決定的。路由表在路由器內部。根據路由協定,主機也可以擁有用於選擇最佳路徑的路由表。主機路由表是網際網路協定中可選的,像已經過時了的IPX協定。各種路由表:

  1. 網路路由:一個在網路中有特定網路ID的路由(路徑)
  2. 主機路由:一個有特定網路位址網路ID主機ID)的路由。主機路由允許智慧化的路由選擇。主機路由通常用於建立用於控制和最佳化特定網路通訊的客製化路由。
  3. 預設路由:一個當別的路由在路由表中未被找到的時候使用的路由。如果一個路由器或終端系統(如裝有Microsoft Windows和Linux的個人電腦),找不到到達目的地的路由時就會使用預設路由。

路由表構造的挑戰

在路由表構造中使用有限的空間去儲存巨量的路徑是最主要的挑戰。在網際網路上,正在使用的位址聚集技術是一種稱為無類別域間路由CIDR)的按位詞頭匹配的方案。

在網路中每個節點都被認為有一個有效的路由表,路由表必須與各種各樣的節點和路徑環一致。這就是逐跳路由模型的主要問題,幾個擁有不一致的路由表的路由可能會導致傳輸的封包進入無窮迴圈。路由環路在歷史上是有災難性的路由選擇,而如今,如何避免路由環路的出現是路由協定的主要設計目標。

路由表的內容

對每組網絡介面(interface),路由表至少會存有下面的資訊:

  1. 網路ID(Network ID, Network number):就是目標位址的網路ID。
  2. 子網路遮罩(subnet mask):用來判斷IP所屬網絡
  3. 下一跳位址/介面(Next hop / interface):就是資料在傳送到目標位址的旅途中下一站的位址。其中interface指向next hop(即為下一個route)。一個自治系統(AS, Autonomous system)中的route應該包含區域內所有的子網路,而預設閘道器(Network id: 0.0.0.0, Netmask: 0.0.0.0)指向自治系統的出口。

根據應用和執行的不同,路由表可能含有如下附加資訊:

  1. 花費(Cost):就是資料傳送過程中通過路徑所需要的花費。
  2. 路由的服務品質
  3. 路由中需要過濾的出/入連接列表

路由表也是一個網路安全的關鍵,像單播可逆路徑傳輸(uRPF)[3]就是一個安全路由表的例子。在這種具有多種變體的技術中,路由器也在路由表中尋找封包的源位址,如果源位址不正確,封包就會顯示出錯或受到攻擊。

參考資料