Linux

Linuxでネットワーク設定の確認を行う、ipコマンドを読み解く

更新日:

image from Thomas Jensen

IPROUTE コマンドは多くの情報を含んでいるにもかかわらず、ほとんど中身がわからなかったので調べてみた。

$ ip addr

上記はネットワークデバイスの IPアドレスとプロパティを表示させるコマンドである。 addr は(address の略)代わりに a だけでも表示させることができる。

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 
    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: enp6s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 
    link/ether 00:25:22:xx:x7:71 brd ff:ff:ff:ff:ff:ff 
    inet 192.168.0.40/24 brd 192.168.0.255 scope global dynamic noprefixroute enp6s0 
       valid_lft 67751sec preferred_lft 67751sec 
    inet6 fe80::7x77:x490:311x:5be8/64 scope link noprefixroute  
       valid_lft forever preferred_lft forever

インターフェイス名について

2つのネットワークインターフェイスが表示された。
1番目の lo はただのローカルループバック

2番目のインターフェイスが eth0 ではなく、 なぜ enp6s0 という奇妙なインターフェイス名が割り当てられているのかというと systemd/udev によってデバイスに割り当てられた 「Predictable Network Interface」 (予測可能なネットワークインターフェイス)だからだ。

これは旧来のカーネルがインターフェイスを発見した順番に名前を eth0 、 eth1 、wlan0 、wlan1 というように割り振るのがセキュリティ上危険だと判明したためだ。

例えばカーネルのブート前などに複数のデバイスをつないでしまえば、インターフェイス名が以前と変わってしまう場合があり、その回線向けに設定したファイヤーウォールなどが無意味になってしまう。

これを解決するため、 systemd ではハードウェアの物理的な位置をもとに割り振るようになった。 en は ethernet (イーサネット)。 p は イーサネットカードのバス番号。 s はスロット番号。

freedesktop.org - Predictable Network Interface Names


<BROADCAST,MULTICAST,UP,LOWER_UP> の意味

BROADCASTブロードキャストに対応
MULTICASTマルチキャストに対応
UP ネットワークインターフェイスが有効
LOWER_UPデバイスにケーブルが繋がっている

その他のプロパティ

mtu 1500ネットワーク上で送信可能なパケットの最大サイズは1500バイト
qdisc fq_codelqdisc(Queueing Discipline) 送信パケットを取り扱うスケジューラ、 fq_codel(Fair Queueing Codel) は systemd のデフォルト。他にも10種類ほどあるがここでは省略。
state UPネットワークインターフェイスが作動中
group defaultグループインターフェイス
qlen 1000キューの長さ
link/ether 00:25:22:cf:c7:71macアドレス
brd ff:ff:ff:ff:ff:ffブロードキャストアドレス
inet 192.168.0.40/24IPv4 アドレス
brd 192.168.0.255ブロードキャストアドレス
scope globalscope global : 送信先はグローバル。

 

scope link : ローカルネットワーク内。

scope host : 自分自身のみ。

dynamic noprefixroute enp6s0予めネットワーク経路を固定せず動的にアドレスを割り当てる。
valid_lft 67751secIPv4 アドレスの有効期限
preferred_lft 67751sec適切な IPv4 アドレスの有効期限
inet6 fe80::7x77:x490:311x:5xx8/64IPv6 のアドレス。
scope link送信先はローカルネットワーク内のみ。
noprefixrouteIPv6 アドレスの割当。予め該当のネットワークの経路を固定しない。
valid_lft forever有効な IPv6 アドレスの有効期限
preferred_lft forever適切な IPv6 アドレスの有効期限

― 終 ―

-Linux
-, ,

Copyright© SlackNote , 2019 All Rights Reserved Powered by STINGER.