💭

自身のIPアドレスの重複検知

commits1 min read

TL;DR

Ubuntuサーバ20.04で、重複しているIPを持つサーバから重複しているかどうかを検知する場合は

arping -I eth0 -0 -c 2 (IPアドレス)

(eth0は適宜置き換え)を実行し、応答がある(戻り値:0)場合は重複あり、応答がない(戻り値:1)の場合は重複なしと判断します。

経緯

Ubuntu20.04 サーバ上で使用しているIPアドレスが重複しているかどうかを、そのIPアドレスを使用するサーバから検知したいと考えました。

arping, arp-scan等のコマンドを使うと説明するサイトが多数見つかるのですが、ほとんどが重複しているIPを持つ可能性のあるサーバとは別のサーバで実行することが前提のようで、うまくいきませんでした。

自身が同じIPアドレスを持っていると、そのIPアドレスを対象としたARPリクエストを送ってくれないようでTIMEOUTになってしまいます。

そこで、-0(数字のゼロ)オプションをつけると、ARPリクエストを送ってくれるようになりました。ただし、自分自身からは応答が帰ってきませんので、応答がある(戻り値:0)場合は重複あり、応答がない(戻り値:1)場合は重複なしと判断することになります。

このオプションは、ARPリクエスト送信時の送信元IPアドレスを0.0.0.0にするもののようで、これによりARPリクエスト自体が送られない問題を回避できるようです。

参考: Ubuntu20.04にインストールされるThomas Habetsさんのarpingのマニュアル

GitHubで編集を提案

Discussion

ログインするとコメントできます