ネットワークを管理・運用する際に必ず登場するのが「ルーティングテーブル」です。
ルーティングテーブルとは、ルーターやコンピューターがパケットを転送する際に参照する経路情報の一覧表のことを指します。
この表を正しく読み解くことができれば、ネットワークの通信経路を把握し、障害発生時のトラブルシューティングにも役立てることができます。
本記事では、ルーティングテーブルの意味・構造・見方から、WindowsやLinuxでの確認方法・コマンドまで、わかりやすく解説していきます。
ルーティングテーブルとは何か?基本的な役割と重要性
それではまず、ルーティングテーブルの基本的な役割と重要性について解説していきます。
ルーティングテーブルとは、ネットワーク機器がパケットの転送先を決定するために参照する経路情報のデータベースのことです。
ルーターはパケットを受け取ると、その宛先IPアドレスをルーティングテーブルと照合し、どのインターフェースへ転送するかを判断します。
いわばルーティングテーブルは、ネットワーク上の「地図」のような存在といえるでしょう。
この地図に正確な経路情報が記載されていれば、データは迷うことなく宛先まで届けられます。
逆に経路情報が誤っていたり不足していたりすると、パケットが正しく転送されず通信障害が発生するのです。
ルーティングテーブルに含まれる主な情報
・宛先ネットワーク:転送先のIPアドレス範囲
・サブネットマスク:ネットワーク範囲の指定
・ゲートウェイ:次のホップのIPアドレス
・インターフェース:パケットを送出するネットワークインターフェース
・メトリック:経路の優先度を示す数値(小さいほど優先)
ルーティングテーブルはルーターだけでなく、WindowsやLinuxなどのOSにも存在します。
コンピューター自身もどのゲートウェイを通じてパケットを送るかを判断するため、ルーティングテーブルを保持しているのです。
デフォルトルートとは
ルーティングテーブルの中で特に重要な概念が「デフォルトルート」です。
デフォルトルートとは、ルーティングテーブルにマッチする経路が見つからなかった場合に使用される、最後の転送先のことです。
通常「0.0.0.0/0」という形式で表記され、すべての宛先にマッチする特別なエントリとなっています。
家庭用ルーターでは、インターネット側のインターフェースがデフォルトルートとして設定されていることがほとんどでしょう。
企業ネットワークでは、デフォルトルートをどこに向けるかがネットワーク設計の重要なポイントとなります。
ロンゲストマッチの原則
ルーティングテーブルに複数の経路が存在する場合、ルーターはどの経路を選ぶのでしょうか。
この際に適用されるのが「ロンゲストマッチ(最長一致)」の原則です。
ロンゲストマッチとは、宛先IPアドレスに対してサブネットマスクが最も長く(詳細に)一致する経路を優先するという規則のことです。
たとえば192.168.1.0/24と192.168.0.0/16という2つの経路がある場合、192.168.1.100宛のパケットはより詳細な192.168.1.0/24の経路が選択されます。
この原則によって、大きなネットワーク範囲の中に小さな特定のネットワークへの経路を設定するといった柔軟な経路制御が可能となっているのです。
メトリックと経路の優先度
同じ宛先に対して複数の経路がある場合、メトリックと呼ばれる数値で優先度が決まります。
メトリックとは、経路の「コスト」を表す数値であり、一般的に値が小さいほど優先度が高い経路として扱われます。
メトリックの計算方法はルーティングプロトコルによって異なり、ホップ数・帯域幅・遅延・信頼性などの要素が考慮されることがあります。
OSPFではコスト値、RIPではホップ数がメトリックとして使用されるでしょう。
メトリックを適切に設定することで、負荷分散や障害時の迂回経路を実現することができます。
ルーティングテーブルの確認方法(Windows・Linux)
続いては、実際にルーティングテーブルを確認する方法を見ていきます。
WindowsとLinuxではコマンドが異なりますが、どちらも簡単なコマンドで経路情報を表示できます。
Windowsでのルーティングテーブル確認コマンド
Windowsでルーティングテーブルを確認するには、コマンドプロンプトを使用します。
最も基本的なコマンドは「route print」です。
Windowsでのルーティングテーブル確認コマンド
route print → ルーティングテーブル全体を表示
route print -4 → IPv4のルーティングテーブルを表示
route print -6 → IPv6のルーティングテーブルを表示
netstat -r → ルーティングテーブルを別形式で表示
「route print」を実行すると、「アクティブなルート」「固定ルート」などのセクションに分かれてルーティング情報が表示されます。
各行には「ネットワークの宛先」「ネットマスク」「ゲートウェイ」「インターフェース」「メトリック」が表示されるでしょう。
また、Windowsではコントロールパネルからネットワーク設定を確認することもできますが、詳細な経路情報を見るにはコマンドプロンプトが便利です。
Linuxでのルーティングテーブル確認コマンド
Linuxでルーティングテーブルを確認する方法は複数あります。
従来は「route」コマンドが広く使われていましたが、現在は「ip route」コマンドが推奨されています。
Linuxでのルーティングテーブル確認コマンド
ip route show → ルーティングテーブルを表示(推奨)
ip route list → ip route showと同等
route -n → 従来のrouteコマンド(名前解決なし)
netstat -rn → ルーティングテーブルをnetstatで表示
「ip route show」の出力では、宛先ネットワーク・via(ゲートウェイ)・dev(インターフェース名)・metric(メトリック)などが表示されます。
デフォルトルートは「default via 192.168.1.1 dev eth0」のような形式で表示されるでしょう。
ルーティングテーブルの見方(出力結果の読み方)
ルーティングテーブルの出力結果を正しく読み解くことが、ネットワーク管理の基本となります。
| 項目名 | 内容 | 例 |
|---|---|---|
| 宛先(Destination) | 転送先のネットワークアドレス | 192.168.1.0 |
| マスク(Mask) | サブネットマスク | 255.255.255.0 |
| ゲートウェイ(Gateway) | 次のホップのIPアドレス | 192.168.0.1 |
| インターフェース(Interface) | 送出するネットワークIF | eth0 / ens33 |
| メトリック(Metric) | 経路のコスト値 | 100 |
宛先が「0.0.0.0」または「default」となっている行がデフォルトルートです。
ゲートウェイが「0.0.0.0」または「*」となっている場合は、そのネットワークが直接接続されていることを意味します。
メトリックが複数の同じ宛先に対して設定されている場合は、値の小さい方が優先して使用されるでしょう。
ルーティングテーブルへの経路追加・削除の方法
続いては、ルーティングテーブルへの経路追加・削除の方法を確認していきます。
ネットワークの構成変更や障害対応の際に、手動で経路情報を追加・削除する操作が必要になることがあります。
Windowsでの経路追加・削除
Windowsでは「route」コマンドを使用して経路の追加・削除・変更が行えます。
Windowsでの経路操作コマンド
route add 192.168.2.0 mask 255.255.255.0 192.168.1.1 → 経路を追加
route delete 192.168.2.0 → 経路を削除
route add 192.168.2.0 mask 255.255.255.0 192.168.1.1 -p → 永続的な経路を追加(再起動後も保持)
「-p」オプションを付けると再起動後も設定が保持される永続的な経路として登録できます。
オプションなしで追加した経路は再起動すると消えてしまうので注意が必要でしょう。
Linuxでの経路追加・削除
Linuxでは「ip route」コマンドで経路の追加・削除が行えます。
Linuxでの経路操作コマンド
ip route add 192.168.2.0/24 via 192.168.1.1 → 経路を追加
ip route del 192.168.2.0/24 → 経路を削除
ip route replace 192.168.2.0/24 via 192.168.1.254 → 経路を変更
なお、Linuxでip routeコマンドで追加した経路は、再起動すると消えてしまいます。
永続的に設定するには、ディストリビューションに応じたネットワーク設定ファイルに記述する必要があるでしょう。
UbuntuではNetplanの設定ファイル、CentOS/RHELではnetwork-scriptsやNetworkManagerの設定が該当します。
まとめ
本記事では、ルーティングテーブルの意味・構造・見方から、WindowsとLinuxでの確認・操作方法まで解説してきました。
ルーティングテーブルはネットワーク通信の要となる経路情報のデータベースであり、これを正しく読み解く力はネットワーク管理において非常に重要です。
Windowsでは「route print」、Linuxでは「ip route show」というコマンドで簡単に確認できるため、ぜひ実際に試してみてください。
デフォルトルート・ロンゲストマッチ・メトリックという概念を理解することで、より深くネットワークの動作を把握できるでしょう。
トラブルシューティングの場面でもルーティングテーブルの確認は基本中の基本となるため、本記事の内容をしっかりと身につけておくことをおすすめします。