最長一致検索(ロンゲストマッチ)

複数のネットワークアドレスを集約して集約ルートをルーティングテーブルに登録すると、実際のネットアークアドレス/サブネットマスクと集約ルートのネットワークアドレス/サブネットマスクが異なります。

最長一致検索(ロンゲストマッチ)によって、パケットをルーティングするためのルート情報を検索するので、実際のネットワークアドレス/サブネットマスクとルーティングテーブル上のルート情報のネットワークアドレス/サブネットマスクが異なっていても問題ありません。

図 集約ルートによるルーティング

最長一致検索によるルート情報の検索は、宛先IPアドレスとルート情報のネットワークアドレスについて、サブネットマスク分のビットが一致しているかをチェックしています。具体的には、パケットの宛先IPアドレスとルート情報のサブネットマスクの論理積を計算します。その結果がルート情報のネットワークアドレスと同じであれば、そのルート情報をパケットのルーティングに利用することができます。つまり、宛先IPアドレスがルート情報のネットワークアドレスの範囲に含まれているかどうかをチェックしています。

そして、該当するルート情報が複数ある場合、サブネットマスクのビット数が最も多いルート情報を利用して、パケットをルーティングします。

レイヤ2スイッチで宛先MACアドレスからMACアドレステーブルのエントリを検索するときには、完全一致検索です。

最長一致検索の例

具体的に次のようなルーティングテーブルで考えてみましょう。

ネットワークアドレス サブネットマスク
10.2.0.0 /24
10.2.1.0 /24
10.2.2.0 /24
10.2.3.0 /24
10.2.0.0 /22
0.0.0.0 /0
このルーティングテーブルの例は、ネクストホップなどは省略して、ネットワークアドレスとサブネットマスクのみにしています。

このようなルーティングテーブルを持つルータに、宛先IPアドレスとして10.2.2.100が指定されているパケットが届いたとします。各ルート情報のサブネットマスクと宛先IPアドレスの論理積を計算し、ネットワークアドレスと比較します。

図10.2.0.0/24のルート情報との比較

図 10.2.1.0/24のルート情報との比較

図 10.2.2.0/24のルート情報との比較

図 10.2.3.0/24のルート情報との比較

図 10.2.0.0/22のルート情報との比較

図 0.0.0.0/0のルート情報との比較

これを見ると、宛先IP10.2.2.100のパケットをルーティングするために、以下の3つのルート情報を利用できます。

  • 10.2.2.0/24 (この範囲内に宛先IP 10.2.2.100が含まれている)
  • 10.2.0.0/22 (この範囲内に宛先IP 10.2.2.100が含まれている)
  • 0.0.0.0/0 (この範囲内に宛先IP 10.2.2.100が含まれている)

この3つのルート情報の中で実際に宛先IP10.2.2.100のパケットをルーティングするために利用するのは、サブネットマスクが最も長い10.2.2.0/24のルート情報です。

サブネットマスクが短くなっている集約ルートは広い範囲のネットワークを示していますが、個別のネットワークを識別できないおおざっぱなルート情報です。そして、サブネットマスクが長いルート情報はより詳細なルート情報となります。最長一致検索を簡単に言えば、おおざっぱなルート情報と詳細なルート情報がある場合は、詳細なルート情報にしたがってパケットをルーティングするということです。

ルート情報を地図にたとえると

ルート情報を地図にたとえると、集約ルートは縮尺が小さい地図です。縮尺が小さい地図は、広い範囲をカバーしていますが、建物や道など詳細がわかりません。縮尺が大きくなると、カバーする範囲は狭くなりますが、建物や道の詳細までわかります。最長一致検索は、目的地に行くために縮尺が小さい地図よりも縮尺が大きいより詳細な地図を使うのと同じようなことです。

たとえば、新宿駅から新宿御苑に行きたいときは、以下のどちらの地図を使いますか?当然、縮尺が大きい地図1ですよね。

地図1 新宿駅から新宿御苑(Google Mapより)

地図2 新宿駅から新宿御苑(Google Mapより)

どちらの地図にも、目的地となる新宿御苑は載っています。でも、縮尺が小さい地図では、新宿御苑までの細かな経路がわかりずらいです。縮尺が大きい地図のほうが、より詳細な地図で建物や道の名前などが詳しく載せられているので目的地の新宿御苑へ到達しやすいでしょう。

ルーティングの場合も同じように考えてください。宛先IPアドレスを含むルート情報が複数ある場合には、より詳細なサブネットマスクが長いルート情報を優先します。

デフォルトルートは「最後の手段」

デフォルトルートは「Last Resort(最後の手段)」と呼ばれることがあります。デフォルトルートはあらゆるネットワークを集約している最も極端な集約ルートです。言い換えると、最も大雑把なルート情報です。

前述の例で考えたように、最長一致検索によって、デフォルトルートはどんなIPアドレスであっても一致するルート情報です。宛先IPアドレスがどのようなアドレスであったとしてもサブネットマスク「0.0.0.0」との論理積をとると、「0.0.0.0」です。そのため、必ずデフォルトルートのネットワークアドレス「0.0.0.0」と一致することになります。

ただし、いつでもデフォルトルートを利用するわけではありません。他に利用できるルート情報がない場合だけの最後の手段としてデフォルトルートを利用することになります。

なお、デフォルトルートを地図にたとえると、世界地図のようなイメージです。

図 デフォルトルートのイメージ(Google Mapより)

関連記事

関連記事

IPルーティングのキホン