Linuxコマンド辞典 routeコマンド(ネットワーク)
ルーティングテーブルを表示/設定する「route」コマンドの概要と使い方を記載しています。
RHEL Fedora CentOS Vine Deblan Ubuntu Plamo
参考サイト:Man page of INSTALL
概要・使用方法
ルーティングテーブルとは、別のネットワークに配置された端末と通信するために必要な経路リスト。他のネットワークの端末と通信するために通らなければいけない経路を「デフォルトゲートウェイ」と呼びます。特定の端末にデータを送信するために、デフォルトゲートウェイと異なる経路を通る必要がある場合は、routeを使ってルーティングテーブルを追加設定します。この経路リストを参照してカーネルはデータをあるべき経路に送信します。routeはオプションや引数を指定せずに実行すると、設定されているルーティングテーブルを表示します。ルーティングテーブルに経路を追加/削除する場合は、対象アドレスとゲートウェイ(出口となるホスト)アドレスなどを指定します。routeを実行して経路をルーティングテーブルに追加してもシステムを再起動した後は手動で追加したテーブルが消えてしまいます。システム起動にデフォルトゲートウェイ以外の経路を設定することもできます。
CentOS7では、「/etc/sysconfig/network-scripts/route-<NIC名>」、Debian系では「/etc/network/interfaces」等に記述するとシステム起動時に有効なルーティングテーブルを設定できます。
ディストリビューション | 設定方法 |
---|---|
Red Hat系 | /etc/sysconfig/以下に「route-インターフェイス」ファイルを作成して指定する |
Debian系 | /etc/network/interfacesでup、downコマンドを使用する |
routeコマンドは将来使われなく見込みなのでIPコマンドを使用したほうがよい。
経路の表示
書式
$ route [オプション1]
オプション1
-C | カーネルがキャッシュしているルーティングテーブルを表示する |
-n | 表示する経路ホストの名前解決をせずにIPアドレスを表示する。名前解決しないので表示は速い |
-e | netstat形式で表示する |
-ee | すべての経路情報を1行で表示する |
経路の追加
書式
$ route [オプション2] add [-net | -host] ターゲット [オプション3]
オプション2
-A アドレスファミリ | プロトコルの種別(IPv4はinet4、IPv6はinet6)を指定する |
オプション3
netmask ネットマスク値 | ネットマスクを指定する(例:255.255.255.0) |
gw ゲートウェイアドレス | 宛先にパケットを送る際のゲートウェイアドレスを指定する |
dev インターフェイス名 | インターフェイス名を指定する(例:eth0) |
経路の削除
書式
$ route [オプション2] del [-net | -host] ターゲット [オプション3]
オプション2
-A アドレスファミリ | プロトコルの種別(IPv4はinet4、IPv6はinet6)を指定する |
オプション3
netmask ネットマスク値 | ネットマスクを指定する(例:255.255.255.0) |
gw ゲートウェイアドレス | 宛先にパケットを送る際のゲートウェイアドレスを指定する |
dev インターフェイス名 | インターフェイス名を指定する(例:eth0) |
ルーティングテーブルを表示する
$ route -n
実行結果
[rin@centos ~]$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 100 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
[rin@centos ~]$
ルーティングテーブルの主な項目
項目 | 説明 |
---|---|
Destination | 対象ネットワーク/ホスト |
Gateway | ゲートウェイアドレス |
Genmask | 対象ネットワークのネットマスク値(例:255.255.255.255の場合は対象がホスト、0.0.0.0の場合はデフォルトゲートウェイを示す) |
Flags | U:経路が有効 |
H:対象がホスト | |
G:ゲートウェイを経由する | |
C:キャッシュエントリ | |
!:拒否経路 | |
Metric | 対象までのホップ(通過する経路)の数 |
Ref | ルートの参照数 |
Use | 経路参照回数 |
Iface | 経路として利用するネットワークインタフェース |
IPv6ルーティングテーブルを表示する
$ route -A inet6
実行結果
[rin@centos ~]$ route -A inet6
Kernel IPv6 routing table
Destination Next Hop Flag Met Ref Use If
localhost/128 [::] U 256 1 0 lo
fe80::/64 [::] U 1024 1 0 eth0
[::]/0 [::] !n -1 1 0 lo
localhost/128 [::] Un 0 3 0 lo
centos/128 [::] Un 0 2 0 eth0
ff00::/8 [::] U 256 3 0 eth0
[::]/0 [::] !n -1 1 0 lo
[rin@centos ~]$
静的ルーティングテーブルを追加設定する
$ route add -net IPアドレス netmask サブネットマスク gw ゲートウェイ
実行結果
#172.16.0.0/16のネットワークへの経路は、10.0.0.254をゲートウェイとする
[root@centos ~]# route add -net 172.16.0.0 netmask 255.255.0.0 gw 10.0.0.254
#172.16.1.1のホストへの経路は、10.0.0.254をゲートウェイとする
[root@centos ~]# route add -net 172.16.1.1 netmask 255.255.0.0 gw 10.0.0.254
デフォルトゲートウェイを設定する
$ route add default gw IPアドレス
実行結果
#デフォルトゲートウェイを10.0.0.1に設定する
[root@centos ~]# route add default gw 10.0.0.1