IP Network: route
COMMAND
route - ルーティングテーブルの表示/設定
DESCRIPTION
routeは、IPパケットをルーティングするためのルーティングテーブルの表示や設定(経路の追加、削除)を行うコマンドです。ルーティングテーブルは、主にOSが管理するルーティング情報を保管したメモリテーブルで、テーブルのエントリーが経路を表しています。経路は、ネットワークやホストへ到達するために通過する必要のあるゲートウェイを表します。
使用方法
■ ルーティングテーブルの確認
「route」で現在のルーティングテーブルを確認できます。
$ route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 * 255.255.255.0 U 1 0 0 eth0 link-local * 255.255.0.0 U 1000 0 0 eth0 127.0.0.0 * 255.0.0.0 U 0 0 0 lo default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 $
「自身の所属するネットワークへの経路(192.168.1.0)」「ローカルループバックへの経路(127.0.0.0)」「デフォルトゲートウェイ(default)」などが設定されていることがわかる。
Destination | 宛先IPアドレス |
Gateway | ゲートウェイ IPアドレス |
Genmask | サブネットマスク |
Flags | 経路の種類。「U」は有効、「H」はホスト、「G」はゲートウェイを意味しています。「!」は拒否経路となります。ダイナミックルーティングを行っている場合、固有のフラグが追加されることもあります。 |
Metric | メトリック値 |
Ref | 経路が参照された回数 |
Use | 経路が実際に使用された(ルーティングされた)回数 |
Iface | インターフェース |
「宛先IPアドレス」が、それぞれのサブネットにおける経路となります。このネットワークやそこに所属するホスト向けのパケットは、経路として設定されたインターフェイスからゲートウェイへと転送されることになります。「サブネットマスク」は、宛先IPアドレスがネットワークを意味しているのか、ホストなのかを判断するのに使用されます。この例では「192.168.1.0」への経路は、サブネットマスクから導かれるホスト番号(下位8ビット)が0であることから、ネットワークへの経路であることがわかります。ゲートウェイが「*」の場合、実際にゲートウェイを使用するのではなく自身のインターフェイスから転送可能である(つまりルーティングを必要としない)ことを意味しています。
「default」は、デフォルトゲートウェイの指定を意味しています。この例では、「192.168.1.1」がゲートウェイとなります。経路は自身と自身の所属するネットワークしか登録されていないので、それ以外のすべてのルーティングは「192.168.1.1」へ送られることになります。
■ 経路の追加と変更を行うには
●経路の追加
経路をルーティングテーブルに追加するには、「route add」コマンドを用います。
$ route add -net 192.168.2.0 gw 192.168.1.1 metric 1 netmask 255.255.255.0 eth0
ネットワーク「192.168.2.0/24」への経路(ゲートウェイ「192.168.1.1」)を追加しています。「192.168.2.0/24」はゲートウェイの先にあるため、メトリックは1となります。インターフェイスは省略することもでき、ゲートウェイアドレスなどから最も適切と考えられるインターフェイスが自動的に選ばれます。
多くの場合、経路を追加するのはインターフェイス(NIC)を追加したり、デフォルトゲートウェイだけでは対処できないネットワークが新たに追加されたなどの場合です。インターフェイス(NIC)を追加して、インターフェイスから別のインターフェイスへと転送することを「IPフォワーディング」と呼びます。
●継続的な経路の追加
ターミナルなどからコマンドで追加された経路は一時的なもので、ホストをリブートすると無効になってしまいます。そこで、「/etc/sysconfig/static-routes」ファイルに経路を記述しておきます。
eth0 net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1
●拒否経路の追加
拒否経路を追加することもできます。拒否経路には、そのホストでルーティングしない宛先を指定します。デフォルトゲートウェイを設定している環境で、ルーティングしたくないネットワークやホストがある場合に追加します。
$ route add -net 192.168.10.0 netmask 255.255.255.0 reject
●経路の削除
経路の削除には、「route del」コマンドを用います。
$ route del -net 192.168.10.0 netmask 255.255.255.0