IPプレフィックスはどのようにルーターに渡されますか?


8

最初に、私がすでに知っていることに関するいくつかの背景情報:

IPv4アドレスは、ネットワーク内のノードを識別する32ビットのアドレスです。IPアドレスには、IPアドレスの「ネットワーク」部分を決定するIPプレフィックスがあり、残りは「ホスト」を決定します。

例:

128.208.0.0/24は、最初の24ビットはIPアドレスの「ネットワーク」部分であり、残りの8ビットは指定されたネットワークのホスト用であることを教えてくれます。また、128.208.0.0。指定されたネットワークで使用可能な最小のIPアドレスになります。

今、タンネンバウムは彼の本の中でこう述べています:

プレフィックス長はIPアドレスだけからは推測できないため、ルーティングプロトコルはプレフィックスをルーターに運ぶ必要があります。時々、接頭辞は、「スラッシュ16」と発音される「/ 16」のように、単にその長さで記述されます。接頭辞の長さは、ネットワーク部分の1のバイナリマスクに対応します。このように書き出すと、サブネットマスクと呼ばれます。これをIPアドレスとANDして、ネットワーク部分のみを抽出できます。この例では、サブネットマスクは255.255.255.0です。

だから私の質問は:

1)ルーティングプロトコルはどのようにプレフィックスを伝送しますか?「スラッシュ」部分はどこに保存されますか?

2)これはどういう意味ですか:

これをIPアドレスとANDして、ネットワーク部分のみを抽出できます。この例では、サブネットマスクは255.255.255.0です。

ありがとう。


反対投票者は、この質問が反対投票された理由を明確にできますか?
Koray Tugay

あなたの質問は導入レベルであり、このサイトは専門家を対象としているため、コミュニティがいくつかの反対投票を表明していると思います。逆に言えば、人々はあなたに近い投票をしていません。
クレイグコンスタンティン

英語は母国語ではありません。これはどういう意味ですか:「逆に言えば、人々はあなたに近い投票をしています。」
Koray Tugay 14

私は言うつもりです:人々はあなたの質問を閉じるために投票していません。したがって、一部の人々はそれを好まない(反対投票者)が、人々がそれを閉じるように投票しているほど悪くはない。
クレイグコンスタンティン

@CraigConstantineガットそれのおかげで...はい、あなたは正しい..です
Koray Tugay

回答:


8
  1. ルーティングプロトコルはどのようにプレフィックスを伝送しますか?「スラッシュ」部分はどこに保存されますか?

私はOSPFで可能な限り直接答えます。以下は、隣接関係を形成するためにすべてのインターフェースから送信されたタイプ1のHelloパケットです。

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Version #   |       1       |         Packet length         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Router ID                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Area ID                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Checksum            |             AuType            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       Authentication                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       Authentication                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        Network Mask                           |    <------
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         HelloInterval         |    Options    |    Rtr Pri    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     RouterDeadInterval                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Designated Router                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                   Backup Designated Router                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Neighbor                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                              ...                              |

RFC 2328、A.3.2 Helloパケット

Network Maskフィールドは、そのインターフェイスで使用しているサブネットマスクが移入されます。

CIDR表記は、簡潔にするためにサブネットマスクを短くしたものにすぎません。さらに言えば、サブネットマスクはビット位置の単なる圧縮バージョンです。ポートを設定するたびに10進数で書く必要があると想像してください。

11111111.11111111.11111111.00000000    <---- This would be painstaking
255.255.255.0                          <---- Better, but not optimal
0xffffff00                             <---- Shorter still, but still not optimal
/24                                    <---- Best-case scenario

結局、すべてが同じことになる。したがって、同じデータを表現するこれらの簡略化された方法があることは、理にかなっています。


ネットワークマスク全体が送信されますか?ネットワークのビット数を示す5ビット(1〜31のみが必要)を使用する方が効率的ではないでしょうか。255.0.255.0マスクを定義できることには本当に利点がありますか?
ランチャー、2014

@Cruncher 255.0.255.0は可能ではありません。ワイルドカードマスクのみがこのような不連続なビットを処理できます。RFCは、OSPFパケットでネットワークマスク全体を送信する理由を概説していません。
ライアンフォーリー

これはDHCPパケットですか?
Koray Tugay 14

いいえ、上の例はOSPF Type 1 Helloパケットです。
ライアンフォーリー

@Cruncherワイルドカードマスクは、アクセスリストとNAT処理にのみ使用され、実際には反転サブネットマスクです。
クリス

6

ルーティングプロトコルによって異なります。RIP v1のような古いプロトコルはクラスフルマスクを想定し、マスクをアドバタイズしませんが、RIP v2、OSPF、ISIS、BGPなどの新しいプロトコルはマスクをアドバタイズします。

質問の2番目の部分に対する答え:アドレスのネットワーク部分を判別する、または特定のアドレスが特定のネットワークの一部であるかどうかをテストするには、サブネットマスクを使用してビットごとの論理ANDを実行します。

たとえば、172.16.24.5 / 24のネットワークアドレスを取得するには、次のように、32ビットアドレスの各ビットとマスクをANDします。

10101100 00010000 00011000 00000101 <-172.16.24.5

11111111 11111111 11111111 00000000 <-255.255.255.0


10101100 00010000 00011000 00000000 <-結果:172.16.24.0

結果は、IPアドレスのネットワーク部分(ネットワーク番号とも呼ばれます)です。これは、ルーターとPCがパケットの送信に使用するネットワークを決定するために行うこととまったく同じです。


回答ありがとうございます。255.255.255.0の何が特別なのでしょうか。
Koray

1
実際には、ネットワークとホストマスクの境界が「ドット」の境界にあるため、簡単に使用できます(最後の10進数は常に0です)。そのため、非常に一般的に使用されています。
Ron Trunk

IPに24ビットのプレフィックスがあると想定していますか?
Koray Tugay 2014

私が理解していないのは、例として172.16.24.5/24を指定していて、プレフィックスの長さがすでにわかっているということです。しかし、ルーターはどのようにプレフィックスを知っていますか?プレフィックスがわからない場合、255.255.255.0を使用する必要があることをどのようにして知るのでしょうか。
Koray Tugay 2014

各ルートのルーターアドバタイズには、プレフィックスが付いています(最新のプロトコルの場合)。
Ron Trunk
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.