%20%E3%81%AE%20Linux%20%E3%81%A7%E5%90%8C%E3%81%98%E3%82%B5%E3%83%96%E3%83%8D%E3%83%83%E3%83%88%E5%86%85%E3%81%AE%E9%87%8D%E8%A4%87%20IP%20%E3%82%92%E5%87%A6%E7%90%86%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95.png)
これはかなり長い間私を悩ませてきましたが、その理由や動作を変更する方法がわかりませんでした。
IP の重複は、タイプミスや DHCP エラーなどによって発生する可能性がありますが、時々発生します。
CentOS などの rpm ベースのシステムでは、重複した IP を持つ古いサーバーが優先され、新しいサーバーは NIC (IP アドレスが既に使用されている) を起動するときにエラーが発生します。起動中のシステムを修正するだけでよいため、これはそれほど害はありません。
一方、Ubuntu は使用済みの IP をそのまま取得し、古いサーバー/デバイスを有効な IP なしで残します。これは停止を引き起こすため、より危険な動作です。
私が望んでいるのは、Ubuntu の動作を CentOS/RHEL の動作に変更することなので、ご協力いただければ幸いです。
答え1
RedHat ベースのシステムでは、この機能は arping によって提供されます。
このコマンドを使用します(/etc/sysconfig/network-scripts/ifup-ethの261行目)
/sbin/arping -q -c 2 -w 3 -D -I <dev> <ip>
重要なのは、重複検出モードに使用される -D です。基本的に、これを起動スクリプトに挿入して、アドレスを追加する前にアドレスが使用可能かどうかを確認します。