今回も、Linuxのipコマンドを紐解いていく。
ip route と、 ip neigh コマンドについて、
・コマンドそのもの
・コマンドの前提にあるネットワークの仕組み
・コマンド実行結果の読み方
について確認していきたい。
姉妹編はこちら。
【基礎】ipコマンドから紐解くネットワーク~ip link, ip addr編~
もくじ
1.ip route
( ルーティングテーブルとは / コマンド実行結果例 / 出力内容の意味 )
2.ip neigh
( ARPとは / ARPのキャッシュとは / コマンド実行結果例 /出力内容の意味 )
■ip route
ルーティングテーブル(経路情報)を確認するコマンド。
昔は単体で「route」コマンドだったらしい。
◎ルーティングテーブルとは
前提として、インターネット通信は、
自分(PCやスマホなど)と宛先サーバの、1:1で直接行われるものではない。
意識することはあまりないかもしれないが、間にいくつものルーターを経て、宛先サーバにたどり着く仕組みとなっている。
(※インターネット通信の基礎について、詳しくはこちらの記事参照)
間に入るルーターたちは、各々ルーティングテーブル(別名:経路情報)を持っている。
ルーティングテーブルは、どんなパケットがきたら、どこ宛に送れば良いかを、一覧にしてまとめたものであり、
ルーティングテーブルに基づいてパケットの転送が行われるようになっている。
で、このルーティングテーブル(経路情報)の中身を確認できるのが、
ip routeというコマンドである。
◎コマンド実行結果例
#ip route ※「ip r」でも同じ結果出力となる
default via 10.6.32.96 dev eth1 proto static metric 101
172.17.0.0/16 dev eth1 proto kernel scope link src 172.17.0.1
192.168.0.0/24 dev eth192 prote kernel scope link src 192.168.0.254
◎出力内容の意味
コマンド実行結果例の2行目を例に、番号順に内容を説明する。
①172.17.0.0/16 ②dev eth1 ③proto kernel ④scope link ⑤src 172.17.0.1
番号/キー(あれば) | 意味 |
---|---|
① | 宛先ネットワーク。 |
②/dev | 宛先ネットワークに向かうために、 どのネットワークインタフェース(NIC)から出発するか。 |
③/proto | このルーティング情報がどのように生成されたか。 値がkernerlなら、kernelが生成(ダイナミックルーティング)。 値がstaticなら、手動作成(スタティックルーティング)。 |
④/scope | 宛先ネットワークの種別。 値がhostなら、自分自身が宛先。 値がlinkなら、ローカルネットワークが宛先。 値がgrobalまたはscope情報省略時は外部ネットワークが宛先。 なお値がgrobalの時は、ネクストホップのルーター情報が、 別途viaキーにて示される。(コマンド実行結果例の1つめ参照) |
⑤/src | 送信元IPアドレス。 |
■ip neigh
ARPのキャッシュを確認するコマンド。
◎ARPとは何ぞや
Address Resolution Protocolの略。
IPアドレスからイーサネットのMACアドレス(LAN内のMACアドレス)を求めるプロトコル。
ブロードキャスト通信(同一ネットワーク内の全機器に対して一斉に通信)で、問い合わせ要求を行い、
指定されたIPアドレスを持つ機器からMACアドレスを確認する仕組みとなっている。
◎ARPのキャッシュとは何ぞや
IP⇔MACアドレスの対応関係を、通信毎にいちいち確認するのは非効率。
そのため、一度確認したIP⇔MACアドレスの対応関係は、ARPテーブルというものに保存され、
一定期間保持される仕組みが存在する。
この仕組みが、ARPのキャッシュと呼ばれるものであり、
ip neighbourコマンドでは、キャッシュの内容を確認することができるようになっている。
◎コマンド実行結果例
# ip neigh ※「ip n」または「ip neighbour」でも同じ結果出力となる
10.0.2.2 dev eth0 lladdr 52:54:10:12:45:02 REACHABLE
192.168.0.11 dev eth1 lladdr 00:0c:35:0b:18:3d STALE
◎出力内容の意味
コマンド実行結果例の1行目を例に、番号順に内容を説明する。
①10.0.2.2 ②dev eth0 ③lladdr 52:54:10:12:45:02 ④REACHABLE
番号/キー(あれば) | 意味 |
---|---|
① | IPアドレス。 |
②/dev | 対象IPアドレスへ通信する場合に利用する、 自分のネットワークインタフェース名。 |
③/lladdr | キー名はLink Local Addressの略。 ①のIPアドレスに対応する、MACアドレスを表す。 |
④ | IPアドレス⇔MACアドレスの対応関係の情報の鮮度状態を示す。 REACHABLEなら、最近対応関係を確認更新できたという意味。 STALEの場合は、更新が最近ではないことを示す。 (STALEだとしても、対応関係が間違っているとは限らない) |
■参考サイト
https://www.infraexpert.com/study/tcpip2.html
https://qiita.com/cafedrip/items/8f0cc9544910cba23be8
https://qiita.com/testnin2/items/7490ff01a4fe1c7ad61f
https://milestone-of-se.nesuke.com/sv-basic/linux-basic/arp-ip-neighbour/