【基礎】ipコマンドから紐解くネットワーク~ip link, ip addr編~ | 若手エンジニアのブログ

若手エンジニアのブログ

文系出身の若手女子エンジニアによる技術ブログ。
日々の経験や学びをアウトプットするためにブログを書いています。
バックエンド(Java+SpringFramework)を経てインフラエンジニアになりました。
今は育休中につき、本で勉強したことを中心にアウトプットしています。

個人的に、仕事で「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の略。
IPアドレスの有効期限を指す。
(値がforeverの場合は有効期限はないが、
数字などが入っている場合は有効期限ありとなるので注意)

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/