iproute2パッケージ含まれるipコマンドやssコマンドを使うと、ネットワークインターフェースの状態の確認や設定、ルーティングテーブルの表示や追加、削除、ARPテーブルの確認と削除など、ネットワークに関するさまざまな操作ができます。
CentOS 6やRHEL 6までは、これらの操作に、net-toolsパッケージに含まれるifconfigやroute、arp、netstatといったコマンドが使われていきました。
CentOS 7、RHEL 7ではnet-toolsは推奨されず、最小構成の場合はインストールされません。yumコマンドなどでnet-toolsパッケージのインストールは可能ですが、いずれはなくなるので新しいコマンドを覚えていきましょう。
net-toolsとiproute2のコマンド対応は以下のようになります。
net-tools | iproute2 | 説明 |
---|---|---|
arp | ip n(ip neighbor) | ARPテーブルの内容を表示 |
ifconfig | ip a show(ip addr show) | 起動中のIF情報表示 |
netstat | ss | 有効な接続(ESTABLISHED)情報表示 |
route | ip r(ip route) | 経路の追加/削除 |
なお、無線LANネットワークの設定を行うためのコマンドも変わっています。以前は、wireless-toolsを使用していましたが、CentOS7、RHEL 7からiwに変わりました
wirelesstools | iw | 説明 |
---|---|---|
iwconfig | iw | 無線LAN IFの情報表示 |
IPアドレスを確認する
IPアドレスやMACアドレスを確認するには、ip addr showコマンドを実行します。これは、従来のifconfigコマンドに相当します。
# ip addr show 1: lo:mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eno16777736: mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:27:fe:8a brd ff:ff:ff:ff:ff:ff inet 172.16.0.50/24 brd 172.16.0.255 scope global eno16777736 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe27:fe8a/64 scope link valid_lft forever preferred_lft forever
ルーティングテーブルの表示
ルーティングテーブルを確認するには、ip route showコマンドを実行します。これは従来のrouteコマンドに相当します。
# ip route show default via 172.16.0.254 dev eno16777736 proto static metric 100 172.16.0.0/24 dev eno16777736 proto kernel scope link src 172.16.0.50 metric 100
セッションを確認する
ssコマンドを使うと、ネットワークで通信するのに使われるソケットの各種統計情報を確認できます。従来のnetstatコマンドに代わって利用されます。
TCPポートで通信を行っているすべての通信状態を表示するには、ss -natコマンドを実行します。
# ss -nat State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:22 *:* LISTEN 0 128 *:5432 *:* LISTEN 0 100 127.0.0.1:25 *:* ESTAB 0 0 172.16.0.50:22 172.16.0.3:49618 LISTEN 0 128 :::22 :::* LISTEN 0 128 :::5432 :::* LISTEN 0 100 ::1:25 :::*
TCPポートでリッスンして待ち受けているすべてのポートを表示するには、ss -nltコマンドを実行します。
# ss -nlt State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:22 *:* LISTEN 0 128 *:5432 *:* LISTEN 0 100 127.0.0.1:25 *:* LISTEN 0 128 :::22 :::* LISTEN 0 128 :::5432 :::* LISTEN 0 100 ::1:25 :::*
UDPポートで通信しているすべての通信状態を表示するには、ss -nauコマンドを実行します。
# ss -nau State Recv-Q Send-Q Local Address:Port Peer Address:Port ESTAB 0 0 ::1:53700 ::1:53700
UDPポートでリッスンして待ち受けているすべてのポートを表示するには、ss -nluコマンドを実行します。
ネットワークの疎通確認
ネットワーク経由でリモートのホストにパケットが到達できるか確認するには、pingコマンドを実行します。これはCent OS6以前と同じです。
# ping 172.16.0.254 PING 172.16.0.254 (172.16.0.254) 56(84) bytes of data. 64 bytes from 172.16.0.254: icmp_seq=1 ttl=64 time=0.365 ms 64 bytes from 172.16.0.254: icmp_seq=2 ttl=64 time=0.478 ms 64 bytes from 172.16.0.254: icmp_seq=3 ttl=64 time=0.436 ms 64 bytes from 172.16.0.254: icmp_seq=4 ttl=64 time=0.571 ms ^C --- 172.16.0.254 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3020ms rtt min/avg/max/mdev = 0.365/0.462/0.571/0.077 ms
「Ctrl+C」でping実行が終了します。
デフォルトでは無制限に実行されますが、-cオプションを使うことで実行回数を指定できます。
「time=」で表示されるレスポンス結果(RTT)の目安としては、同じネットワークセグメント上のホストの場合で1ms(ミリ秒)以内、国内のインターネット上にあるホストの場合で10ms~30ms以内、地球の裏側で500ms程度です。
なお、pingコマンドはICMPプロトコルを使います。ICMPプロトコルがブロックされているネットワーク環境では、実行してもうまく結果が帰ってこないことがあります。