| | |

Dynamic Routing - RIP

Dynamic Routing

相鄰的 router 之間互相交換網段資訊、連線資訊 ... 等資訊,稱為 dynamic routing,而在 router 上處理這一類工作的 process,就稱為 routing daemon。

routing protocol  還可以根據是否在同一個 AS(Autonomous System) 中來分類,分別是:

  • IGP (Interior Gateway Protocol)
    包含 RIP(Routing Information Protocol)、EIGRP、OSPF(Open Shortest Path First Protocol)、IS-IS ... 等等。
  • EGP (Exterior Gateway Protocol)
    包含 EGP、BGP(Border Gateway Protocol) ... 等等。

Routing Information Protocol

RIP message 是包在 UDP datagram 中傳遞的,以下是傳遞 RIP 訊息的 UDP datagram 格式:

接著是 RIP message 本身的格式:

其中 RIP message 有幾個部份需要注意的:

  • command
    1 = request
    2 = reply
  • version
    是版本不同而不同,RIP = 1,RIPv2 = 2。
  • address family
    此欄位的值永遠為 2,而其他框起來的部份(共 20 bytes)則共同組成一個 IP address 與 metric 資訊。

一個 RIP 訊息最多就僅能帶 25 個 IP address 與 metric 資訊。
運作方式
RIP 所使用的是 UDP port 520,運作的流程如下:
  1. Initialization
    首先會偵測 router 上的介面是否啟用,接著會從啟用的介面送出 request 封包,請求其他 router 將其完整的 routing table 資訊送過來。
    而 request 封包中的 command = 1,address family = 0,metric = 16。
  2. Request received
    router 接收到 request 的封包後,回傳 routing table 資訊給請求者;或是根據封包中所請求的位址給予相對應的 routing 資訊。
  3. Response received
    請求者收到回應,更新 routing table。
  4. Regular routing updates
    接著 router 每 30 秒會將自己的 routing table 資訊送給相鄰的 router。
  5. Triggered updates
    當設定有改變時,就可以發送訊息給鄰近的 router 進行修改。

每個 router 都有其 timeout 的預設值,以三分鐘為例,就表示有 6 次 router advertisement message 沒有收到,因此此時會將 metric 設定為 16,表示此 router 已經不存在,將其刪除。
但沒辦法避免的,使用 RIP 的確會發生 routing table 更新延遲而發生網路不夠穩定的情況。
Metric 的意義
metric 在 RIP 是用來紀錄封包傳遞時,會經過的 router 次數(hop count),而直接連接網路介面的 hop count 為 1,以下用圖來說明:

若是 R1 要到 N2,metric = 1
若是 R1 要到 N3,metric = 2
若是 R2 要到 N2,metric = 1
若是 R2 要到 N1,metric = 2
RIP 的問題所在
從上面運作的原理,其實就可以大概推測出一些問題的端倪了,大概有以下幾點:

  1. hop count 最大是 15,這到 internet 上就不是那麼適用了。
  2. RIP 無法處理 subnet 的定址資訊。
  3. 不論是 router 故障或是從故障中復原,要讓網路上的其他 router 知道以更新 routing table,需要花過多的時間。

RIP version 2
基本上 RIPv2 並沒有改變原先 RIP 運作的模式,而是將原本在 RIP message 中沒有用到的欄位拿來使用而已,以下是 RIPv2 message 的格式:

不同於 RIP 的欄位說明如下:

  • routing domain
    辨識此封包屬於哪個 routing daemon(儲存 process number) 之用,因此表示可以同時有多個 routing daemon 同時處理 RIPv2 的封包。
  • route tag
    用來支援 EGP 之用,儲存 AS(Autonomous System) number。
  • subnet mask
    對應上面的 IP address,以支援 subnet 的處理。

另外要提的是,RIPv2 還支援了簡單的認證功能,只要 address family 設定為 0xFFFFF,且 route tag 的值為 2,往下的 16 個 bits 就是儲存明文密碼的地方。
不僅如此,RIPv2 還支援 multicast,如此一來就不用使用 broadcast 來減少網路流量了!

0 Comments:

Post a Comment




Copyright 2006 | Andreas02v2 by GeckoandFly and Anderssauro
Nenhum conteúdo desse blog pode ser reproduzido sem prévia autorização. Os Populares