Windows 2008はGratuitous ARP要求を無視します


38

最近、ルーターのフェールオーバー後に、フェールバック後にWindows 2008 Boxesがプライマリルーターと通信を開始しなかったという問題が見つかりました。

いくつかの掘削を行ったときに、セカンダリルーターからのARPエントリがまだありました。TechNetブログによると、これは仕様によるものです。

まず、Windows VistaまたはWindows Server 2008は、ARPブロードキャストが受信者へのブロードキャストARP要求の一部でない限り、ARPブロードキャストを受信した場合、近隣キャッシュを更新ません。つまり、Windows VistaおよびWidows Server 2008を使用してネットワーク上でGratuitous ARPが送信された場合、IPアドレスの競合がある場合、これらのシステムは誤った情報でキャッシュを更新しません。

次に、マシンが現在キャッシュにあるマシンと通信できなくなった場合にのみ、windows neighbor-cache(arp-cache)が更新されるようです。キャッシュが古くなっていないことを確認するために、時々ARP要求を送信しません。これは最初のフェールオーバーでは問題になりませんが、両方のボックスが生きているフェールバックでは、ウィンドウがセカンダリボックスと通信し続けます。

Windows 2008でGratuitous ARPリクエストを受け入れるようにする方法はありますか?


回答:


8

テスト後、Hotfix 2582281で問題が修正されたようです。修正プログラムのリクエストページを使用して、サポートを支払うことなく修正プログラムを入手できます

arpingパッチを適用していないWindows 2008 R2 を使用して、このテストを実行しました。同じネットワークL2セグメントにあるマシンにセカンダリIP、64.34.119.80を追加しました。次に、ネットワーク()の別のマシンから次のコマンドを発行しましたsudo arping -U 64.34.119.80 -I bond0 -c1。その直後、wiresharkでarpを受信したのを見て、Windowsボックスから64.34.119.80にpingを送信しました。その後、修正プログラムを適用し、テストを繰り返しました。

また、arpingコマンドはユニキャストMACアドレスを使用する必要はなく、ブロードキャストMACを使用する必要があるようです。これは、これがテストで無視される唯一のタイプのGARPであるためです。

パッチの前:

ここに画像の説明を入力してください

このWiresharkキャプチャでは、GARP要求の送信後のpingは、GARPの送信元であるMAC宛先に送信されないため、GARPが無視されていることがわかります。

パッチの後:

ここに画像の説明を入力してください

このテストでは、パッチの後、GARPの送信元のMACアドレスにpingが送信されるため、GARP要求は受け入れられるようです。

したがって、これらのテストから、修正プログラム2582281がGARPブロードキャストが無視される問題を修正しているようです。


4

たった今、自分のTCPIPの問題を調査しているときに、この非常に興味深いHotfixに出会いました。

http://support.microsoft.com/kb/2582281

原因:

この問題は、アプリケーションサーバーのTCP / IPスタックがGratuitous Address Resolution Protocol(ARP)要求を誤って無視するために発生します。

これは、あなたが実行しているものに酷似しています。また、2011年7月22日にリリースされたまったく新しい修正プログラムでもあるため、最初に遭遇したときはそうではありませんでした。


このKBは消えたように見えますか?
カイルブラント

@KyleBrandtそれはそこにありましたが、今ではなくなっています。:問題は今、別の場所でサービスパック/更新で覆われている場合、私はおそらく、この1、不思議support.microsoft.com/kb/2578103
sysadmin1138

3

試しnetsh interface ipv4 set interface x basereachable=yxは、インタフェース指数であり、yは、あなたがしたいことをミリ秒単位でARPタイムアウトです。管理者権限でコマンドプロンプトから実行することを忘れないでください!


2
これは、実際には、近隣キャッシュがエントリが古くなっていると到達可能であると判断する間の時間を調整するだけです。フェールバックの時点で両方のHAボックスが稼働している場合、Windowsはそれを失効したと見なし、再arpしません。
ザイファー

1
Windowsに強制的なARPを許可させる方法はないと思います。実際、このため、異なるシナリオでフェールオーバー/フェールバックを実現するには、ベース到達可能時間を短縮する必要がありました。

3

どのファーストホップ冗長プロトコルを使用していますか?

これはあなたの質問に直接答えるものではないことは承知していますが、VRRP(およびその独自のフォアベアラーであるHSRP)は共有MACアドレスを使用します。これにより、無償ARPの必要性が完全に回避されます。


1

PREREQS
1. WinPcapの4.0.1(4.1.2バージョンは仕事をしません)
- http://www.winpcap.org/archive/4.0.1-WinPcap.exe(Windowsのバージョン)
2. Wiresharkの1.6.7
3. IPv6の無効化arpingの制限により、ネットワークインターフェイスで
4. arping
- http : //mathieu.carbou.free.fr/pub/arping/2.06/arping.zip (Windowsバイナリ)の

実行 \ Wireshark \ tshark.exe "-D -Wiresharkインターフェースの詳細から 2. ARP Gratuitousリクエストを送信するためにarpingを実行します -arping.exe -A -i \ Device \ NPF_ {4399F778-AF25-4B6D-AFFB-A1F2C7DFA667} 10.20.30.50 -c 3 -S 10.20.30.50





10.20.30.50は、ネットワーク(ルーター)に通知するIPアドレスです。


-4

http://blog.serverfault.com/post/windows-2008-and-broken-arp/からのリンクでこれに遭遇しました。

あなたがstackoverflowで尋ねたなら、あなたははるかに速く修正されたかもしれません。

GARPパケットをスニッフィングし、arp -s inet_addr eth_addrを実行します。

LANに悪意のあるマシンを取得する可能性が最も低い場合は、これを行わないでください。


それは実際には修正ではありません。これは、1台のマシンで機能する回避策です。動作はまだ壊れています。実行しているのは、動作の根本原因を修正するのではなく、arpテーブルのアドレスを手動で変更することだけです。
ザイファー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.