LinuxはARP gratuitousまたはARPプローブ(RFC 5227で定義)を送信しますか


7

LinuxがターゲットIPを使用する前に、無償のARPまたはARPプローブを送信するかどうかを確認する実験を行いました。

実験シナリオは次のとおりです。

2台のLinuxコンピューターがあり、どちらも同じAPに接続されています。最初に接続し、ifconfig wlan0 192.168.1.30(別のLinuxコンピューターのデフォルトIPアドレスである)IPアドレスを静的に設定するために使用しました。

次に、WPA_supplicantを使用して他の1つを接続し、を使用dhclient wlan0してIPアドレスを取得します。スニファーから、2台目のコンピューターから送信された不必要なARPまたはARPプローブは観察されませんでした。

Linuxコンピュータはこれらの2つのARPリクエストをどのような条件で送信しますか?同じ条件なので、WindowsコンピューターがARPプローブを送信してIPを要求することがわかります。

ありがとう

回答:


2

デバイスでIPアドレスを手動で構成する場合、デバイスでアドレスの競合を確認する必要はありません。デバイスが独自のIPアドレス(DHCPなど)を構成する場合にのみ、アドレスの競合をチェックする必要があります。

デバイスが競合を検出した場合、デバイスがアドレスを変更する(または新しいアドレスを要求する)方法がないため、デバイスを手動で構成する場合、不必要なARPは表示されません。RFCの目的は、デバイスが独自のIPアドレスを構成し、取得したIPアドレスを変更する必要があるかどうかを検出できるようにすることです。DHCPなどの場合にそれを行うことができますが、アドレスを手動で構成する場合、その方法はありません。言い換えれば、デバイスは、人間であるあなたが何をしているのかを知っていることを信頼する必要がありますが、それ自体で得られるアドレスがまだ使用されていないことを確認する必要があります。


1
不正解です。私はRFC 5227のセクション2.1から引用します(強調は私のものです)-「IPv4アドレスを使用する前に(手動構成、DHCP、またはその他の手段から受け取ったかどうかにかかわらず)、この仕様を実装するホストは、アドレスがすでに存在するかどうかをテストする必要があります。 use .... " https://tools.ietf.org/html/rfc5227#section-2.1
Steve365

はい、しかしそれは実際には多くのOSベンダーが実装したものではないので、問題です。WireSharkを使用してこれを自分でテストできます。
Ron Maupin

実際、私はRFCに完全に準拠するには、実装がDHCPだけでなく手動のアドレス指定にもプロトコルを適用する必要があることを、将来の読者のために単に明確にしていました。あなたの冒頭の行は、これはそうではなかったことを示唆しました。これを行わないバグの多い実装がたくさんあることを知っています:)
Steve365

これを実際に実装する単一のOSを見たことがありません。ただし、一部のネットワーク機器で見たことがあります。OSベンダーは要点を見ていません。RFC全体を無視するものもあります(たとえば、RFC 3021-IPv4ポイントツーポイントリンクでの31ビットプレフィックスの使用。これは15年以上前から存在しています)。
Ron Maupin

Windowsの一部のバージョンはこれを実装しています。Wiresharkを使用して、静的IPを備えたWindows 7で確認しました。
Steve365 2016年

2

ここに質問Why would Linux send an ARP probe for an IP that is being locally assigned, it knows who the own of that IP will be (itself!) ?があります-あなたはIPを設定しているので、どのIPが空いているかを知る必要があります。rm -rf /Linuxがチェックしないときは、「チェックするだけ」です。これは、その操作を実行してもよいかどうかを知っている必要があるためです。Windows(たとえば)は、あなたの手を握ってそれをもっとばかげた証拠にする傾向があります(私の意見では)。

MS DHCPサーバーの場合、1つ(私が持っている)でパケットキャプチャを実行すると、クライアントにアドレスをリースする前にアドレスをpingして、まだ取得されていないことを確認します。それについて知っている(別のDHCPサーバーまたは静的割り当てによる)。

LinuxのインターフェースにIPを割り当てる場合、無償のARPを送信する必要はありません。別のホストがIP 1.2.3.4のMACを知りたい場合は、ARP要求を送信できます。インターフェイスがアップしたときにいつでもARPを無償で送信してもメリットはありません。

私はそれらをバックアップするための確固たる証拠なしにいくつかの発言をしたことを知っていますが、あなたの質問に従ってあなたはあなた自身のために同じ行動を見ました。これは論理的に理にかなっています。


0

Solaris 10以降では、静的に割り当てられたIPアドレスと動的に割り当てられたIPアドレスの両方で、IPv4のDAD(RFC 5227)をサポートしています。

NetBSDおよびその他のプラットフォーム(Ubuntuなど)のdhcpデーモン(dhcpd)は、RFC 5227をサポートしています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.