個人的に、仕事で「ip」コマンドを使うことが増えた。
でも、コマンド自体が多機能でやや複雑なのと、
そもそもコマンドで表示している内容について理解が曖昧・・・(´・ω・`)
そこで、どうやら代表的らしいコマンドに絞って、
・コマンドそのもの
・コマンドの前提にあるネットワークの仕組み
・コマンド実行結果の読み方
について確認していきたい。
今回は、ip linkコマンドと、ip addrコマンドを紐解いていく。
姉妹編はこちら。
【基礎】ipコマンドから紐解くネットワーク~ip route, ip neigh編~
もくじ
1.ip link
( ネットワークインタフェースとは何ぞや / コマンド実行結果例 / 出力内容の意味 )
2.ip addr
■ip link
ネットワークインタフェースを確認するコマンド。
◎ネットワークインタフェースとは何ぞや
名前の通り、ネットワーク通信をするためのインタフェース(窓口)のことを指す。
NIC(Network Interface Card)、LANアダプタ、LANボード、LANカード、ネットワークアダプタ、ネットワークカード などの用語とほぼ同義。
(厳密にはそれぞれ意味が若干違ったりするらしいけど…もうちょっと統一してくれ泣)
ここでいう「ネットワーク通信」とは、OSI基本参照モデルにおけるネットワーク層(第3層)での通信にあたる。
ネットワークインタフェースに対してIPアドレスが割り当てられることで、
該当ネットワークインタフェースを持つホスト(機器)がネットワーク通信(IP通信)できるようになる。
◎コマンド実行結果例
# ip link show ※「ip link」または「ip l」でも同じ結果出力となる
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:2c:27:fc:f1:2d brd ff:ff:ff:ff:ff:ff
◎出力内容の意味
出力結果の冒頭には、
・ネットワークインタフェースの名称(「lo」や「」の部分)
・種別・属性(<>で囲われた部分)
が記載される。
以降の部分は、当該ネットワークインタフェースの設定内容が、「キー名 値」の順でずらずらと書かれる。
キーの意味は以下の通り。
キー | 意味 |
---|---|
mtu | Maximum Transmission Unitの略。 1回の転送で送信可能なIPパケットの最大データサイズ。 |
qdisc | Queueing Disciplineの略。 送信パケットの送信順序変更、遅延、廃棄などの機能の設定。 設定する値について、詳しくはこのQiita記事に説明があった。 |
state | ネットワークインタフェースの状態(稼働中かどうか) |
mode | ※これだけ意味が分かっていません。(ごめんなさい) 分かったら追記します & どなたかご存じでしたら教えてください |
qlen | キューの長さ。 (たぶん、キー名はQueue Lengthの略だと思う) |
link/loopback または link/ether |
MACアドレス。 |
brd | ブロードキャストアドレス。 |
■ip addr
IPアドレスを確認するコマンド。
昔はifconfigコマンドというものだったらしい。
ネットワークインタフェース毎にIPアドレスの内容詳細が出力されるため、
ip linkの詳細版表示コマンドと言っても良いかも。
◎コマンド実行結果例
# ip addr show ※「ip addr」または「ip a」または「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: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:2c:27:fc:f1:2d brd ff:ff:ff:ff:ff:ff
inet 192.168.1.100/24 brd 192.168.1.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::24fe:fe1c:bc44:fe56/64 scope link
valid_lft forever preferred_lft forever
※キー部分を赤字とした
◎出力内容の意味
前半2行までは、ip linkコマンドの出力結果と同等である。
3行目以降も、キーと値によるIPアドレスの詳細設定が記述されている形式に変わりはない。
各キーの意味は以下の通り。
キー | 意味 |
---|---|
inet |
IPv4のアドレス。 |
scope |
送信可能範囲。 自分自身(localhost)のみorローカルネットワーク範囲のみor インターネットへも送信できるのかを示す。 |
inet6 |
IPv6のアドレス。 |
valid_lft |
Valid_LifeTimeの略。 |
preferred_lft |
Preferred_LifeTimeの略。 IPアドレスの適切な有効期限を指す。 preferred_lftとvalid_lftの違いは、おそらく、 前者が理想、後者が実際の有効期限ということだと思う。(たぶん) |
■参考サイト
https://qiita.com/MasayukiMiyake/items/91c01f5bb25451a12248
https://qiita.com/hana_shin/items/d9ba818b49aca87b2314
https://qiita.com/pe-ta/items/aff8db72530c6baa11b2
https://slacknotebook.com/checking-network-configs-on-linux-using-ip-command/