ネットワーク関連コマンドについて

CentOS 6 まで非常にお世話になっていたネットワーク関連コマンドとして、以下がありました。

  • ifconfig
  • netstat
  • arp
  • route

上記のコマンド類は、net-tools というパッケージに含まれています。

この net-tools パッケージは、CentOS 6 をインストールするとデフォルトでインストールされますが、CentOS 7 では、最小構成(Minimal)でインストールするとインストールされません。

インストールすれば使えるようになりますが、net-tools は、将来的に廃止される予定のため、使わないほうが良いです。(非推奨となりました)

従来(CentOS 6 まで : 廃止予定)今後(CentOS 7 から : 推奨)
ifconfigip addr、ip -s link
routeip route
arpip neigh
netstatss

その代わりに、これからは、iproute2 パッケージに含まれている ipss のようなコマンドを使用することが推奨されています。

net-tools VS iproute2

では、実際に、どんな感じで使用すれば良いか比較しながら確認してみます。

ifconfig VS ip addr : 各 NIC の IF 情報確認

各 NIC の インタフェース情報を確認するためには、以下のコマンドを使います。

  • 非推奨 : ifconfig
  • 推 奨 : ip addr show
ifconfig VS ip addrRaw Code(S)Raw Code(T)
# ifconfig
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.2  netmask 255.255.255.0  broadcast 192.168.0.255
        ether 00:50:56:95:91:ee  txqueuelen 1000  (Ethernet)
        RX packets 26628  bytes 2812687 (2.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 26631  bytes 3055726 (2.9 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 0  (Local Loopback)
        RX packets 6  bytes 504 (504.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6  bytes 504 (504.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> 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
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:50:56:95:91:ee brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.2/24 brd 192.168.0.255 scope global ens160
       valid_lft forever preferred_lft forever

netstat -rn VS ip route : ルーティングテーブル表示

ルーティングテーブル情報を確認するためには、以下のコマンドを使います。

  • 非推奨 : netstat -rn
  • 推 奨 : ip route
netstat -rn VS ip routeRaw Code(S)Raw Code(T)
# 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  ens160
192.168.0.0     0.0.0.0        255.255.255.0   U         0   0          0  ens160

# ip route
default via 192.168.0.1 dev ens160  proto static  metric 100
192.168.0.0/24 dev ens160  proto kernel  scope link  src 192.168.0.2  metric 100

arp VS ip neigh : イーサネットの MAC アドレス情報確認

イーサネットの MAC アドレス情報を確認するためには、以下のコマンドを使います。

  • 非推奨 : arp
  • 推 奨 : ip neigh
arp VS ip neighRaw Code(S)Raw Code(T)
# arp
Address         HWtype    HWaddress           Flags Mask    Iface
192.168.0.1     ether     00:00:0c:07:ac:07   C             ens160

# ip neigh
192.168.0.1 dev ens160 lladdr 00:00:0c:07:ac:07 REACHABLE

netstat -alnA inet VS ss -lut : Port 状態確認

Port の TCP / UDP / ESTABLISHED 状態を確認するためには、以下のコマンドを使います。

  • 非推奨 : netstat -aln -A inet
  • 推 奨 : ss -ltu
netstat -alnA inet VS ss -lutRaw Code(S)Raw Code(T)
# netstat -aln -A inet
Active Internet connections (servers and established)
Proto  Recv-Q  Send-Q  Local Address    Foreign Address        State
tcp         0       0  0.0.0.0:22       0.0.0.0:*              LISTEN
tcp         0      52  192.168.0.2:22   192.168.10.47:64911    ESTABLISHED
udp         0       0  0.0.0.0:123      0.0.0.0:*
udp         0       0  127.0.0.1:323    0.0.0.0:*

# ss -ltu
Netid  State      Recv-Q  Send-Q    Local Address:Port    Peer Address:Port
tcp    UNCONN     0       0         *:ntp                 *:*
tcp    UNCONN     0       0         127.0.0.1:rpki-rtr    *:*
tcp    LISTEN     0       128       *:ssh                 *:*
tcp    ESTAB      0       52        192.168.0.2:ssh       192.168.10.47:64911

ss -ltu 使用時の注意点

l は、List の l

t は、TCP の t

u は、UDP の u

注意しないと行けないのは、Netid には全て TCP と表示されていますが、TCPUDP か確認するためには、State を見て判断しないと行けません。

State の状態が、

LISTEN となっていれば、TCP

UNCONN となっていれば、UDP

ESTAB となっていれば、通信確立状態ESTABLISHED です。

ちなみに、TCP・UDP・ESTABLISHED 状態を個別に確認したい場合には、以下のようにします。

ss -ltu 個別確認Raw Code(S)Raw Code(T)
━━━━━━━━━━━━━━
TCP
━━━━━━━━━━━━━━
# ss -lt
State      Recv-Q Send-Q    Local Address:Port    Peer Address:Port
LISTEN     0      128       *:ssh                 *:*

━━━━━━━━━━━━━━
UDP
━━━━━━━━━━━━━━
# ss -lu
State      Recv-Q Send-Q    Local Address:Port    Peer Address:Port
UNCONN     0      0         *:ntp                 *:*
UNCONN     0      0         127.0.0.1:rpki-rtr    *:*

━━━━━━━━━━━━━━
ESTAB
━━━━━━━━━━━━━━
# ss -tu
Netid  State      Recv-Q Send-Q    Local Address:Port    Peer Address:Port
tcp    ESTAB      0      52        192.168.0.2:ssh       192.168.10.47:64911

終わりに

今まで普通に使っていた、ifconfig・route・arp・netstat がある日を境に突然使えなくなるかもしれないので、ipss の基本的な使い方を覚えておくといいと思います。

以上、CentOS 7 では ifconfig、route、arp、netstat が非推奨 でした。