[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インターフェースを通じて送信されます。

特定のアプリケーションやサービスが特定のインターフェースを使用する必要がある場合に、この方法が役立ちます。

よくある質問

routeコマンドとip routeコマンド、どちらを使うべき?

routeコマンドは古いコマンドであり、基本的なルーティング操作には十分ですが、ip routeコマンドはより新しく、より多くの機能を提供します。

ip routeコマンドは、ルーティングだけでなく、ネットワークインターフェースやトンネルの管理など、さまざまなネットワーク設定を行うことができます。

したがって、最新のLinuxディストリビューションでは、ip routeコマンドを使用することが推奨されます。

ルートが正しく設定されているか確認する方法は?

ルートが正しく設定されているか確認するには、routeコマンドまたはip routeコマンドを使用してルーティングテーブルを表示します。

以下のコマンドを実行することで、現在のルーティングテーブルを確認できます。

route -n

または

ip route show

出力結果を確認し、目的のネットワークへのルートが正しく設定されているか、ゲートウェイやメトリック値が適切であるかを確認します。

ルート設定がリブート後に消えるのはなぜ?

ルート設定がリブート後に消えるのは、設定が一時的なものであり、システムの再起動時に自動的に復元されないためです。

Linuxでは、routeコマンドで追加したルートは、システムが再起動すると消えてしまいます。

永続的なルートを設定するには、ディストリビューションに応じた設定ファイル(例:/etc/network/interfaces/etc/sysconfig/network-scripts/route-<インターフェース名>)にルート情報を追加する必要があります。

これにより、システム起動時に自動的にルートが設定されるようになります。

まとめ

この記事では、Linuxにおけるrouteコマンドの使い方や、ルーティングテーブルの表示・設定方法について詳しく解説しました。

ルートの追加や削除、変更、さらにはオプションの活用方法や応用例を通じて、ネットワーク管理における実践的な知識を提供しました。

これを機に、実際の環境でrouteコマンドを活用し、ネットワークの設定やトラブルシューティングに役立ててみてください。

  • URLをコピーしました!
目次から探す