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

image from Thomas Jensen

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

$ ip addr

IPアドレスとプロパティを表示させるコマンド(address の略語)

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:cf:c7: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::7a77:f490:311f: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::7a77:f490:311f:5be8/64IPv6 のアドレス。
scope link送信先はローカルネットワーク内のみ。
noprefixrouteIPv6 アドレスの割当。予め該当のネットワークの経路を固定しない。
valid_lft forever有効な IPv6 アドレスの有効期限
preferred_lft forever適切な IPv6 アドレスの有効期限


こちらの記事もどうぞ

Linux、Spectre V2 対応パッチをデフォルトで無効化、大幅な性能低下のため... トーバルズ氏、デフォルトでは防御機能(STIBP)を無効化すると発表 先週、休暇から復帰したリーナス・トーバルズ氏は、データ漏えいの危険性を持った脆弱性「Spectre Variant 2(スペクター2)」に対応したカーネルパッチについての見解を語り、デフォルトでは防御機能を無効化す...
グラフィカルな Nvidia GPU 用オーバークロックツール「Nvidiux」... Nvidiux Nvidiux は Python で作られた Nvidia GPU 用のオーバークロック・ツールだ。 このツールは Nvidia GPU をオーバークロックするのに必要な Coolbits オプションを付加した xorg.conf ファイルを自動生成し、ユーザが設...
Linux の CCCoC(行動規範)導入について... Photo by Brian McMahon on Unsplash 初稿:2018/09/29改稿:2018/10/05 Linux に今までの Code of Conflict に取って代わって、新たに CCCoC(Code of Conduct、行動...
Linux では AMD と NVIDIA どっちが良いのか 2018... 初稿 2018年9月10日改稿 2018年10月3日 Radeon と GeForce 、Linux ではどっちが良いかという論争が度々起こる。今回は自分なりの感想を載せながらどちらが良いか比較しようと思う。ベンチマークなどは他の海外サイトがいくらでも載せてくれているので、そのリンクのみにと...

コメントを残す

メールアドレスが公開されることはありません。