最長一致検索(ロンゲストマッチ : longest match)のポイント

最長一致検索(ロンゲストマッチ)の大事なポイントです。

ポイント

  • 最長一致検索とは、ルータ/レイヤ3スイッチがIPパケットをルーティングするためにルーティングテーブルのルート情報を検索する方法です。
  • 宛先IPアドレスと一致するルート情報を検索します。宛先IPアドレスとルート情報のネットワークアドレスについて、サブネットマスク分のビットが一致しているかをチェックしています。
  • 宛先IPアドレスと一致するルート情報が複数ある場合は、サブネットマスクがより長いルート情報を優先します。サブネットマスクが長いルート情報はより詳しいルート情報です。
  • デフォルトルート(0.0.0.0/0)は、どんなIPアドレスにも一致するルート情報ですが、もっともサブネットマスクが短いです。そのため、デフォルトルートは他に利用できるルート情報がないときだけ利用します。

以降で、こうした最長一致検索のポイントについて詳しく解説します。

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

最長一致検索(ロンゲストマッチ : longest match)とは、ルータ/レイヤ3スイッチがIPパケットをルーティングするためにルーティングテーブルのルート情報を検索する方法です。

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

サブネットマスクが「長い」「短い」とはどういう意味?

サブネットマスクについて、連続するビット「1」の数が多いことを「サブネットマスクが長い」と表現します。連続するビット「1」の数が少なければ「サブネットマスクが短い」と表現します。たとえば、サブネットマスク「/8」よりもサブネットマスク「/24」のほうが長いということです。最長一致検索は、宛先IPアドレスに一致するルート情報のうち、サブネットマスクが最も長いルート情報を見つけることになります。

図 サブネットマスクの「長い」「短い」

サブネットマスクが長いルート情報は、より詳しいルート情報です。ネットワークアドレスは、IPアドレスの範囲を表しています。たとえば「10.0.0.0/8」と「10.0.0.0/24」を例にします。これらのネットワークアドレスのIPアドレス範囲は以下のようになります。

ネットワークアドレス/サブネットマスクIPアドレス範囲
10.0.0.0/810.0.0.0~10.255.255.255
10.0.0.0/2410.0.0.0~10.0.0.255
表 IPアドレスの範囲の例

サブネットマスクが短い「10.0.0.0/8」は、とても多くのIPアドレスの範囲を表しています。一方、サブネットマスクが長い「10.0.0.0/24」はより限定されたIPアドレスの範囲です。サブネットマスクが長いより限定されたIPアドレスの範囲を表すルート情報は、「より詳しいルート情報」です。

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

CCNA試験で重要

CCNA試験(200-301)では、最長一致検索(ロンゲストマッチ)によるルーティングテーブルの検索に関わる問題がよく出題されます。CCNAを受験される方は、しっかりと把握しておいてください。

最長一致検索の例

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

ネットワークアドレス/サブネットマスクIPアドレス範囲
10.2.0.0/2410.2.0.0~10.2.0.255
10.2.1.0/2410.2.1.0~10.2.1.255
10.2.2.0/2410.2.2.0~10.2.2.255
10.2.3.0/2410.2.3.0~10.2.3.255
10.2.0.0/2210.2.0.0~10.2.3.255
0.0.0.0/00.0.0.0~255.255.255.255
表 ルーティングテーブルのルート情報サンプル

このようなルーティングテーブルを持つルータに、宛先IPアドレスとして10.2.2.100が指定されているパケットが届いたとします。

図 最長一致検索(ロンゲストマッチ)の例
図 最長一致検索(ロンゲストマッチ)の例
このルーティングテーブルの例は、ネクストホップなどは省略して、ネットワークアドレスとサブネットマスクとIPアドレス範囲のみにしています。実際のルーティングテーブルにはIPアドレスの範囲が表示されることはありません。

各ルート情報のサブネットマスクと宛先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のルート情報です。

図 最長一致検索の例 10.2.2.0/24のルート情報を利用
図 最長一致検索の例 10.2.2.0/24のルート情報を利用

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

最長一致検索するからルート集約できる

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

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

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

上の図のR1のルーティングテーブルには、R2の背後にある4つのネットワークについて1つずつルート情報を登録する必要はありません。「10.0.0.0/24」「10.2.1.0/24」「10.2.2.0/24」「10.2.3.0/24」の4つのルート情報を1つにまとめた「10.2.0.0/22」だけ登録すればOKです。

「10.0.0.0/24」「10.2.1.0/24」「10.2.2.0/24」「10.2.3.0/24」 の4つのネットワーク内のIPアドレスは、すべて「10.2.0.0/22」に含まれるからです。最長一致検索をするので、宛先IPアドレスが 「10.0.0.0/24」「10.2.1.0/24」「10.2.2.0/24」「10.2.3.0/24」 の4つのネットワーク内のIPアドレスであれば、すべて「10.2.0.0/22」に一致します。

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

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

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

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

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

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

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

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

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

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

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

なお、デフォルトルートを地図にたとえると、世界地図のようなイメージです。世界地図には世界中のあらゆる場所が載っています。(裏側のみえていない部分は無視してくださいね。あくまでもたとえです。)でも、「東京に行きたい」というときに、まず、世界地図を広げることはないでしょう。

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

IPルーティングのキホン