リモート先のホスト、インターネット上のホストなど通信する際、自分のマシン地震がルーティングテーブル(経路)を持っています。
リモート先のホストと通信する際は、このルーティングテーブルを参照し通信先へアクセスします。
「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」コマンドの使い方は以上となります。
エンジニアのオンライン学習
エンジニアにおすすめのオンライン教材比較 | |
ITエンジニアが自宅で学習ができるオンラインスクール比較 | |