Linux route コマンド

Linux 命令大全Linux コマンド大全


一、route コマンド概要

route コマンドは、Linux システムで IP ルーティングテーブルを表示・操作するための強力なツールです。ネットワーク設定の基本コマンドとして、管理者は次のことができます。

  • 現在のルーティングテーブル情報の表示
  • 静的ルートの追加/削除
  • 既存のルーティングルールの変更
  • ネットワークパケットの転送経路の管理

基本構文

route [选项] [操作] [目标] [命令参数]

二、ルーティングテーブルの基本概念

1. ルーティングテーブルとは

ルーティングテーブルは、オペレーティングシステムのカーネルが管理するデータ構造であり、ネットワークパケットが送信元アドレスから宛先アドレスへどのように転送されるかを決定します。次のように例えることができます。

「都市交通ナビゲーションシステム:目的地に行きたいとき、どの道が最も速くて効率的かをシステムが教えてくれます」

2. ルーティングテーブルの主要フィールド

を使ってroute -nルーティングテーブルを表示すると、以下の重要な列が表示されます。

列名 説明 値の例
Destination 宛先ネットワークまたはホスト 192.168.1.0
Gateway ネクストホップゲートウェイ 192.168.1.1
Genmask ネットマスク 255.255.255.0
Flags ルーティングフラグ U (ルートが有効)
Metric ルーティングコスト 0
Iface 出力インターフェース eth0

三、route コマンドのよく使う操作

1. ルーティングテーブルの表示

例

# 完全なルーティングテーブルを表示(ホスト名を解決しない)
route -n

# 出力例:
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

2. ルートの追加

例

# 特定のホストへのルートを追加
route add -host 192.168.1.100 dev eth0

# ネットワークへのルートを追加
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1

# デフォルトゲートウェイを追加
route add default gw 192.168.1.1

3. ルートの削除

例

# 特定のルートを削除
route del -net 192.168.2.0 netmask 255.255.255.0

# デフォルトゲートウェイを削除
route del default gw 192.168.1.1

四、コマンドオプションの詳細

route コマンドは以下の一般的なオプションをサポートしています:

オプション 説明
-n アドレスを数値形式で表示(ホスト名を解決しない)
-e netstat 形式でルーティングテーブルを表示
-v 詳細な操作情報を表示
-A family アドレスファミリを指定(inet, inet6 など)
-F カーネル FIB ルーティングテーブルを表示
-C ルーティングキャッシュを表示

特別なコマンドパラメータ:

  • add:ルートを追加
  • del:ルートを削除
  • -host:特定のホストに対する操作
  • -net:ネットワーク全体に対する操作
  • gw:ゲートウェイを指定
  • dev:ネットワークインターフェースを指定

五、実際の応用シナリオ

シナリオ1:複数NICのルーティング設定

サーバーに複数のネットワークインターフェースがある場合、異なるネットワークの出口を指定する必要があります:

例

# 10.0.0.0/24 宛てのデータを eth1 インターフェース経由にする
route add -net 10.0.0.0 netmask 255.255.255.0 dev eth1

シナリオ2:VPNルーティング設定

VPN に接続した後、特定のルートを追加する必要があります:

例

# 特定のネットワークセグメントだけを VPN トンネル経由にする
route add -net 172.16.0.0 netmask 255.240.0.0 dev tun0

シナリオ3:一時的なルーティングテスト

例

# テスト用に一時的にルートを追加(再起動後は無効)
route add -host 8.8.8.8 gw 192.168.1.254
ping 8.8.8.8  # ルートが有効かどうかをテスト
route del -host 8.8.8.8  # テスト完了後に削除

六、ルーティングの永続化設定

route コマンドで追加したルートは再起動後に失われます。永続的に有効にするには:

1. Debian/Ubuntu システム

編集/etc/network/interfaces:

例

auto eth0
iface eth0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    up route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.1.2

2. RHEL/CentOS システム

ルーティング設定ファイルを作成/etc/sysconfig/network-scripts/route-eth0:

10.0.0.0/8 via 192.168.1.2

七、よくある問題のトラブルシューティング

1. ルートが有効にならない場合の確認手順

2. 典型的なエラーの解決

エラー1:"SIOCADDRT: Network is unreachable"

  • 原因:ゲートウェイがローカルネットワークの直接ブロードキャストドメイン内にない
  • 解決:まずゲートウェイアドレスに ping が通ることを確認する

エラー2:"RTNETLINK answers: File exists"

  • 原因:既に存在するルートを追加しようとしている
  • 解決:古いルートを削除してから追加するか、または使用するreplaceオプション

八、代替コマンド:ip route

現代の Linux システムでは推奨されていますip routeコマンド:

例

# ルーティングテーブルを表示
ip route show

# ルートを追加
ip route add 10.0.0.0/8 via 192.168.1.2

# ルートを削除
ip route del 10.0.0.0/8

とはいえip routeより強力ですが、routeコマンドは、そのシンプルさと直感性により今でも広く使用されています。


このガイドを通じて、route コマンドの核心的な使い方を習得できたはずです。実際の環境でこれらのコマンドを練習し、ルーティングの変化がネットワーク接続に与える影響を観察することをお勧めします。複雑なルーティング問題に遭遇した場合は、次のツールと組み合わせてtracerouteとpingなどのツールを使用して総合的な診断を行えます。

Linux 命令大全Linux コマンド大全

その他の拡張