Linux は、最近解決した次ホップのリンクアドレスを近隣テーブルに保存します。Ethernet 上の IPv4 では ARP によってエントリを学習し、IPv6 では Neighbor Discovery を使います。従来の arp コマンドが表示するのはこの状態の一部だけですが、ip neighbor は両方のアドレスファミリーに対応します。
ネットワーク設定 · レッスン 5
arp
Linux の IPv4 ARP と IPv6 近隣キャッシュの状態を調べ、解釈する方法を学びます。
近隣エントリを表示する
すべてのエントリ、または一つのインターフェースを調べます。
$ ip neighbor show
$ ip neighbor show dev enp1s0
エントリには IP アドレス、リンク層アドレス、デバイス、到達可能性の状態が含まれます。ブート直後のテーブルは空の場合があり、ローカルの次ホップを必要とする通信に応じて追加されます。
現代の Linux で近隣テーブルの状態を表示するコマンドはどれですか?
IPv4 近隣を解決する
同一リンク上の IPv4 アドレスに対応する情報がない場合、ホストは対象アドレスの所有者を尋ねる ARP Request をブロードキャストします。対象、または proxy ARP を明示的に行うルーターが応答します。送信側は対応関係をキャッシュし、待機中のフレームを送信します。
リモート IP 宛ての場合、ホストはリモートホストの MAC アドレスではなく、選択されたゲートウェイのアドレスを解決します。
リンク外の宛先へ送るとき、ホストが解決する IPv4 近隣はどれですか?
状態を解釈する
代表的な状態には REACHABLE、STALE、DELAY、PROBE、INCOMPLETE、FAILED があります。STALE は最近の到達確認が期限切れになった状態で、必要に応じてプローブしながらキャッシュ済みアドレスをまだ使えます。FAILED は解決または到達性検出に失敗したことを示しますが、原因にはリンク、VLAN、アドレス、ルート、フィルタリング、相手の停止などが考えられます。
STALE は、その近隣へ到達不能だと判明したことを意味しますか?
近隣状態を慎重に変更する
静的エントリの設定やキャッシュ消去は状態を変える操作であり、動作中の通信を中断したり、元の証拠を消したりする可能性があります。まず現在のルート、パケットカウンター、近隣状態を記録してください。インターフェース全体を消去する前に、許可されたテストネットワークで対象を絞ったプローブとパケットキャプチャを行います。
ARP には組み込みの認証がないため、アドレス重複や偽装応答によって対応関係が汚染されることがあります。スイッチの保護機能、セグメンテーション、監視、上位層の認証が影響の軽減に役立ちます。
最初の診断手順として近隣テーブル全体を消去すべきでないのはなぜですか?
レッスン完了
arp を完了しました
これで、すべてのキャッシュ状態を障害とみなさずに近隣解決を調べられます。
IPv4 と IPv6 の状態確認に
ip neighborを使う。宛先が同一リンク上にある場合だけ、その宛先を解決する。
リンク外の IP 通信ではゲートウェイを解決する。
対象を絞った状態変更の前に、キャッシュの証拠を保存する。