ip コマンドは、レガシーな net-tools パッケージの代替として推奨されてます。
iproute2 (推奨) | net-tools (レガシー) | 説明 |
---|---|---|
ip link, ip addr | ifconfig | IP アドレスと NIC |
ip neigh | arp | ARP テーブル |
ip route | route | IP ルーティングテーブル |
ip maddr | ipmaddr, netstat -g | マルチキャスト |
ip addr
2: eth0: mtu 1500(一部略) link/ether 12:34:56:78:9a:bc inet 192.0.2.2/24
ネットワークのコマンド | |||
---|---|---|---|
ip link
例えば、ネットワークデバイス (NIC) の MAC アドレスを確認したりできます。
ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000 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 12:34:56:78:9a:bc brd ff:ff:ff:ff:ff:ff
MAC アドレスは、ベンダーが出荷時に割り当てます。(最近のものはランダムに変わったりする)
ip link の見方
2つ目のネットワークデバイス eth0 を例に、各フィールドの意味を説明します。
フィールド | 説明 |
---|---|
eth0 | ネットワークデバイス名 |
<BROADCAST,MULTICAST,UP,LOWER_UP> | デバイスの状態 |
mtu 1500 | MTU (1回の転送で送信可能な IP パケット) のサイズ |
qdisc pfifo_fast | キューイング規則 |
state UP | ネットワークの状態 |
qlen 1000 | キューの長さ |
link/ether 12:34:56:78:9a:bc | MAC アドレス |
brd ff:ff:ff:ff:ff:ff | ブロードキャストアドレス |
ip link コマンドのオプション
show <デバイス名> (特定のデバイスを確認)
特定のネットワークデバイスだけ確認できます。
ip link show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 12:34:56:78:9a:bc brd ff:ff:ff:ff:ff:ff
set (属性を変更)
ネットワークデバイスの属性 (設定) を変更します。
sudo ip link set lo down
lo (localhost) に対して、通信できなくなります。
sudo ip link set lo up
注意事項
なお、ip コマンドによるネットワークの設定変更は一時的です。
再起動しても恒久的に設定したい場合は、nmcli を使いましょう。
ip addr (ip-address)
ip link の情報に加え、IP アドレスの情報が追加されます。
ip addr
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 12:34:56:78:9a:bc brd ff:ff:ff:ff:ff:ff inet 192.0.2.2/24 brd 192.0.2.255 scope global dynamic eth0 valid_lft 3000sec preferred_lft 3000sec
ip addr の見方
IP アドレスに関連がある部分だけを説明します。
ip addr の全フィールドの説明はこちら
フィールド | 説明 |
---|---|
eth0 | ネットワークデバイス名 |
<BROADCAST,MULTICAST,UP,LOWER_UP> | ネットワークデバイスの状態 |
mtu 1500 | MTU (1回の転送で送信可能な IP パケット) のサイズ |
qdisc pfifo_fast | キューイング規則 |
state UP | ネットワークの状態 |
qlen 1000 | キューの長さ |
link/ether 12:34:56:78:9a:bc brd ff:ff:ff:ff:ff:ff | MAC アドレス ブロードキャストアドレス |
inet 192.0.2.2/24 brd 192.0.2.255 | IPv4 アドレス ブロードキャストアドレス |
scope global | 送信先のスコープ scope global : グローバル scope link : ローカルネットワーク (自身のサブネット等) scope host : 自分のみ |
dynamic | DHCP などで動的にアドレスを割り当て |
eth0 | ネットワークデバイス名 |
valid_lft 3000sec | IPv4 アドレスの有効期限 |
preferred_lft 3000sec | IPv4 アドレスの適切な有効期限 |
フィールド | 説明 |
---|---|
eth0 | ネットワークデバイス名 |
inet 192.0.2.2/24 | IPv4 アドレス |
brd 192.0.2.255 | ブロードキャストアドレス |
scope global | 送信先のスコープ scope global : グローバル scope link : ローカルネットワーク (自身のサブネット等) scope host : 自分のみ |
dynamic | DHCP などで動的にアドレスを割り当て |
eth0 | ネットワークデバイス名 |
valid_lft 3000sec | IPv4 アドレスの有効期限 |
preferred_lft 3000sec | IPv4 アドレスの適切な有効期限 |
IP アドレスの静的 (手動) 設定
ip addr コマンドで、IP アドレスを手動で割り当ててみます。
show <デバイス名> (指定したデバイスを確認)
ip addr show eth0
2: eth0:mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 12:34:56:78:9a:bc brd ff:ff:ff:ff:ff:ff inet 192.0.2.2/24 brd 192.0.2.255 scope global eth0 valid_lft 3000sec preferred_lft 3000sec
add (IP アドレスを追加)
sudo ip addr add 192.0.2.3/24 dev eth0
ip addr show eth0
2: eth0:mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 12:34:56:78:9a:bc brd ff:ff:ff:ff:ff:ff inet 192.0.2.2/24 brd 192.0.2.255 scope global eth0 valid_lft 3000sec preferred_lft 3000sec inet 192.0.2.3/24 scope global eth0 valid_lft forever preferred_lft forever
ping 192.0.2.3
PING 192.0.2.3 (192.0.2.3) 56(84) bytes of data. 64 bytes from 192.0.2.3: icmp_seq=1 ttl=127 time=0.021 ms 64 bytes from 192.0.2.3: icmp_seq=2 ttl=127 time=0.034 ms
del (IP アドレスを削除)
sudo ip addr del 192.0.2.3/24 dev eth0
ip addr show eth0
2: eth0:mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 12:34:56:78:9a:bc brd ff:ff:ff:ff:ff:ff inet 192.0.2.2/24 brd 192.0.2.255 scope global eth0 valid_lft 3000sec preferred_lft 3000sec
ping 192.0.2.3
PING 192.0.2.3 (192.0.2.3) 56(84) bytes of data. 3 packets transmitted, 0 received, 100% packet loss, time 2106ms
IP アドレスの自動 (動的) 設定
systemd-networkd※1が DHCP サーバー※2と通信して、自動で IP アドレスを割り当てます。
※1 古い場合は dhclient
※2 ルータ広告を使う方法もある
sudo systemctl restart systemd-networkd
sudo journalctl -r
systemd-networkd[1111]: eth0: DHCPv4 address 192.0.2.2, gateway 192.0.2.1 acquired from 192.0.2.1
ip neigh (ip-neighbour)
ip neigh
192.0.2.1 dev eth0 lladdr 01:23:45:67:89:AB REACHABLE 192.0.2.3 dev eth0 lladdr AA:BB:CC:DD:EE:FF REACHABLE
ip neigh の見方
フィールド | 説明 |
---|---|
192.0.2.1 | 送信先の IP アドレス |
dev eth0 | 送信元のネットワークデバイス名 |
lladdr 01:23:45:67:89:AB | 送信先の Link-Layer-Address (MAC アドレス) |
REACHABLE | 状態 |
ARP テーブルの手動設定
ip-neigh コマンドを利用して、ARP テーブルを手動で設定してみます。
add (ARP テーブルに追加)
sudo ip neigh add 192.0.2.4 lladdr AA:BB:CC:DD:EE:FF dev eth0
ip neigh
192.0.2.1 dev eth0 lladdr 01:23:45:67:89:AB REACHABLE
192.0.2.4 dev eth0 lladdr BA:98:76:54:32:10 REACHABLE
del (ARP テーブルから削除)
sudo ip neigh del 192.0.2.4 dev eth0
ip neigh
192.0.2.1 dev eth0 lladdr 01:23:45:67:89:AB REACHABLE
ARP テーブルの自動 (動的) 更新
ARP テーブルに登録されていない IP アドレスと通信する場合、自動で ARP リクエストを送信して ARP テーブルを更新します。
ip neigh
192.0.2.1 dev eth0 lladdr 01:23:45:67:89:AB REACHABLE
ping 192.0.2.3
ip neigh
192.0.2.1 dev eth0 lladdr 01:23:45:67:89:AB REACHABLE
192.0.2.3 dev eth0 lladdr BA:98:76:54:32:10 REACHABLE
ARP テーブルが自動で更新されたことを確認できます。
ip route
ip route
default via 192.0.2.1 dev eth0 192.0.2.0/24 dev eth0 proto kernel scope link src 192.0.2.2
192.0.2.0/24 はデータリンク層で直接通信、それ以外はルーター 192.0.2.1 に転送を示します。
ip route の見方
フィールド | 説明 |
---|---|
・default via 192.0.2.1 ・192.0.2.0/24 | 送信先のネットワークアドレス ・default: デフォルトゲートウェイ ・via: next hop (次のルーター) |
dev eth0 | 送信元のネットワークデバイス名 |
proto kernel | ルートを作成したルーティングプロトコル (kernel の場合は kernel により自動生成) |
scope link | 送信先の範囲 host: 自分自身 link: 自分の所属するネットワーク (データリンク層で通信) global: グローバル (他の) ネットワーク (ネットワーク層で通信) |
src 192.0.2.2 | 送信元ネットワークデバイスの IP アドレス |
ルーティングテーブルの手動設定
ip route でルーティングテーブルを手動で設定してみます。
add ルーティングテーブルに追加
sudo ip route add 192.0.100.0/24 dev eth0
ip route
default via 192.0.2.1 dev eth0
192.0.2.0/24 dev eth0 proto kernel scope link src 192.0.2.2
192.0.100.0/24 dev eth0 scope link
del ルーティングテーブルから削除
sudo ip route del 192.0.100.0/24 dev eth0
ip route
default via 192.0.2.1 dev eth0 192.0.2.0/24 dev eth0 proto kernel scope link src 192.0.2.2
ip maddr
ip maddr
2: eth0 link 01:00:5e:00:00:00 inet 224.0.0.1
ip maddr の見方
フィールド | 説明 |
---|---|
eth0 | ネットワークデバイス名 |
link 01:00:5e:00:00:00 | MAC アドレス (マルチキャストアドレスは 01:00:5e から始まる) |
inet 224.0.0.1 | IP アドレス (マルチキャストアドレスの範囲は 224.0.0.0 ~ 239.255.255.255) |
関連記事
学習ロードマップ | |||||
---|---|---|---|---|---|
ネットワークのコマンド | |||
---|---|---|---|
OSI 参照モデル | |||
---|---|---|---|