共用方式為


IP 路由表:Cable Guy – 2001 年 12 月

本頁索引


Bb878129.arrowdn(zh-tw,TechNet.10).gif IP 路由表的內容
Bb878129.arrowdn(zh-tw,TechNet.10).gif 路由判定程序
Bb878129.arrowdn(zh-tw,TechNet.10).gif 下個躍點的位址和介面的判定程序
Bb878129.arrowdn(zh-tw,TechNet.10).gif 其他詳細資訊



作者:Cable Guy

所有執行任何版本 Windows 以及所附 TCP/IP 通訊協定的電腦,一律採用 IP 路由表。IP 路由表專門儲存目的地以及連接它們之方式的資訊。下面我們將列出一系列以節點設定為根據的預設項目。您可以利用 TCP/IP 公用程式來新增項目,也可以透過與路由器的互動動態地新增項目。

在轉送 IP 封包時,可以使用 IP 路由表來判定下列各項:

  1. 下個躍點的 IP 位址

    如果採直接傳遞 (目的地是相鄰的節點),則下個躍點的 IP 位址是封包中的目的地位址。如果採間接傳遞 (目的地不是相鄰的節點),那麼下個躍點的位址則是路由器位址。

  2. 下個躍點的介面

    下個躍點的介面代表轉送封包用的實體介面 (例如,網路介面卡) 或邏輯介面 (例如,通道介面)。

只要下個躍點的位址和介面決定之後,封包就會傳送到「位址解析通訊協定」(ARP,Address Resolution Protocol)。如果是採用像乙太網路和 Token Ring 等 LAN 技術,ARP 會嘗試解析下個躍點位址的連結層位址 (又稱為媒體存取控制 [MAC] 位址),然後用下個躍點的介面來轉送封包。

IP 路由表的內容

下面是一般 IP 路由表項目的欄位:

  • 目的地

    目的地可以是 IP 位址,也可以是以類別為根據、具有子網路或具有超級網路的網路 ID。在 Windows 2000 IP 路由表當中,本欄稱為 [網路目的地]。

  • 網路遮罩

    位元遮罩的用途,是比對目的地 IP 位址,在 [目的地] 欄位中找出相符的值。在 Windows 2000 IP 路由表當中,本欄稱為 [網路遮罩]。

  • 下個躍點

    封包要轉送至的 IP 位址。在 Windows 2000 IP 路由表當中,本欄稱為 [閘道]。

  • 介面

    轉送 IP 封包所用的網路介面。

  • 公制

    代表路由成本的數值,讓使用者得以從眾多通往同一個目的地的路由當中,選出最好的路由。公制最常見的用途,是指出通往目的地之路由中的躍點數 (所要橫跨的連結或路由器數目)。

路由表項目可用來儲存下列幾種類型的路由:

  • 直接連接的網路路由

    節點直接連接之子網路的路由。這類路由的 [下個躍點] 欄位可以留空,也可以包含該子網路介面的 IP 位址。

  • 遠端網路路由

    跨越各路由器、不直接連接節點之子網路的路由。遠端網路路由的 [下個躍點] 欄位值,是本機路由器的 IP 位址。

  • 主機路由

    通往特定 IP 位址的路由。主機路由可以讓每一個 IP 位址產生路由。主機路由的網路 ID 是特定的 IP 位址,網路遮罩是 255.255.255.255。

  • 預設路由

    預設路由是在找不到特定的網路或主機路由時,所採用的路由。預設路由目的地是 0.0.0.0,其網路遮罩是 0.0.0.0。預設路由的下個躍點位址,通常是該節點的預設閘道。

路由判定程序

IP 是利用下述程序,判定要用哪一個路由表項目進行轉送:

路由表中的每一個項目,都要在目的地 IP 位址和 [網路遮罩] 欄位之間,執行位元邏輯 AND 作業。其結果將與該項目的 [目的地] 欄位比較,找出相符的部份。

IP 在路由的目的地 IP 位址和網路遮罩之間執行位元邏輯 AND 的方法,是將目的地 IP 位址當中的每一個位元,與子網路遮罩當中對應的位元逐一比較。如果兩邊的位元都是 1,則結果位元為 1;否則結果為 0。位元邏輯 AND 作業的結果,將根據子網路遮罩定義的方式而定,如下所示:

  • 子網路遮罩中每一個設為 1 的位元,它在結果當中的對應位元是從目的地 IP 位址複製過來。
  • 而子網路遮罩中每一個設為 0 的位元,它在結果當中的對應位元則設為 0。

判定 IP 位址設定的 IP 網路 ID,就是執行位元邏輯 AND 的一個好例子。如果要判定 IP 網路 ID,在指派的 IP 位址及其子網路遮罩之間,執行位元邏輯 AND 作業。得出的結果就是 IP 網路 ID。

比方說,在 IP 位址 192.168.98.112 和子網路遮罩 255.255.255.0 之間,執行位元邏輯 AND 作業的結果如下:

  • 前 24 個位元相當於子網路遮罩的 "255.255.255" 部份,它是從目的地 IP 位址的對應位元複製而來,因此前三個八位元資料組是 192.168.98。
  • 而最後八位元資料組相當於子網路遮罩的 "0" 部份,它的對應位元設為 0,因此最後一個八位元資料組是 0。

因此,192.168.98.112 AND 255.255.255.0 的結果是 192.168.98.0。

編譯相符路由的清單。然後從中選出相符率最高的路由 (亦即,在子網路遮罩中,有最多位元被設為 1 的路由)。相符率最高的路由,是目的地 IP 位址最專屬的路由。如果有好幾個相符率最高的路由出現 (例如,通往同一個網路 ID 的路由),則路由器會使用最低公制來選擇最佳路由。如果有好幾個最高相符率的路由都具備最低公制,則節點便採隨機方式選取路由表項目來使用。

路由判定程序的結果,是從路由表中選擇一個路由。如果無法選出路由,IP 便會告訴您發生路由錯誤。如果是傳送主機,會指出錯誤是發生於內部對高層通訊協定 (如 TCP 或 UDP) 的 IP 路由錯誤。如果是路由器,則會傳送「ICMP Destination Unreachable-Host Unreachable」訊息給傳送主機,並且捨棄封包。

下個躍點的位址和介面的判定程序

在路由表中判定用來轉送封包的單一路由之後,接下來就是以下述程序,判斷下個躍點的位址和介面:

  • 如果 [下個躍點] 欄位中的位址是空白,或者與指派給轉送節點之介面的位址一樣,則:

    下個躍點的位址是 IP 封包的目的地 IP 位址。

    下個躍點的介面,則是設定為 [介面] 欄位所指定的介面。

  • 如果 [下個躍點] 欄位中的位址不是指派給轉送節點介面的位址,則:

    下個躍點的位址,是設定為該路由 [下個躍點] 欄位中的位址。

    下個躍點的介面,則是設定為 [介面] 欄位所指定的介面。

Windows 2000 的 IP 路由表範例

下表將列出 Windows 2000 主機 (也就是說,不是路由器) 的預設路由表。該主機擁有一個網路介面卡,其 IP 位址為 157.60.136.41,子網路遮罩為 255.255.252.0 (/22),而預設閘道為 157.60.136.1。如果要在執行 Windows 2000 的電腦上檢視 IP 路由表,請在命令提示字元下,輸入 route printnetstat -r

=========================================================================== 介面清單 0x1 ...........................MS TCP 回送介面 0x1000003 ...00 b0 d0 e9 41 43 ......3Com EtherLink PCI =========================================================================== =========================================================================== 現用路由: 網路目的地 網路遮罩 閘道 介面公制 0.0.0.0 0.0.0.0 157.60.136.1 15.60.136.41 1 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 157.60.136.0 255.255.252.0 157.60.136.41 157.60.136.41 1 157.60.136.41 255.255.255.255 127.0.0.1 127.0.0.1 1 157.60.255.255 255.255.255.255 157.60.136.41 157.60.136.41 1 224.0.0.0 224.0.0.0 157.60.136.41 157.60.136.41 1 255.255.255.255 255.255.255.255 157.60.136.41 157.60.136.41 1 預設閘道: 157.60.136.1 =========================================================================== 持續性路由: 無

請注意,此處列了兩個介面。其中一個介面對應至安裝的網路介面卡 (3Com EtherLink PCI),另一個介面則是內部回送介面 (MS TCP 回送介面)。

Windows 2000 IP 路由表是利用 IP 位址來識別該路由 [介面] 欄位中的介面。因此,您可以採用下面這個程序來判定下個躍點的位址和介面:

  • 如果 [閘道] 欄位中的位址,即是指派給轉送節點介面的位址,則:

    下個躍點的位址,是設定為 IP 封包的目的地 IP 位址。

    下個躍點的介面,則是設定為 [介面] 欄位中之位址所指派到的介面。

  • 如果 [閘道] 欄位中的位址不是指派給轉送節點之介面的位址,則:

    下個躍點的位址,是 [閘道] 欄位中的位址。

    下個躍點的介面,則是設定為 [介面] 欄位中之位址所指派到的介面。

這個 Windows 2000 IP 路由表包含下列項目:

  • 第一個項目 – 網路目的地為 0.0.0.0,網路遮罩 (netmask) 為 0.0.0.0 (/0) – 是預設路由。任何一個與 0.0.0.0 進行位元邏輯 AND 作業的目的地 IP 位址,其結果皆為 0.0.0.0。因此,預設路由與任何一個 IP 位址都相符。如果預設路由是相符率最高的路由,那麼下個躍點的位址是 157.60.136.1,而下個躍點的介面,則是被指派 IP 位址 157.60.136.41 的網路介面卡。
  • 第二個項目 – 網路目的地為 127.0.0.0,子網路遮罩為 255.0.0.0 (/8) – 是回送網路路由。只要是傳送到格式為 127.x.y.z 位址的所有封包,下個躍點的位址就會設定為 127.0.0.1 (回送位址),而下個躍點的介面則是被指派位址 127.0.0.1 的介面 (回送介面)。
  • 第三個項目 - 網路目的地為 157.60.136.0,網路遮罩為 255.255.252.0 (/22) – 是一個直接連接的網路路由。如果這個路由是相符率最高的路由,則下個躍點的位址就設定為封包中的目的地位址,而下個躍點的介面,則是設定為被指派 IP 位址 157.60.136.41 的網路介面卡。
  • 第四個項目 -- 網路目的地為 157.60.136.41,網路遮罩為 255.255.255.255 (/32) – 是主機 IP 位址的主機路由。所有傳送到 157.60.136.41 的 IP 封包,其下個躍點的位址都設定為 127.0.0.1,而下個躍點的介面則是回送介面。
  • 第五個項目 -- 網路目的地為 157.60.255.255,網路遮罩為 255.255.255.255 (/32) – 是一個主機路由,對應到類別 B 網路 ID 157.60.0.0/16 的全子網路導向的廣播位址。所有傳送到 157.60.255.255 的 IP 封包,其下個躍點的位址是設定為 157.60.255.255,而下個躍點的介面則是設定為被指派 IP 位址 157.60.136.41 的網路介面卡。
  • 第六個項目 – 網路目的地為 224.0.0.0,網路遮罩為 224.0.0.0 (/3) – 是由此主機所傳送之多點傳送流量的路由。所有的多點傳送封包,其下個躍點的位址是設定為目的地位址,而下個躍點的介面,則是設定為被指派 IP 位址 157.60.136.41 的網路介面卡。
  • 第七個項目 – 網路目的地為 255.255.255.255,網路遮罩為 255.255.255.255 (/32) – 是對應到有限廣播位址的主機路由。所有傳送到 255.255.255.255 的 IP 封包,其下個躍點的位址是設定為 255.255.255.255,而下個躍點的介面,則是設定為被指派 IP 位址 157.60.136.41 的網路介面卡。

下例將告訴您,如何使用這個路由表來判定好幾個不同目的地的下個躍點 IP 位址和介面:

  • 單點傳送目的地 157.60.136.48

    相符率最高的路由,是直接連接之網路 (157.60.136.0/22) 的路由。下個躍點的 IP 位址是設定為目的地 IP 位址 (157.60.136.48),而下個躍點的介面,則是設定為被指派 IP 位址 157.60.136.41 的網路介面卡。

  • 單點傳送目的地 192.168.0.79

    相符率最高的路由是預設路由 (0.0.0.0/0)。下個躍點的 IP 位址是設定為預設閘道位址 (157.60.136.1),而下個躍點的介面,則是設定為被指派 IP 位址 157.60.136.41 的網路介面卡。

  • 多點傳送目的地 224.0.0.1

    相符率最高的路由,是 224.0.0.0/3 路由。下個躍點的 IP 位址是設定為目的地 IP 位址 (224.0.0.1),而下個躍點的介面,則是設定為被指派 IP 位址 157.60.136.41 的網路介面卡。

  • 子網路廣播目的地 157.60.139.255

    相符率最高的路由,是直接連接之網路 (157.60.136.0/22) 的路由。下個躍點的 IP 位址是目的地 IP 位址 (157.60.139.255),而下個躍點的介面,則是設定為被指派 IP 位址 157.60.136.41 的網路介面卡。

  • 單點傳送目的地 157.60.136.41

    相符率最高的路由,是本機指派之 IP 位址 (157.60.136.41/32) 的主機路由。下個躍點的 IP 位址是設定為回送位址 (127.0.0.1),而下個躍點的介面則是設定為回送介面卡。

其他詳細資訊

有關 Windows 2000 中 IP 路由的詳細資訊,請參考下列資源: