【ネットワーク基礎】サブネットマスクとルーティング
はじめに
ルーターはIPパケットについているIPアドレスを元に最適な経路を選び、パケットを正しく転送します。このとき、ルーターはIPアドレスだけで経路を判断していません。それに対応するサブネットマスクも使って判断しています。つまり、サブネットマスクとルーティングテーブルは密接に関係しています。今回の記事では、これらの関係性についてまとめていきます。
ルーティングテーブルとサブネットマスクの関係
ルーティングテーブル(経路表)とは、ルーターがどの宛先ネットワークに、どの経路で転送すべきかを記録した表です。このルーティングテーブルには、宛先ネットワーク・サブネットマスク・ゲートウェイ・インタフェース・メトリックが表記されています。
イメージ
※https://ascii.jp/elem/000/000/592/592317/ より画像引用
この「宛先ネットワークアドレス + サブネットマスク」が、どの範囲のIPアドレスを指しているかを表しています。
宛先ネットワークアドレスは、特定のネットワークの先頭のIPアドレスを示し、サブネットマスクはそのネットワークの範囲(どれだけのIPアドレスがそのネットワークに属するか)を示します。この組み合わせによって、特定のIPアドレスがどのネットワークに属するのかが明確になります。
サブネットマスクがあることによって、IPアドレスのネットワーク部とホスト部を区別することができ、ルーターは、宛先IPアドレスに対してルーティングテーブルの各エントリとビット単位で比較し、マッチするネットワークを探すことができます。
ルーターはどのようにサブネットマスクを使って経路を決定するまでの流れ
ステップ① ビット単位でAND演算
ルーターは、宛先IPアドレスに対してルーティングテーブルの各エントリでAND演算を行ないます。
例:宛先IPが 192.168.10.123 で、ルーティングテーブルに以下がある場合
宛先ネットワーク:192.168.10.0
サブネットマスク:255.255.255.0(CIDRでは /24)
ルーターは以下のように比較します:
宛先IP : 11000000.10101000.00001010.01111011 (192.168.10.123)
サブネットマスク : 11111111.11111111.11111111.00000000 (255.255.255.0)
AND演算結果 : 11000000.10101000.00001010.00000000 (192.168.10.0)
結果がルーティングテーブルの「宛先ネットワーク」と一致すれば、その経路がマッチします。
ステップ② 最長一致(Longest Prefix Match)
複数のエントリにマッチした場合、サブネットマスクが長い(=より具体的な範囲、ネットワーク部分を構成するビット"1"が多い)方が優先されます。
例
宛先ネットワーク | CIDR | 経路 |
---|---|---|
192.168.0.0 | /16 | A |
192.168.10.0 | /24 | B |
宛先が 192.168.10.123 のとき、/24の方が具体的なのでBが選ばれます。
サブネットの違いとルーティングの最適化
サブネットの設計によって、ルーティング効率が変わります。
・サブネットマスクが長い場合:小さなネットワーク単位で分割される
・サブネットマスクが短い場合:大きなネットワークをひとまとめに扱う
サブネットマスクが長い(細かく分割されたサブネット)場合は、ルーターのルーティングテーブルに多数の経路が必要になる可能性があります。
対して、サブネットマスクが短い(広いサブネット)場合は、経路をまとめて処理でき、ルーティングテーブルのエントリ数を減らして効率化することができます。エントリ数を減らすことで、ルーターがルートを検索する際の処理負荷が軽減されます。
まとめ
ネットワークが複雑になるほど、適切なサブネット設計とルーティングテーブルの整理が重要になります。ルーターの動作原理を理解することで、より効率的で拡張性のあるネットワークを構築できるようになるでしょう。
最後までお読みいただき、ありがとうございました。
参考・画像引用元URL
Discussion