4.14.7カーネルを実行するLinuxデバイスがあります。マイデバイスAは、1Gigポートを介してサードパーティ製デバイス(デバイスB)に直接接続されています。 UDHCPD サーバーは dev-A で実行され、常に DHCP 構成に基づいて単一の IP アドレスを割り当てます。
Dev-Aは、マスクが255.255.0.0の172.16.xxにあります。
Dev-B には、Dev-A で動作する UDHCPD の 172.16.100.1 と 255.255.255.0 が割り当てられます。
場合によっては、Dev-Bの「arp」テーブルに「不完全」と表示され、通信が失敗することがあります。この時点で、Dev-BがUDHCPDサーバーから有効なリースを取得したことがわかります。
$arp
? (172.16.100.1) at <incomplete> on br0
pingはDev-Bへの接続を復元します。 「ping」を実行せずにこの問題をどのように解決できますか?
よろしくお願いします。
答え1
「不完全」エントリは、システムが特定のIPアドレスに関連付けられているMACアドレスを認識しない場合に発生します。
デバイスが独自のIPアドレスにARP要求を送信し、そのIPアドレスがすでに使用されていることを確認するARPプローブを使用できます。これはARPキャッシュが正しいMACアドレスに更新されるのを助けます。
LinuxでARPプローブを有効にするには、次のコマンドを使用できます(ネットワークインタフェース名(eth0)に置き換えます)。
ip neigh flush dev <interface> nud permanent
このコマンドは ARP キャッシュをフラッシュし、ARP プローブを送信してエントリを更新します。