最長一致とは?ルーティングの経路選択を具体例でわかりやすく解説

ネットワーク中級編 12/全50記事

この記事は、 「ネットワーク中級編|構築・検証・障害切り分けを身につける」 の第12回です。

前回学んだルーティングテーブルを使い、複数の経路が宛先に一致したときに、 ルーターがどの経路を選ぶのかを確認します。

最長一致とは?ルーティングの経路選択を具体例でわかりやすく解説

1つの宛先IPアドレスに対して、デフォルトルート、集約経路、個別経路など、 複数の経路が同時に一致することがあります。 この記事では、ルーターが最も具体的な経路を選ぶ「最長一致」の仕組みを、 プレフィックス長、ルーティングテーブル、確認コマンドを使って理解します。

対象レベル Level 2・中級
想定読了時間 約20分
身につく成果 宛先ごとの選択経路を判断できる
前提知識 ルーティングテーブルの基本
演習環境 ブラウザのみ

ルーティングテーブルに経路が存在していても、 「どの経路が実際に使われるのか」を判断できなければ、通信経路は読み解けません。

特に重要なのが、 管理距離が小さい経路より、プレフィックス長が長い経路が使われることがある という点です。ここを混同すると、障害調査や設計レビューで判断を誤ります。

この記事を読み終えるとできること

  • 最長一致の意味を自分の言葉で説明できる
  • /8/16/24/32の具体性を比較できる
  • ルーティングテーブルから宛先IPの転送先を判断できる
  • 最長一致と管理距離・メトリックの役割を区別できる
  • より詳細な経路が原因となる通信障害を切り分けられる
  • Cisco IOSの確認コマンドで使用経路を確認できる

結論:最も長く一致する経路を選ぶ

最長一致の定義

最長一致とは、宛先IPアドレスに一致する経路が複数あるとき、 プレフィックス長が最も長い経路を選ぶ仕組みです。

英語では Longest Prefix Match と呼ばれます。 「最長」という言葉は、距離やホップ数ではなく、 ネットワーク部として一致するビット数が最も多いことを表します。

候補の中から、宛先を最も細かく指定している経路を使う。

たとえば、宛先が 10.1.1.70 のとき、次の経路がすべて一致するとします。

一致する経路が複数ある場合

/0
最低限の一致
10.0.0.0/8
8ビット一致
10.1.0.0/16
16ビット一致
10.1.1.0/24
24ビット一致
10.1.1.64/26
26ビット一致・採用

この場合、最も長い /26 が選択されます。 /24/16 も宛先には一致していますが、 /26 の方が宛先範囲を細かく指定しているためです。

最長一致とは何か

ルーターはパケットを受信すると、宛先IPアドレスを確認し、 ルーティング情報を使って次の転送先を決めます。

しかし、ルーティングテーブルには、同じ宛先に重なる経路が登録されることがあります。

  • すべての宛先に一致するデフォルトルート
  • 組織全体をまとめた集約経路
  • 部署や拠点単位の個別ネットワーク
  • 特定の端末だけを示すホストルート

これらが同時に一致した場合、ルーターは適当に1つを選ぶわけではありません。 より詳細な宛先範囲を示す経路を選択します。

日常的な例に置き換える

「東京都」より「東京都新宿区」、「東京都新宿区」より 「東京都新宿区西新宿」の方が場所を細かく指定しています。 最長一致は、より詳しい住所を優先する考え方に近いものです。

最長一致が必要な理由

大まかな経路を用意しつつ、一部の通信だけ別経路へ送るためです。

1

通常通信

多数のネットワークを、集約経路やデフォルトルートでまとめて転送します。

2

例外通信

特定のネットワークや端末だけ、より詳細な経路で別の出口へ送れます。

3

経路の集約

経路数を減らしながら、必要な部分だけ詳細経路を残せます。

プレフィックス長が長いほど具体的

IPv4アドレスは32ビットです。 /24 のような数字は、そのうち何ビットをネットワーク部として扱うかを表します。

/0 全IPv4アドレスに一致
/8 先頭8ビットを比較
/24 先頭24ビットを比較
/32 1つのIPだけに一致
経路 サブネットマスク 宛先範囲 具体性
0.0.0.0/0 0.0.0.0 すべてのIPv4アドレス 最も大まか
10.0.0.0/8 255.0.0.0 10.0.0.010.255.255.255 大まか
10.1.1.0/24 255.255.255.0 10.1.1.010.1.1.255 詳細
10.1.1.70/32 255.255.255.255 10.1.1.70だけ 最も詳細

数字が大きいほど優先される、と覚えるだけでも基本問題は解けます。

ただし、その経路が宛先IPアドレスに実際に一致していることが前提です。 一致しない /32 が、一致する /24 より優先されることはありません。

ビットで見ると何が一致しているのか

宛先 10.1.1.70 と、経路 10.1.1.64/26 を比較します。 最後のオクテットだけを2進数にすると、次のようになります。

宛先IP 10.1.1.70 → 01000110 経路の先頭値 10.1.1.64 → 01000000 /26マスク → 11000000 ↑↑ 最後のオクテットは先頭2ビットを比較 01000110 AND 11000000 = 01000000 → ネットワークアドレスは 10.1.1.64 → 10.1.1.70 は 10.1.1.64/26 に一致

/26 は、先頭3オクテットの24ビットに加え、 最後のオクテットの先頭2ビットも一致する必要があります。 そのため、/24 よりも宛先を細かく絞り込めます。

具体例で経路選択を確認する

宛先IPアドレスを 10.1.1.70 とし、 ルーターが次の経路を持っているとします。

候補経路 一致するか 理由
0.0.0.0/0 一致する デフォルトルートはすべての宛先に一致
10.0.0.0/8 一致する 先頭8ビットが10で一致
10.1.0.0/16 一致する 先頭16ビットが10.1で一致
10.1.1.0/24 一致する 10.1.1.010.1.1.255に含まれる
10.1.1.64/26 一致する・採用 10.1.1.6410.1.1.127に含まれ、最も長い
10.1.1.128/25 一致しない 10.1.1.12810.1.1.255の範囲外

経路選択の手順

  1. パケットの宛先IPアドレスを確認する
  2. 宛先に一致する経路をすべて候補にする
  3. 候補のプレフィックス長を比較する
  4. 最も長いプレフィックスを持つ経路を選ぶ
  5. その経路のネクストホップまたは出力インターフェースへ転送する

プレフィックス長だけを先に見ない

まず、対象の宛先IPアドレスが経路の範囲に含まれているかを確認します。 長いプレフィックスでも、宛先に一致しなければ候補になりません。

ルーティングテーブルから最長一致を判断する

次のルーティングテーブルを持つルーターが、 宛先 10.1.1.70 のパケットを受信したとします。

種別 宛先ネットワーク 管理距離/メトリック ネクストホップ
S* 0.0.0.0/0 [1/0] 203.0.113.1
S 10.0.0.0/8 [1/0] 192.0.2.2
S 10.1.0.0/16 [1/0] 192.0.2.6
O 10.1.1.0/24 [110/20] 192.0.2.10
O 10.1.1.64/26 [110/30] 192.0.2.14

選択されるのは 10.1.1.64/26 です。 デフォルトルートやスタティックルートも一致していますが、 /26 が最も長く一致しています。

「スタティックルートの管理距離は1だから、OSPFより必ず優先される」は誤りです。

10.1.0.0/16 のスタティックルートより、 10.1.1.64/26 のOSPF経路の方が宛先を細かく指定しているため、 宛先 10.1.1.70 にはOSPF経路が使われます。

宛先が変わると選ばれる経路も変わる

宛先IP 選択経路 理由
10.1.1.70 10.1.1.64/26 /26の範囲内
10.1.1.200 10.1.1.0/24 /26の範囲外だが/24には含まれる
10.1.50.10 10.1.0.0/16 /24/26には一致しない
10.200.1.10 10.0.0.0/8 /8だけが10番台として一致
198.51.100.20 0.0.0.0/0 個別経路がなくデフォルトルートを使用

管理距離・メトリックとの関係

最長一致、管理距離、メトリックは、すべて経路選択に関係しますが、役割が異なります。

比較項目 何を決めるか 比較する場面
プレフィックス長 パケットの宛先に対して、どの経路が最も具体的か 転送時に、異なる長さの一致経路から選ぶ
管理距離(AD) 同じ宛先プレフィックスを、異なる学習元から受けたときの信頼度 同じプレフィックスの経路をRIBへ登録するとき
メトリック 同じルーティングプロトコル内で、どの経路が最適か 同じプレフィックスを同じプロトコルで複数学習したとき

経路が使われるまでの考え方

1 同じプレフィックスの候補を学習
2 ADやメトリックでRIBへ登録
3 転送用情報をFIBへ反映
4 パケットの宛先と照合
5 最長一致した経路で転送

例1:プレフィックス長が違う

経路 学習元 AD
10.1.0.0/16 スタティック 1
10.1.1.0/24 OSPF 110

宛先が 10.1.1.70 なら、/24 を使用します。 プレフィックスが異なるため、AD値を直接比較して決める場面ではありません。

例2:プレフィックス長が同じ

経路 学習元 AD 結果
10.1.1.0/24 スタティック 1 通常はこちらをRIBへ登録
10.1.1.0/24 OSPF 110 バックアップ候補

今度は同じ 10.1.1.0/24 なので、管理距離を比較します。 通常はADが小さいスタティックルートがRIBに登録されます。

実務での整理方法

「違うプレフィックスなら最長一致」「同じプレフィックスの学習元が複数ならAD」 と整理すると、混乱しにくくなります。

ホストルート・デフォルトルート・集約経路

ホストルート:/32

/32 は1つのIPv4アドレスだけを示します。 そのIPアドレスに一致する限り、最も詳細な経路です。

通常経路

192.0.2.0/24

192.0.2.0~192.0.2.255をまとめて転送します。

例外経路

192.0.2.50/32

192.0.2.50だけを別のネクストホップへ転送できます。

宛先が 192.0.2.50 なら /32 を使い、 宛先が 192.0.2.51 なら /24 を使います。

デフォルトルート:/0

0.0.0.0/0 は、どのIPv4アドレスにも一致します。 ただしプレフィックス長が0なので、 他に一致する具体的な経路がないときだけ使われます。

デフォルトルートは「最優先の経路」ではなく、 最後に残る最も大まかな経路です。

集約経路

複数の細かいネットワークを、1本の大きな経路にまとめることを経路集約と呼びます。

詳細経路 集約後
10.10.0.0/24
10.10.1.0/24
10.10.2.0/24
10.10.3.0/24
10.10.0.0/22

集約経路 10.10.0.0/22 があっても、 一部について 10.10.2.0/24 が登録されていれば、 10.10.2.x 宛の通信は /24 を使用します。

集約経路のブラックホールに注意

集約範囲には含まれるものの、実際には存在しない詳細ネットワーク宛の通信が、 集約先へ送られて破棄される場合があります。 集約設計では、詳細経路の有無と破棄用経路の意図を確認します。

確認コマンド

最長一致を頭の中だけで判断せず、実機のコマンドでも確認します。 以下はCisco IOS系の代表例です。

show ip route

ルーティングテーブル全体を確認します。

Router# show ip route S* 0.0.0.0/0 [1/0] via 203.0.113.1 S 10.0.0.0/8 [1/0] via 192.0.2.2 S 10.1.0.0/16 [1/0] via 192.0.2.6 O 10.1.1.0/24 [110/20] via 192.0.2.10, GigabitEthernet0/1 O 10.1.1.64/26 [110/30] via 192.0.2.14, GigabitEthernet0/2

show ip route <宛先IP>

指定した宛先IPアドレスに対して、どのルーティングエントリーが一致するかを確認します。

Router# show ip route 10.1.1.70 Routing entry for 10.1.1.64/26 Known via “ospf 1”, distance 110, metric 30, type intra area Last update from 192.0.2.14 on GigabitEthernet0/2 Routing Descriptor Blocks: * 192.0.2.14, from 192.0.2.14, via GigabitEthernet0/2

出力の Routing entry for 10.1.1.64/26 から、 宛先 10.1.1.70 に対して /26 が使用されると分かります。

show ip cef <宛先IP> detail

実際の高速転送に使われるCEF情報を確認します。 RIBだけでなく、FIBへ正しく反映されているかを確認したいときに有効です。

Router# show ip cef 10.1.1.70 detail 10.1.1.64/26, epoch 0 nexthop 192.0.2.14 GigabitEthernet0/2

traceroute

実際の通信が想定した経路を通っているかを確認します。 ただし、途中機器の応答制限や非対称経路によって、すべてのホップが表示されるとは限りません。

Router# traceroute 10.1.1.70 Type escape sequence to abort. Tracing the route to 10.1.1.70 1 192.0.2.14 1 msec 1 msec 1 msec 2 10.1.1.70 2 msec 2 msec 2 msec

機種・OSによる違い

コマンド名や出力形式は、機器ベンダーやソフトウェアバージョンによって異なります。 実務では、対象機器の公式コマンドリファレンスも確認してください。

障害切り分けでの使い方

「ルーティングテーブルに宛先経路があるから問題ない」と判断するのは危険です。 より詳細な経路が別方向を指していると、想定外の経路へ転送されます。

ケース1:一部の端末だけ通信できない

経路 ネクストホップ
172.16.0.0/16 192.0.2.1
172.16.20.50/32 192.0.2.99

172.16.20.0/24内の多くの端末は正常でも、 172.16.20.50だけは/32へ最長一致し、別のネクストホップへ送られます。

このようなときは、端末側やACLだけでなく、 ホストルートが残っていないかを確認します。

ケース2:バックアップ回線へ切り替わらない

デフォルトルートをバックアップ回線へ向けても、 宛先に一致するより詳細な経路がメイン回線側へ残っていれば、 その通信はデフォルトルートを使いません。

フローティングスタティックルートを設計するときは、 デフォルトルートだけでなく、より詳細な個別経路が残る条件も確認します。

ケース3:VPN接続後に特定サイトだけ到達できない

VPNクライアントへ配布された詳細経路が、ローカルネットワークと重複している場合、 特定宛先だけVPN側へ送られることがあります。

たとえば、端末がローカルで 192.168.1.0/24 を使っていても、 VPNから 192.168.1.100/32 を受け取ると、 192.168.1.100 宛だけVPN側へ送られる可能性があります。

切り分けの確認順序

  1. 通信できない宛先IPアドレスを特定する
  2. 宛先に一致する経路を、長いプレフィックスから確認する
  3. 選択経路のネクストホップと出力インターフェースを確認する
  4. より詳細な不要経路や古いホストルートがないか確認する
  5. ネクストホップ到達性、ARP、インターフェース状態を確認する
  6. 戻り経路にも同様の確認を行う

通信は往復で成立する

送信側で正しい経路が選ばれていても、戻り側でより詳細な別経路が選ばれると、 非対称経路や通信断が発生することがあります。

最長一致に関するよくある勘違い

管理距離が小さい経路が、常にすべての通信で優先される

管理距離は、同じ宛先プレフィックスを異なる方法で学習したときの比較に使います。 プレフィックス長が異なる経路では、パケット転送時に最長一致が働きます。

デフォルトルートは、設定した時点で最優先される

デフォルトルートは /0 であり、最も大まかな経路です。 より詳細な一致経路がない場合にだけ使われます。

プレフィックス長が最も大きい行を無条件で選べばよい

その経路が宛先IPアドレスに一致していることが前提です。 宛先に一致しない経路は、どれだけ長くても候補になりません。

ルーティングテーブルに経路があれば、必ず通信できる

ネクストホップへの到達性、戻り経路、ARP、ACL、ファイアウォール、 宛先ホストの状態なども通信成立に影響します。

まず宛先に一致する経路を集め、その中で最長のプレフィックスを選ぶ

これが最長一致の基本です。 最後に、選ばれた経路のネクストホップや出力インターフェースを確認します。

通常のIPルーティングを前提とした説明です

Policy-Based Routing(PBR)、VRF、SD-WANポリシーなどが設定されている環境では、 通常のルーティングテーブルだけでは転送先を説明できない場合があります。 機器固有の転送ポリシーも合わせて確認してください。

理解度チェック

記事の内容を確認するため、次の6問に答えてください。 解答を開く前に、選択理由も考えてみましょう。

問題1.最長一致の説明として最も適切なものはどれですか。

  1. ホップ数が最も多い経路を選ぶ
  2. 管理距離が最も大きい経路を選ぶ
  3. 宛先に一致する経路のうち、プレフィックス長が最も長い経路を選ぶ
  4. ルーティングテーブルの最上段にある経路を選ぶ
解答を見る
正解:C

最長一致は、宛先IPアドレスに一致する候補の中から、 ネットワーク部として一致するビット数が最も多い経路を選ぶ仕組みです。

問題2.宛先 10.1.1.70 に対して、次のうち最長一致する経路はどれですか。

  1. 0.0.0.0/0
  2. 10.0.0.0/8
  3. 10.1.1.0/24
  4. 10.1.1.64/26
解答を見る
正解:D

10.1.1.7010.1.1.6410.1.1.127 に含まれ、 一致する候補の中で /26 が最も長いためです。

問題3.宛先 10.1.1.200 に対して、次の経路がある場合、どれを使いますか。

  • 10.0.0.0/8
  • 10.1.1.0/24
  • 10.1.1.64/26
解答を見る
正解:10.1.1.0/24

10.1.1.20010.1.1.64/26 の範囲外です。 一致する経路の中では /24 が最長です。

問題4.スタティックの 10.1.0.0/16 とOSPFの 10.1.1.0/24 がある場合、宛先 10.1.1.10 にはどちらを使いますか。

解答を見る
正解:OSPFの 10.1.1.0/24

管理距離はスタティックの方が小さくても、プレフィックスが異なります。 宛先に対してより詳細な /24 が最長一致します。

問題5.デフォルトルート 0.0.0.0/0 が使われるのはどのようなときですか。

解答を見る
正解:ほかに宛先へ一致する、より詳細な経路がないとき

デフォルトルートはすべての宛先に一致しますが、プレフィックス長は0です。 そのため、個別経路が存在すれば個別経路が優先されます。

問題6.特定の1台だけが別経路へ送られている場合、最初に疑うべき経路はどれですか。

  1. /0
  2. /8
  3. /24
  4. /32
解答を見る
正解:Dの /32

/32 は1つのIPアドレスだけに一致するホストルートです。 不要なホストルートが残ると、特定端末だけ想定外の方向へ転送されます。

実践演習:選択される経路を判断しよう

ルーターR1に次の経路が登録されています。 各宛先に対して選択される経路とネクストホップを答えてください。

宛先ネットワーク ネクストホップ 備考
0.0.0.0/0 203.0.113.1 インターネット側
172.16.0.0/12 192.0.2.1 社内集約経路
172.16.32.0/20 192.0.2.5 西日本拠点
172.16.40.0/24 192.0.2.9 名古屋拠点
172.16.40.100/32 192.0.2.13 検証サーバー

課題1.宛先 172.16.40.50

選択経路:________________
ネクストホップ:_____________
選択理由:________________
課題1の解答を見る

選択経路:172.16.40.0/24

ネクストホップ:192.0.2.9

/12/20/24が一致し、 その中で/24が最長です。/32172.16.40.100だけに一致するため候補外です。

課題2.宛先 172.16.40.100

選択経路:________________
ネクストホップ:_____________
選択理由:________________
課題2の解答を見る

選択経路:172.16.40.100/32

ネクストホップ:192.0.2.13

すべての社内経路にも一致しますが、/32が最も詳細です。

課題3.宛先 172.16.35.20

選択経路:________________
ネクストホップ:_____________
選択理由:________________
課題3の解答を見る

選択経路:172.16.32.0/20

ネクストホップ:192.0.2.5

172.16.35.20172.16.32.0172.16.47.255に含まれます。 /24/32には一致しません。

課題4.宛先 172.20.10.10

選択経路:________________
ネクストホップ:_____________
選択理由:________________
課題4の解答を見る

選択経路:172.16.0.0/12

ネクストホップ:192.0.2.1

172.16.0.0/12172.16.0.0172.31.255.255を含みます。 より詳細な候補には一致しません。

課題5.宛先 198.51.100.50

選択経路:________________
ネクストホップ:_____________
選択理由:________________
課題5の解答を見る

選択経路:0.0.0.0/0

ネクストホップ:203.0.113.1

社内向けの経路には一致しないため、最後にデフォルトルートが使用されます。

課題6.障害原因を考える

172.16.40.0/24内で、172.16.40.100だけ通信できません。 ほかの端末は正常です。ルーティングの観点から最初に確認すべきことを書いてください。

確認内容:________________________________
課題6の解答例を見る

172.16.40.100/32のホストルートが存在し、 ほかの端末とは異なるネクストホップ192.0.2.13へ送られていることを確認します。

この経路が意図したものか、ネクストホップへ到達できるか、 戻り経路が存在するかも合わせて確認します。

自分の言葉で説明する課題

技術を理解したら、相手に説明できる形へ言い換えます。 次の2つに取り組んでください。

課題1.後輩へ30秒で説明する

「最長一致とは何ですか?」と質問されたときの説明文を作ってください。

最長一致とは、________________________________。
説明例を見る

最長一致とは、パケットの宛先IPアドレスに一致する経路が複数あるとき、 プレフィックス長が最も長い、つまり宛先を最も細かく指定している経路を選ぶ仕組みです。 たとえば/16/24の両方に一致するなら、/24を使います。

課題2.障害報告として説明する

特定サーバーだけ想定外の回線へ転送されていた場合、 調査結果を上司へ報告する文章を作ってください。

調査結果:__________________________________
原因:____________________________________
対応:____________________________________
報告例を見る

調査結果: 対象サーバー宛の通信は、拠点全体の/24経路ではなく、 当該サーバーだけに一致する/32経路を使用していました。

原因: 過去の検証で追加したホストルートが残っており、最長一致によって想定外のネクストホップが選択されていました。

対応: 設定意図を確認したうえで不要な/32経路を削除し、 正常な/24経路へ切り替わることと往復疎通を確認します。

英語ドキュメントで使われる表現

英語表現 意味
longest prefix match 最長一致
more specific route より詳細な経路
less specific route より大まかな経路
host route ホストルート。IPv4では通常/32
default route デフォルトルート。IPv4では0.0.0.0/0

まとめ

  • 最長一致は、宛先IPアドレスに一致する経路のうち、プレフィックス長が最も長い経路を選ぶ仕組み
  • プレフィックス長が長いほど、宛先範囲を細かく指定している
  • /32は1つのIPv4アドレスに一致する最も詳細なホストルート
  • /0はすべてに一致するが、ほかに詳細経路がないときだけ使われる
  • プレフィックス長が異なる経路を、管理距離だけで比較してはいけない
  • 同じプレフィックスを複数の方法で学習した場合は、管理距離やメトリックが経路登録に関係する
  • 一部の宛先だけ通信できない場合は、不要な/32やより詳細な経路を確認する
  • 実機ではshow ip route <宛先IP>show ip cefで使用経路を確認する

ルーティングテーブルを読むときは、経路の有無だけでなく、 対象の宛先に対してどの経路が最長一致するかまで確認しましょう。

次の記事:スタティックルーティング

今回は、複数の経路が宛先に一致したときの選択ルールを学びました。

次の記事では、管理者が宛先ネットワークとネクストホップを手動で設定する スタティックルーティングを解説します。 直接指定、ネクストホップ指定、デフォルトルートとの違い、 フローティングスタティックルートの考え方まで確認します。

ネットワーク中級編 12/全50記事

中級編では、VLAN、STP、ルーティング、OSPF、ACL、VPN、 パケット解析、障害切り分けを順番に学びます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次