RIPv2:廣告中的奇怪規則

RIPv2:廣告中的奇怪規則

在 Linux 上的目前版本的 Quagga 中,我發現有一個規則可以抑制某些路由資訊透過 RIPv2 向鄰居路由器通告。

一張圖勝過千言萬語

如果路由器 r1 透過介面「nic0」連接到另一個路由器 r2,且 r1 有另一個介面「nic1」連接到另一個網路「net1」。然後 r1 希望將到「net1」的路由通告給其鄰居 r2。網路(例如 net0)是連接 r1 和 r2 的網絡,例如 10.3.1.32/27,而網路「net1」是例如 10.3.1.0/24。

在這種情況下,10.3.1.0/24(透過 nic1)的路由條目將不會傳送到 r2,因為 Quagga 中的 RIPv2 程式內部抑制了該條目並將其丟棄。

我檢查了Quagga的RIPv2原始碼,發現是因為一個規則:10.3.1.0/24有一個網路前綴,它包含在10.3.1.32/27的網路前綴中,即最左邊的24位元10.3.1.0的10.3. 1.32的最左邊27位的子串。

但我不明白為什麼會有這樣的規則。它是由 RIPv2 標準定義的還是只是 Quagga 的一個怪癖?根據我的理解,net0和net1之間的重疊是有效的,不應該成為問題,因為路由中的“最長網絡前綴匹配規則”,並且對於路由器r2來說,它確實需要知道存在更大的網絡net1(比較到 net0)可以透過 r1 到達。如果該路由資訊被 Quagga 抑制,r2 將不知道這一點,且 net1 中的主機無法從 r2 端從 net0 存取。

有知道的人嗎?

謝謝,伍迪

答案1

如果 10.3.1.0/24 網路直接連接到 R1,則可能會出現問題。在這種情況下,R1 的兩個介面上都有重疊的 IP 位址。我不是 Linux 專家,但我知道 Cisco 路由器不支援這一點(而且我很確定任何其他路由器/防火牆也不支援它)。

如果網路未直接連接到 R1,則網路中必須有第三個路由器,我們稱之為 R0。 R0 直接連接到 10.3.1.0/24 網絡,並透過其他網絡(例如 172.16.0.0/24)連接到 R1。在這種情況下,設定應該可以正常工作。我已經在思科路由器上對此進行了測試。

      10.0.0.0/8 is variably subnetted, 4 subnets, 4 masks
R        10.3.1.0/24 [120/1] via 172.16.0.101, 00:00:13, Ethernet0/1 (nic1)
C        10.3.1.32/27 is directly connected, Ethernet0/0 (nic0)

也許Quagga——儘管沒有抱怨——也無法在其兩個介面上處理這些重疊的IP範圍。

相關內容