ネットワーク関連のコマンドはたくさんあります。しかしながら、その一部は 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.
デザインパターンを活用して美しいコードを書く方法を発信しています。開発の効率化が得意です。
記事の執筆者にステッカーを贈る
有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。
さらに詳しく →Feedbacks
ログインするとコメントを投稿できます。





