最近、ルーターのフェールオーバー後に、Windows 2008 Boxesがフェールバック後にプライマリルーターとの通信を開始しないという問題が発生しました。
掘り下げたときに、セカンダリルーターからのARPエントリがまだ残っていました。 TechNet Blog によると、これは仕様によるものです。
まず、Windows VistaまたはWindows Server 2008はnot update ARPブロードキャストが受信された場合のネイバーキャッシュレシーバーのブロードキャストARPリクエストの一部でない限りです。これは、Windows VistaとWidows Server 2008を使用するネットワークでGratuitous ARPが送信されたときに、IPアドレスの競合がある場合、これらのシステムがキャッシュを誤った情報で更新しないことを意味します。
第2に、Windowsのネイバーキャッシュ(arp-cache)は、マシンが現在そのキャッシュにあるマシンと通信できなくなった場合にのみ更新されるようです。キャッシュが古くなっていないことを確認するために、時々ARP要求を送信しません。これは最初のフェイルオーバーの際の問題ではありませんが、両方のボックスが動作しているフェールバックの際に、ウィンドウがセカンダリボックスと通信し続けます。
Windows 2008にGratuitous ARPリクエストを強制的に受け入れる方法はありますか?
テスト後、 Hotfix 2582281 で問題が修正されたようです。 hotfix request page を使用すると、サポートに料金を支払うことなく修正プログラムを入手できます。
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ブロードキャストが無視される問題が修正されるようです。
たった今自分のTCPIP問題を調査しているときに、この非常に興味深いHotfixに遭遇しました。
http://support.Microsoft.com/kb/2582281
原因:
この問題は、アプリケーションサーバーのTCP/IPスタックがGratuitous Address Resolution Protocol(ARP)リクエストを誤って無視するために発生します。
これは、あなたが遭遇しているものに酷似しています。また、2011年7月22日にリリースされた新しいホットフィックスでもあるので、最初に出会ったときはそうではありませんでした。
netsh interface ipv4 set interface x basereachable=y
を試してください。xはインターフェースインデックス、yは必要なミリ秒単位のARPタイムアウトです。管理者権限を持つコマンドプロンプトから必ず実行してください。
どのファーストホップ冗長プロトコルを使用していますか?
私はこれがあなたの質問に直接答えないことを知っていますが、VRRP(およびその独自のフォアベアラー、HSRP)は、マスタールーターが変更されたときに新しいスイッチポートにフリップされる共有MACアドレスを使用します。これは、完全に不要なARPの必要性を回避します。
前提条件
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。 arpingの制限により、IPv6がネットワークインターフェイスで無効になっています
4。アーピング
- http://mathieu.carbou.free.fr/pub/arping/2.06/arping.Zip (Windowsバイナリ)
実行
1。インターフェース名を取得
-"E:\ Program Files\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アドレスです。