Linuxコマンド【ip neigh】ARPテーブル表示の見方やflush,Static ARPエントリ追加/削除の設定

ARPテーブル管理コマンド ip neigh

最近の Linux では ip 関連の操作コマンドは ip コマンドに切り替わっています。ARPテーブルの表示も ip コマンドのサブコマンド ip neigh を使って行うことができます。(ip nei だけでもいける)

ARP テーブルの表示

[root@localhost ~]# ip neigh
192.168.100.100 dev enp0s3 lladdr 60:6c:66:d1:9c:eb REACHABLE
192.168.100.1 dev enp0s3 lladdr b0:e5:ed:b6:27:04 STALE
fe80::b2e5:edff:feb6:2704 dev enp0s3 lladdr b0:e5:ed:b6:27:04 router STALE

IPv4だけでいい場合は以下

[root@localhost ~]# ip -4 neigh
192.168.100.100 dev enp0s3 lladdr 60:6c:66:d1:9c:eb REACHABLE
192.168.100.1 dev enp0s3 lladdr b0:e5:ed:b6:27:04 STALE

ARPテーブルの見方

右端は「エントリのIPアドレス」、devの横の enp0s3 は「ARPエントリのホストに繋がる自ノードのインタフェース名」、lladdr は Link-Layer-Address つまり MACアドレスを意味し、その横に「エントリのMACアドレス」が入ります。最後は STATE(状態)を表しています。

ARPによる更新が最近行われたばかり、もしくは自デバイスであれば REACHABLE になります。STALE は"腐ってる≒新鮮じゃない"という意味ですが ARP による更新を行ってから幾分か時間が経過している、というだけです。実際には疎通できていることがほとんどのはずです。

なお、ARPの保持時間などについては以下を参考にして下さい。

【図解】ARPの仕組みとWindows/Linuxでの仕様・コマンド 〜種類、フォーマット、キャッシュ時間、確認・クリアコマンド〜
【図解】ARPの仕組みとWindows/Linuxでの仕様・コマンド 〜種類、フォーマット、キャッシュ時間、確認・クリアコマンド〜
ARP(読み方:アープ)とは、IPアドレスに紐付くMACアドレスを知るために利用...

動的エントリのキャッシュ削除(flush)

ARP により学習したエントリは flush にて削除することができます。

[root@localhost ~]# ip neigh flush 192.168.100.1
[root@localhost ~]# ip -4 neigh
192.168.100.100 dev enp0s3 lladdr 60:6c:66:d1:9c:eb REACHABLE

固定エントリの追加

Static エントリを追加する場合は add を使います。

[root@localhost ~]# ip neigh add 192.168.100.2 dev enp0s3 lladdr 00:12:34:56:78:9a
[root@localhost ~]# ip -4 neigh
192.168.100.2 dev enp0s3 lladdr 00:12:34:56:78:9a PERMANENT
192.168.100.100 dev enp0s3 lladdr 60:6c:66:d1:9c:eb REACHABLE

STATE が PERMENENT であるエントリが追加されました。

固定エントリの削除

add と同じ要領で del を使います。dev だけ指定すればOK。

[root@localhost ~]# ip neigh del 192.168.100.2 dev enp0s3
[root@localhost ~]# ip -4 neigh
192.168.100.100 dev enp0s3 lladdr 60:6c:66:d1:9c:eb REACHABLE

man ページ

#man ip-neighbour

フォローする