Linuxサーバでルーティング確認するコマンドについてまとめました。
CentOSやUbuntuのOSでルーティング確認したい方は読んでください。
Linuxサーバーでルーティング確認するコマンド
Linuxサーバーでルーティングの確認をしたり、設定する時に使用するツールによってコマンドが違います。
- iproute2
- net-tools
どちらのコマンドもルーティング確認できますので、ご自身の環境に合わせて使用してください。
iproute2ツールのルーティング確認コマンド | net-toolsツールのルーティング確認コマンド |
---|---|
ip route show | netstat -r |
route |
net-toolsツールのルーティング確認コマンドは2つあります。
iproute2ツールでルーティング確認する
iproute2ツールでルーティング確認するコマンドを以下に示します。
ip route show
または「ip route」だけでも良いです。
[root@localhost ~]# ip route show
default via 192.168.0.1 dev enp0s3 proto dhcp metric 100
192.168.0.0/24 dev enp0s3 proto kernel scope link src 192.168.0.4 metric 100
192.168.222.0/24 dev enp0s3 proto kernel scope link src 192.168.222.0
ルーティング確認出来ました。
net-toolsツールでルーティング確認する
net-toolsツールでルーティング確認するコマンドを以下に示します。2種類あります。
netstat -r
route
実際に「netstat -r」コマンドでルーティング確認してみます。
[root@localhost ~]# netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default router 0.0.0.0 UG 0 0 0 enp0s3
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s3
192.168.222.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s3
「route」コマンドでルーティング確認してみます。
[root@localhost ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default router 0.0.0.0 UG 100 0 0 enp0s3
192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 enp0s3
192.168.222.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s3
ルーティング確認出来ました。
補足としてルーティングテーブルのFlagsの項目についてまとめます。
ルーティング確認のFlags項目 | 意味 |
---|---|
U | UPしている。有効 |
G | Gateway。デフォルトゲートウェイを表す |
H | Host。ネットワークではなくホストを表す |
! | 経路を拒否。無効 |
DNS名前解決せずにルーティング確認する方法
net-toolsツールの「netstat -r」コマンドや「route」コマンドでは「Gateway」の値がIPアドレスではなく「router」になっています。
原因はルータのIPアドレスをDNS名前解決している為です。名前解決する分処理が多くなります。
このLinuxサーバーのhostsファイルで名前解決が行われていました。実際のhostsファイルを確認します。
[root@localhost ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.1 router
ルーターのIPアドレスである「192.168.0.1」が「router」という名前で登録されています。
なのでルーティング確認すると「Gateway」の箇所が「router」となっていました。
解決策としてDNS名前解決せずにルーティング確認するにはnオプションを使用します。
[root@localhost ~]# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 enp0s3
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s3
192.168.222.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s3
[root@localhost ~]# 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 enp0s3
192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 enp0s3
192.168.222.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s3
デフォルトゲートウェイを表す「default」が「0.0.0.0」に、「router」がルーターのIPアドレスである「192.168.0.1」に変更されています。
Linuxのルーティング確認以外のコマンド
Linuxのルーティング確認以外のコマンドについてまとめます。
やりたい事 | iproute2ツールのコマンド | net-toolsツールのコマンド |
---|---|---|
ルーティング確認 | ip route | netstat -r route |
ルーティング追加 | ip route add IPアドレス/マスク via GWアドレス | route add -[net/host] IPアドレス netmask マスク gw GWアドレス |
ルーティング削除 | ip route delete IPアドレス/マスク | route del -[net/host] IPアドレス |
デフォルトゲートウェイ設定 | ip route add default via DGアドレス | route add default gw DGアドレス |