RIPv2: 広告における奇妙なルール

RIPv2: 広告における奇妙なルール

Linux 上の Quagga の現在のバージョンでは、RIPv2 経由で近隣ルーターに何らかのルート情報が通知されるのを抑制できるルールがあることがわかりました。

一枚の画像は千の言葉よりも価値がある

ルータ r1 がインターフェース 'nic0' を介して別のルータ r2 に接続し、r1 に別のネットワーク 'net1' に接続する別のインターフェース 'nic1' がある場合、r1 は、そのネイバー r2 に 'net1' へのルートをアドバタイズしようとします。ネットワーク (net0 とします) は、r1 と r2 を接続するネットワーク (たとえば 10.3.1.32/27) であり、ネットワーク 'net1' は、たとえば 10.3.1.0/24 です。

この場合、Quagga の RIPv2 プログラムが内部的にエントリを抑制してドロップするため、10.3.1.0/24 (nic1 経由) のルート エントリは r2 に送信されません。

Quagga の RIPv2 のソース コードを調べたところ、次の規則が原因であることがわかりました。10.3.1.0/24 のネットワーク プレフィックスは 10.3.1.32/27 のネットワーク プレフィックスに含まれています。つまり、10.3.1.0 の左端の 24 ビットは、10.3.1.32 の左端の 27 ビットの部分文字列です。

しかし、なぜこのようなルールがあるのか​​理解できません。これは RIPv2 標準で定義されているのでしょうか、それとも Quagga の単なる癖なのでしょうか? 私の理解では、net0 と net1 の重複は有効であり、ルーティングの「最長ネットワーク プレフィックス マッチング ルール」により問題にはならないはずです。また、ルータ r2 は、r1 経由で到達できるより大きなネットワーク net1 (net0 と比較して) が存在することを認識する必要があります。このルート情報が Quagga によって抑制されている場合、r2 はそれを認識せず、net1 のホストは r2 側から net0 にアクセスできません。

それを知っている人はいますか?

ありがとう、ウッディ

答え1

10.3.1.0/24 ネットワークが R1 に直接接続されている場合は、問題が発生する可能性があります。この場合、R1 の両方のインターフェイスで IP アドレスが重複しています。私は Linux の専門家ではありませんが、これは Cisco ルーターではサポートされていないことは知っています (他のルーター/ファイアウォールでもサポートされていないことは確かです)。

ネットワークが R1 に直接接続されていない場合は、ネットワーク内に 3 番目のルータが存在する必要があります。これを R0 と呼びます。R0 は 10.3.1.0/24 ネットワークに直接接続されており、他のネットワーク (例: 172.16.0.0/24) を介して R1 に接続します。その場合、セットアップは問題なく動作するはずです。私はこれを Cisco ルータでテストしました。

      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 範囲を処理できないのでしょう。

関連情報