Posted at

ipコマンド備忘録

More than 1 year has passed since last update.


はじめに

CentOS7ではifconfigやrouteやarp等のコマンドがipコマンドで置き換えられました。今まで慣れ親しんできたコマンド体系から新しいコマンド体系へと移行するのは苦手な人もいるかもしれません。そんな時は用途別に纏めておき、「あれを見るコマンドは何だったっけ」→「ip xxxxだ!」と記憶に定着させるのが良いと思います。


用途別コマンド


インターフェース関連(旧ifconfigコマンド)


インターフェースのIPを確認したい

ip a


bash

[root@sv12-CentOS74 ~]# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
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: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 02:01:52:9b:00:09 brd ff:ff:ff:ff:ff:ff
inet 10.6.0.191/21 brd 10.6.7.255 scope global ens160
valid_lft forever preferred_lft forever
inet6 fe80::1:52ff:fe9b:9/64 scope link
valid_lft forever preferred_lft forever

ip aは正確にはip address showの省略系です。address部分はaで代用可能であり、showは省略可能です。ipコマンドはtab補完にも対応していますので、迷ったときはtabを押すと良いと思います。


特定のインターフェースのIPを確認したい

ip a show <interface>


bash

[root@sv12-CentOS74 ~]# ip a show ens160

2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 02:01:52:9b:00:09 brd ff:ff:ff:ff:ff:ff
inet 10.6.0.191/21 brd 10.6.7.255 scope global ens160
valid_lft forever preferred_lft forever
inet6 fe80::1:52ff:fe9b:9/64 scope link
valid_lft forever preferred_lft forever

インターフェースを指定する場合にはshowを省略できません。インターフェースが多数あり、特定のインターフェースの情報のみを絞って出力したい場合に使います。


入出力、エラーカウンタを表示したい

ip -s a


bash

[root@sv12-CentOS74 ~]# ip -s a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
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
RX: bytes packets errors dropped overrun mcast
3168 24 0 0 0 0
TX: bytes packets errors dropped carrier collsns
3168 24 0 0 0 0
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 02:01:52:9b:00:09 brd ff:ff:ff:ff:ff:ff
inet 10.6.0.191/21 brd 10.6.7.255 scope global ens160
valid_lft forever preferred_lft forever
inet6 fe80::1:52ff:fe9b:9/64 scope link
valid_lft forever preferred_lft forever
RX: bytes packets errors dropped overrun mcast
206419026 117466 0 127 0 0
TX: bytes packets errors dropped carrier collsns
6224508 85173 0 0 0 0

初期構築時や通信が不安定になった時に確認します。


ルーティング関連(旧routeコマンド)


ルーティングテーブルを表示したい

ip r


bash

[root@sv12-CentOS74 ~]# ip r

default via 10.6.0.1 dev ens160 proto static metric 100
10.6.0.0/21 dev ens160 proto kernel scope link src 10.6.0.191 metric 100

rはrouteの略です。説明不要のルーティングテーブルですね。


特定のアドレスに対するネクストホップを表示したい

ip r get <address>


bash

[root@sv12-CentOS74 ~]# ip r get 8.8.8.8

8.8.8.8 via 10.6.0.1 dev ens160 src 10.6.0.191
cache

ネットワーク屋には馴染み深いコマンドです。スタティックルートがたくさん書いてある時に一発で探せて便利です。


arp関連(旧arpコマンド)


arpキャッシュを表示したい

ip n


bash

[root@sv12-CentOS74 ~]# ip n

10.6.0.9 dev ens160 lladdr 02:01:52:9b:00:01 STALE
10.6.0.1 dev ens160 lladdr 02:01:52:9b:00:01 DELAY

nはneigh(ネイバー)の略です。


特定のIPアドレスに対するarpキャッシュを表示したい

ip n s <address>


bash

[root@sv12-CentOS74 ~]# ip n s 10.6.0.1

10.6.0.1 dev ens160 lladdr 02:01:52:9b:00:01 REACHABLE

ip neigh show <address>の省略形。省略されすぎて逆に覚えるのが辛そうですね。ciscoのswitchport t e dみたいなものです。