[Linux] routeコマンドの使い方 – ルーティングテーブルの表示・設定
routeコマンドは、Linuxでネットワークのルーティングテーブルを表示・設定するために使用されます。
ルーティングテーブルは、パケットがどのネットワークインターフェースを通じて送信されるかを決定します。
route
コマンドを実行することで、現在のルーティングテーブルを表示できます。
新しいルートを追加するにはroute add
、ルートを削除するにはroute del
を使用します。
現在はip route
コマンドが推奨されており、route
は非推奨となっています。
- routeコマンドの基本的な使い方
- ルーティングテーブルの表示方法
- ルートの追加・削除・変更手順
- 各種オプションの活用法
- 複雑なネットワーク設定の応用例
routeコマンドとは
route
コマンドは、LinuxやUnix系のオペレーティングシステムにおいて、ルーティングテーブルを表示・設定するためのコマンドです。
ルーティングテーブルは、ネットワークパケットがどの経路を通って送信されるかを決定するための情報を保持しています。
このコマンドを使用することで、ネットワークのトラフィックの流れを管理し、特定のネットワークへの接続を制御することができます。
route
コマンドは、ルートの追加、削除、変更を行うことができ、ネットワーク管理者にとって非常に重要なツールです。
特に、複数のネットワークインターフェースを持つサーバーや、VPN接続を利用する場合など、柔軟なルーティング設定が求められるシーンで活躍します。
これにより、効率的なデータ通信を実現し、ネットワークのパフォーマンスを向上させることが可能です。
ルーティングテーブルの表示
ルーティングテーブルの基本的な表示方法
ルーティングテーブルを表示する最も基本的な方法は、route
コマンドを単独で実行することです。
このコマンドを実行すると、現在のルーティングテーブルの情報が表示されます。
route
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 100 0 0 eth0
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
オプションを使った詳細な表示
route
コマンドには、オプションを追加することで、より詳細な情報を表示することができます。
例えば、-n
オプションを使用すると、ホスト名の解決を行わずにIPアドレスのみを表示します。
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 100 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
ネットワークインターフェースごとのルート表示
特定のネットワークインターフェースに関連するルートを表示するには、route
コマンドに-iface
オプションを使用します。
これにより、指定したインターフェースに関連するルート情報のみが表示されます。
route -iface eth0
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
このように、route
コマンドを使うことで、ルーティングテーブルの情報を簡単に確認することができます。
ルートの追加
基本的なルートの追加方法
新しいルートを追加するには、route add
コマンドを使用します。
基本的な構文は以下の通りです。
route add -net [ネットワークアドレス] netmask [サブネットマスク] gw [ゲートウェイアドレス]
例えば、192.168.2.0/24ネットワークへのルートを追加する場合は、次のように実行します。
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1
デフォルトゲートウェイの設定
デフォルトゲートウェイを設定するには、route add
コマンドを使用して、0.0.0.0の宛先を指定します。
以下のコマンドでデフォルトゲートウェイを設定できます。
route add default gw [ゲートウェイアドレス]
例えば、192.168.1.1をデフォルトゲートウェイとして設定する場合は、次のように実行します。
route add default gw 192.168.1.1
特定のネットワークへのルート追加
特定のネットワークへのルートを追加する場合も、基本的なルートの追加方法と同様にroute add
コマンドを使用します。
例えば、192.168.3.0/24ネットワークへのルートを追加する場合は、次のように実行します。
route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.1.1
永続的なルートの追加方法
永続的なルートを追加するには、ディストリビューションによって異なる設定ファイルを編集する必要があります。
一般的には、以下のようなファイルにルート情報を追加します。
- Debian系(Ubuntuなど):
/etc/network/interfaces
- Red Hat系(CentOSなど):
/etc/sysconfig/network-scripts/route-<インターフェース名>
例えば、Debian系の場合、/etc/network/interfaces
に以下のように追加します。
up route add -net 192.168.4.0 netmask 255.255.255.0 gw 192.168.1.1
この設定を行うことで、システム起動時に自動的にルートが追加されるようになります。
ルートの削除
基本的なルートの削除方法
ルートを削除するには、route del
コマンドを使用します。
基本的な構文は以下の通りです。
route del -net [ネットワークアドレス] netmask [サブネットマスク]
例えば、192.168.2.0/24ネットワークのルートを削除する場合は、次のように実行します。
route del -net 192.168.2.0 netmask 255.255.255.0
デフォルトゲートウェイの削除
デフォルトゲートウェイを削除するには、route del
コマンドを使用して、0.0.0.0の宛先を指定します。
以下のコマンドでデフォルトゲートウェイを削除できます。
route del default gw [ゲートウェイアドレス]
例えば、192.168.1.1をデフォルトゲートウェイから削除する場合は、次のように実行します。
route del default gw 192.168.1.1
特定のネットワークへのルート削除
特定のネットワークへのルートを削除する場合も、基本的なルートの削除方法と同様にroute del
コマンドを使用します。
例えば、192.168.3.0/24ネットワークのルートを削除する場合は、次のように実行します。
route del -net 192.168.3.0 netmask 255.255.255.0
このように、route
コマンドを使用することで、不要なルートを簡単に削除することができます。
ルートの変更
既存ルートの変更方法
既存のルートを変更するには、まずそのルートを削除し、新しいルートを追加する必要があります。
route del
コマンドで古いルートを削除し、route add
コマンドで新しいルートを追加します。
例えば、192.168.2.0/24ネットワークのゲートウェイを192.168.1.2に変更する場合は、次のように実行します。
route del -net 192.168.2.0 netmask 255.255.255.0
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.2
メトリック値の変更
ルートのメトリック値を変更するには、既存のルートを削除し、新しいメトリック値を指定してルートを追加します。
メトリック値は、ルートの優先順位を示すもので、数値が小さいほど優先されます。
以下のコマンドでメトリック値を変更できます。
route del -net [ネットワークアドレス] netmask [サブネットマスク]
route add -net [ネットワークアドレス] netmask [サブネットマスク] gw [ゲートウェイアドレス] metric [新しいメトリック値]
例えば、192.168.2.0/24ネットワークのメトリック値を200に変更する場合は、次のように実行します。
route del -net 192.168.2.0 netmask 255.255.255.0
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1 metric 200
ルートの優先順位設定
ルートの優先順位は、メトリック値によって決まります。
複数のルートが同じ宛先に対して設定されている場合、メトリック値が最も低いルートが優先されます。
したがって、ルートの優先順位を設定するには、メトリック値を適切に設定することが重要です。
例えば、192.168.3.0/24ネットワークに対して、2つの異なるゲートウェイを持つルートがある場合、次のように設定できます。
route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.1.1 metric 100
route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.1.2 metric 200
この設定では、192.168.1.1が優先され、192.168.1.2はその次に使用されます。
ルートの優先順位を適切に設定することで、ネットワークのトラフィックを効率的に管理できます。
routeコマンドのオプション
-nオプション:ホスト名解決の無効化
-n
オプションを使用すると、ルーティングテーブルを表示する際にホスト名の解決を無効にし、IPアドレスのみを表示します。
これにより、表示が速くなり、DNSの問題が影響しないため、トラブルシューティング時に便利です。
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 100 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
-Cオプション:キャッシュテーブルの表示
-C
オプションを使用すると、ルーティングキャッシュテーブルの情報を表示します。
キャッシュテーブルは、最近使用されたルート情報を保持しており、ルーティングのパフォーマンスを向上させるために利用されます。
このオプションは、特にネットワークのトラブルシューティングやパフォーマンスの分析に役立ちます。
route -C
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
-eeオプション:詳細なルート情報の表示
-ee
オプションを使用すると、ルーティングテーブルの詳細な情報を表示します。
このオプションは、各ルートのメトリックやフラグ、使用状況など、より多くの情報を提供します。
ネットワークの設定やトラブルシューティングを行う際に、詳細な情報が必要な場合に便利です。
route -ee
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 100 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
これらのオプションを活用することで、route
コマンドの機能をより効果的に利用し、ネットワークの管理やトラブルシューティングを効率化することができます。
応用例
複数のネットワークインターフェースを持つサーバーでのルーティング設定
複数のネットワークインターフェースを持つサーバーでは、それぞれのインターフェースに対して異なるルーティング設定を行うことができます。
例えば、eth0
インターフェースが192.168.1.0/24ネットワークに接続され、eth1
インターフェースが192.168.2.0/24ネットワークに接続されている場合、次のようにルートを設定します。
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1 dev eth0
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.2.1 dev eth1
この設定により、各インターフェースに対して適切なゲートウェイが指定され、トラフィックが正しい経路を通るようになります。
VPN接続時のルート設定
VPN接続を利用する場合、VPNトンネルを通じて特定のネットワークにアクセスするためのルートを追加する必要があります。
例えば、VPN接続後に192.168.3.0/24ネットワークにアクセスするためのルートを追加する場合、次のように実行します。
route add -net 192.168.3.0 netmask 255.255.255.0 gw 10.8.0.1
ここで、10.8.0.1
はVPNサーバーのIPアドレスです。
この設定により、VPN接続を通じて192.168.3.0ネットワークへのトラフィックが適切にルーティングされます。
特定のトラフィックを特定のインターフェースにルーティングする方法
特定のトラフィックを特定のインターフェースにルーティングするには、ルートを追加する際にインターフェースを指定します。
例えば、192.168.4.0/24ネットワークへのトラフィックをeth0
インターフェースを通じてルーティングする場合、次のように設定します。
route add -net 192.168.4.0 netmask 255.255.255.0 gw 192.168.1.1 dev eth0
この設定により、192.168.4.0ネットワークへのトラフィックはeth0
インターフェースを通じて送信されます。
特定のアプリケーションやサービスが特定のインターフェースを使用する必要がある場合に、この方法が役立ちます。
よくある質問
まとめ
この記事では、Linuxにおけるroute
コマンドの使い方や、ルーティングテーブルの表示・設定方法について詳しく解説しました。
ルートの追加や削除、変更、さらにはオプションの活用方法や応用例を通じて、ネットワーク管理における実践的な知識を提供しました。
これを機に、実際の環境でroute
コマンドを活用し、ネットワークの設定やトラブルシューティングに役立ててみてください。