【ip route,route】Linuxコマンド_経路情報(ルーティングテーブル)の確認・設定をする

リモート先のホスト、インターネット上のホストなど通信する際、自分のマシン地震がルーティングテーブル(経路)を持っています。
リモート先のホストと通信する際は、このルーティングテーブルを参照し通信先へアクセスします。

「ip route, route」コマンドの使い方(Linux)

このルーティングテーブルを表示するためには以下のコマンドを実施します。
以下では「ip route」コマンド、「route」コマンドでの出力結果となります。

「ip route」コマンド

[root@centos8_test /]# ip route
default via 172.17.0.1 dev eth0 
172.17.0.0/16 dev eth0 proto kernel scope link src 172.17.0.2 

「route」コマンド

[root@centos8_test /]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         _gateway        0.0.0.0         UG    0      0        0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 eth0

上記のように各コマンドを実行すると現在の経路情報を表示することができます。
また、上記経路情報において「default」と表示されているところは「デフォルトゲートウェイ」と呼ばれ、通信パケットが通常送信されるルートのことを指しています。

「ip route」、「route」コマンドのインストール

「ip route」、「route」コマンドが使用できない場合は、「net-tools」パッケージをインストールすることで使用することができます。
インストールコマンドは以下で実施します。

# dnf -y install net-tools

or

# yum -y install net-tools

経路情報にない通信は全て「default(デフォルトゲートウェイ)」へ送信される

デフォルトゲートウェイでは「経路情報に載っていない不明な通信も含めた全ての通信経路」を表示しているところとなります。

「ip route」コマンド

[root@centos8_test /]# ip route
default via 172.17.0.1 dev eth0 
172.17.0.0/16 dev eth0 proto kernel scope link src 172.17.0.2 

「route」コマンド

[root@centos8_test /]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         _gateway        0.0.0.0         UG    0      0        0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 eth0

例えば、
「172.17.0.3」という通信はネクストホップを「172.17.0.1」とした通信で送信されますが、「1.1.1.1」という通信は経路情報に載っていないので、デフォルトゲートウェイ「default」の「eht0」へ送られることとなります。

ルーティングテーブル(経路情報)設定コマンド

以下では経路情報を新規に追加する設定となります。

デフォルトゲートウェイ設定

以下はデフォルトゲートウェイがない場合に新規に設定する際のコマンドとなります。

※「ip route」コマンド

[root@centos8 /]# ip route add default via 172.17.0.1

デフォルトルート削除

[root@centos8 /]# ip route delete default

※「route」コマンド

[root@centos8 /]# route add default gw 172.17.0.1

デフォルトルート削除

[root@centos8 /]# route delete default

静的ルート(スタティックルート)追加設定

ルーティングテーブルに新規でネットワークを追加する際の設定と削除は以下となります。

※「ip route」コマンド

[root@centos8 /]# ip route add 172.31.0.0/16 via 172.17.0.1 dev eth0

スタティックルート削除

[root@centos8 /]# ip route delete 172.31.0.0/16

※「route」コマンド

[root@centos8 /]# route add -net 192.168.0.0 gw 172.17.0.1 netmask 255.255.0.0 eth0

スタティックルート削除

[root@centos8 /]# route delete -net 192.168.0.0/16

それぞれのコマンドは微妙に使い方が異なります。

「ip route」、「route」コマンドオプション

「ip route」、「route」コマンドのオプションは以下の通りとなります。

※「ip route」コマンドオプション

[root@centos8 /]# ip route help
Usage: ip route { list | flush } SELECTOR
       ip route save SELECTOR
       ip route restore
       ip route showdump
       ip route get [ ROUTE_GET_FLAGS ] ADDRESS
                            [ from ADDRESS iif STRING ]
                            [ oif STRING ] [ tos TOS ]
                            [ mark NUMBER ] [ vrf NAME ]
                            [ uid NUMBER ] [ ipproto PROTOCOL ]
                            [ sport NUMBER ] [ dport NUMBER ]
       ip route { add | del | change | append | replace } ROUTE
SELECTOR := [ root PREFIX ] [ match PREFIX ] [ exact PREFIX ]
            [ table TABLE_ID ] [ vrf NAME ] [ proto RTPROTO ]
            [ type TYPE ] [ scope SCOPE ]
ROUTE := NODE_SPEC [ INFO_SPEC ]
NODE_SPEC := [ TYPE ] PREFIX [ tos TOS ]
             [ table TABLE_ID ] [ proto RTPROTO ]
             [ scope SCOPE ] [ metric METRIC ]
             [ ttl-propagate { enabled | disabled } ]
INFO_SPEC := { NH | nhid ID } OPTIONS FLAGS [ nexthop NH ]...
NH := [ encap ENCAPTYPE ENCAPHDR ] [ via [ FAMILY ] ADDRESS ]
	    [ dev STRING ] [ weight NUMBER ] NHFLAGS
FAMILY := [ inet | inet6 | mpls | bridge | link ]
OPTIONS := FLAGS [ mtu NUMBER ] [ advmss NUMBER ] [ as [ to ] ADDRESS ]
           [ rtt TIME ] [ rttvar TIME ] [ reordering NUMBER ]
           [ window NUMBER ] [ cwnd NUMBER ] [ initcwnd NUMBER ]
           [ ssthresh NUMBER ] [ realms REALM ] [ src ADDRESS ]
           [ rto_min TIME ] [ hoplimit NUMBER ] [ initrwnd NUMBER ]
           [ features FEATURES ] [ quickack BOOL ] [ congctl NAME ]
           [ pref PREF ] [ expires TIME ] [ fastopen_no_cookie BOOL ]
TYPE := { unicast | local | broadcast | multicast | throw |
          unreachable | prohibit | blackhole | nat }
TABLE_ID := [ local | main | default | all | NUMBER ]
SCOPE := [ host | link | global | NUMBER ]
NHFLAGS := [ onlink | pervasive ]
RTPROTO := [ kernel | boot | static | NUMBER ]
PREF := [ low | medium | high ]
TIME := NUMBER[s|ms]
BOOL := [1|0]
FEATURES := ecn
ENCAPTYPE := [ mpls | ip | ip6 | seg6 | seg6local ]
ENCAPHDR := [ MPLSLABEL | SEG6HDR ]
SEG6HDR := [ mode SEGMODE ] segs ADDR1,ADDRi,ADDRn [hmac HMACKEYID] [cleanup]
SEGMODE := [ encap | inline ]
ROUTE_GET_FLAGS := [ fibmatch ]

※「route」コマンドオプション

[root@centos8 /]# route help
Usage: route [-nNvee] [-FC] [<AF>]           List kernel routing tables
       route [-v] [-FC] {add|del|flush} ...  Modify routing table for AF.

       route {-h|--help} [<AF>]              Detailed usage syntax for specified AF.
       route {-V|--version}                  Display version/author and exit.

        -v, --verbose            be verbose
        -n, --numeric            don't resolve names
        -e, --extend             display other/more information
        -F, --fib                display Forwarding Information Base (default)
        -C, --cache              display routing cache instead of FIB

  <AF>=Use -4, -6, '-A <af>' or '--<af>'; default: inet
  List of possible address families (which support routing):
    inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25) 
    netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP) 
    x25 (CCITT X.25) 

「ip route」、「route」コマンドの使い方は以上となります。

最新情報をチェックしよう!