ネットワーク関連のコマンドはたくさんあります。しかしながら、その一部は ip コマンドに集約できます。
基本形 ("man ip" より抜粋)
$ ip OBJECT COMMAND
- OBJECT: link, neigh, addr, route (等)
- COMMAND: show, add, delete (等)
データリンク層のネットワークデバイス情報 (ifconfigコマンドの代用)
MACアドレス ("08:00:27:1a:eb:d9", "08:00:27:85:8b:86") 等の調査ができます。
$ /sbin/ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:1a:eb:d9 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:85:8b:86 brd ff:ff:ff:ff:ff:ff
同様の機能を有するコマンドとして有名なものは /sbin/ifconfig ですが "man ifconfig" によると "ip link" の使用が推奨されています。
ifconfig: This program is obsolete! For replacement check ip addr and ip link.
ARPテーブルの内容を表示 (arpコマンドの代用)
IPアドレスとMACアドレスの対応関係の情報が格納されたARPテーブルの内容を表示できます。
$ /sbin/ip neigh show ← neigh: neighborの略
192.168.56.1 dev eth1 lladdr 08:00:27:00:4c:4f REACHABLE
↑192.168.56.1 というIPアドレスのホストと通信するためには
08:00:27:00:4c:4f というMACアドレスを有するデバイスと通信ができる eth1 (dev:デバイス) を利用すればよいという情報
同様の機能を有するコマンドとして有名なものは /sbin/arp ですが "man arp" によると "ip neigh" の使用が推奨されています。
arp: This program is obsolete. For replacement check ip neighbor.
ネットワーク層のIPアドレス情報を表示 (ifconfigコマンドの代用)
インタフェース毎に割り当てられたIPアドレスの調査などができます。
$ /sbin/ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 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
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:1a:eb:d9 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
inet6 fe80::a00:27ff:fe1a:ebd9/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:85:8b:86 brd ff:ff:ff:ff:ff:ff
inet 192.168.56.10/24 brd 192.168.56.255 scope global eth1
inet6 fe80::a00:27ff:fe85:8b86/64 scope link
valid_lft forever preferred_lft forever
同様の機能を有するコマンドとして有名なものは /sbin/ifconfig ですが "man ifconfig" によると "ip addr" の使用が推奨されています。
ifconfig: This program is obsolete! For replacement check ip addr and ip link.
ルーティングテーブルを表示 (routeおよびnetstatコマンドの代用)
$ /sbin/ip route show
10.0.2.0/24 dev eth0 proto kernel scope link src 10.0.2.15
192.168.56.0/24 dev eth1 proto kernel scope link src 192.168.56.10
169.254.0.0/16 dev eth0 scope link metric 1002
169.254.0.0/16 dev eth1 scope link metric 1003
default via 10.0.2.2 dev eth0
用語
- proto kernel: "the route was installed by the kernel during autoconfiguration." (man ip より。カーネルによって自動設定されたルーティング)
- scope link: "direct unicast and broadcast routes" (man ip より。直接的なユニキャストまたはブロードキャストで使用されるルーティング)
- 169.254.0.0/16: リンクローカルアドレス。LANよりも更に狭くリンク内でのみ有効。ルータによって転送されず 1:1 通信などで使用される
読み取れること
- IPパケットの送信元アドレスが "10.0.2.15" で宛先アドレスが "10.0.2.0/24" の範囲のものは eth0 デバイス(dev)を経由して送り出せばよい
- IPパケットの送信元アドレスが "192.168.56.10" で宛先アドレスが "192.168.56.0/24" の範囲のものは eth1 デバイス(dev)を経由して送り出せばよい
- IPパケットの送信元アドレスは問わず、宛先アドレスが "169.254.0.0/16" の範囲のものは eth0 または eth1 デバイス(dev)を経由して送り出せばよい
- 上記ルーティングで対応できないものは eth0 デバイス(dev) を経由して "10.0.2.2" に転送を依頼すればよい
同様の機能を有するコマンドとして有名なものは /sbin/route および /bin/netstat -rn ですが "man route" および "man netstat" によると "ip route" の使用が推奨されています。
route: This program is obsolete. For replacement check ip route.
netstat: This program is obsolete. Replacement for netstat -r is ip route.
関連記事
- 使い所が難しいマイナーな運用コマンドコマンドのエイリアスを登録する (update-alternatives) mybin という名前のコマンドを登録 sudo update-alternatives --install /usr/local/bin/mybin mybin /usr/bin/echo 10 sudo update-alternatives --install /usr/local/bin/mybin mybin /...
- プロセス関連のコマンドプロセスID関連 (ps, pgrep, pkill) 全プロセスを表示するためには $ ps ax とすればよく、その表示を見やすくするためには "u" と "w" を追加して $ ps auxw とすればよいです。表示件数自体は同じです。そのうち特定のコマンドのプロセスIDだけを表示したい場合は $ ps ax | grep 'my_script' | grep -v grep | awk '...
- rpmとyumのチートシートrpm (RedHat Package Manager または RPM Package Manager) はRedHat系のパッケージ管理ツールで、yum (Yellowdog Updater Modified) は内部的にrpmを実行するメタパッケージ管理ツールです。rpmには柔軟性がありyumには利便性があります。 rpmは "rpmパッケージファイル" があれば何でもインストールできますが、...
- メモリおよびディスクリソースを調査するために便利なコマンドおよび周辺知識メモリ使用量を表示 (free) 既定ではキロバイト単位で表示されます。オプション "-b", "-k", "-m", "-g" を付与して実行するとそれぞれバイト、キロ、メガ、ギガで表示されます。 $ free total used free shared buffers cached Mem: 510824 ...
- 運用時に大活躍する必須コマンドファイル内容を再帰的に検索 (grep) find コマンドはファイル名についてディレクトリを再帰的に検索します。ファイルの内容について指定したディレクトリ以下を再帰的に検索するためには grep に -r オプションを付与します。その際 -n および -i オプションも付与しておくと便利です。未来創発 NRI grep です。 $ grep -nri "pattern" dir -n (--li...