TL; DRバージョン:これは、Windows Server 2008 R2のBroadcomネットワークの深いバグであることが判明しました。Intelハードウェアと交換すると修正されました。Broadcomハードウェアは使用しなくなりました。今まで。
Linux-HAプロジェクトのハートビートとともにHAProxyを使用しています。フェイルオーバーを提供するために2つのLinuxインスタンスを使用しています。各サーバーには、独自のパブリックIPと、IP:69.59.196.211の仮想インターフェイス(eth1:1)を使用して2つのサーバー間で共有される単一のIPがあります。
仮想インターフェイス(eth1:1)IP 69.59.196.211は、背後のWindowsサーバーのゲートウェイとして構成され、ip_forwardingを使用してトラフィックをルーティングします。
Linuxゲートウェイの背後にあるWindowsサーバーの1つで、時々ネットワークが停止します。HAProxyはサーバーがオフラインであることを検出します。これは、障害が発生したサーバーにリモート接続し、ゲートウェイにpingを試行することで確認できます。
32バイトのデータを使用した69.59.196.211のping: 69.59.196.220からの返信:宛先ホストに到達できません。
arp -a
この失敗したサーバーで実行すると、ゲートウェイアドレス(69.59.196.211)のエントリがないことが示されます。
インターフェース:69.59.196.220 --- 0xa インターネットアドレスの物理アドレスタイプ 69.59.196.161 00-26-88-63-c7-80ダイナミック 69.59.196.210 00-15-5d-0a-3e-0eダイナミック 69.59.196.212 00-21-5e-4d-45-c9ダイナミック 69.59.196.213 00-15-5d-00-b2-0d動的 69.59.196.215 00-21-5e-4d-61-1aダイナミック 69.59.196.217 00-21-5e-4d-2c-e8ダイナミック 69.59.196.219 00-21-5e-4d-38-e5ダイナミック 69.59.196.221 00-15-5d-00-b2-0d動的 69.59.196.222 00-15-5d-0a-3e-09ダイナミック 69.59.196.223 ff-ff-ff-ff-ff-ff static 224.0.0.22 01-00-5e-00-00-16静的 224.0.0.252 01-00-5e-00-00-fc静的 225.0.0.1 01-00-5e-00-00-01静的
Linuxゲートウェイでは、インスタンスarp -a
は以下を示します。
peak-colo-196-220.peak.org(69.59.196.220)at <不完全> eth1 stackoverflow.com(69.59.196.212)at 00:21:5e:4d:45:c9 [ether] on eth1 peak-colo-196-215.peak.org(69.59.196.215)at 00:21:5e:4d:61:1a [ether] on eth1 peak-colo-196-219.peak.org(69.59.196.219)at 00:21:5e:4d:38:e5 [ether] on eth1 peak-colo-196-222.peak.org(69.59.196.222)at 00:15:5d:0a:3e:09 [ether] on eth1 peak-colo-196-209.peak.org(69.59.196.209)at 00:26:88:63:c7:80 [ether] on eth1 peak-colo-196-217.peak.org(69.59.196.217)at 00:21:5e:4d:2c:e8 [ether] on eth1
なぜarpは、この失敗したサーバーのエントリを<incomplete>として設定するのですか? arpエントリを静的に定義する必要がありますか?それは99%の時間で動作するため、私は常にarpをそのままにしてきましたが、この1つの例では失敗しているようです。この問題の解決に役立つトラブルシューティング手順はありますか?
試したもの
Linuxゲートウェイの1つでテストするための静的なarpエントリを追加しましたが、まだ役に立ちませんでした。
root@haproxy2:~# arp -a
peak-colo-196-215.peak.org (69.59.196.215) at 00:21:5e:4d:61:1a [ether] on eth1
peak-colo-196-221.peak.org (69.59.196.221) at 00:15:5d:00:b2:0d [ether] on eth1
stackoverflow.com (69.59.196.212) at 00:21:5e:4d:45:c9 [ether] on eth1
peak-colo-196-219.peak.org (69.59.196.219) at 00:21:5e:4d:38:e5 [ether] on eth1
peak-colo-196-209.peak.org (69.59.196.209) at 00:26:88:63:c7:80 [ether] on eth1
peak-colo-196-217.peak.org (69.59.196.217) at 00:21:5e:4d:2c:e8 [ether] on eth1
peak-colo-196-220.peak.org (69.59.196.220) at 00:21:5e:4d:30:8d [ether] PERM on eth1
root@haproxy2:~# arp -i eth1 -s 69.59.196.220 00:21:5e:4d:30:8d
root@haproxy2:~# ping 69.59.196.220
PING 69.59.196.220 (69.59.196.220) 56(84) bytes of data.
--- 69.59.196.220 ping statistics ---
7 packets transmitted, 0 received, 100% packet loss, time 6006ms
Windows Webサーバーを再起動すると、ネットワークに他の変更を加えることなくこの問題が一時的に解決されますが、経験上、この問題は再発することが示されています。
ネットワークカードとスイッチの交換
障害が発生したWindowsサーバーのスイッチのポートのリンクライトが、障害が発生したインターフェイスで1Gbではなく100Mbで実行されていることに気付きました。ケーブルを他のいくつかの開いているポートに移動すると、リンクは試行した各ポートに対して100Mbを示しました。私も同じ結果でケーブルを交換しました。Windowsでネットワークカードのプロパティを変更しようとすると、サーバーがロックされ、[適用]をクリックした後にハードリセットが必要になりました。このWindowsサーバーには2つの物理ネットワークインターフェイスがあるため、2つのインターフェイスのケーブルとネットワーク設定を交換して、問題がインターフェイスに続いているかどうかを確認しました。パブリックインターフェイスが再びダウンした場合、ネットワークカードの問題ではないことがわかります。
(手元にある別のスイッチも試してみましたが、変更はありません)
ネットワークハードウェアドライバーのバージョンの変更
最新のBroadcomドライバー、およびWindows Server 2008 R2に同梱されている組み込みドライバーでも同じ問題が発生しました。
ネットワークケーブルの交換
最後の溝の努力として、発生した別の変更は、サーバー/スイッチ間のすべてのパッチコードの交換であったことを思い出しました。私たちは2セットを購入しました。1つはプライベートインターフェイス用の長さ1フィート-3フィートの緑、もう1つはパブリックインターフェイス用の赤いケーブルのセットです。すべてのパブリックインターフェイスパッチケーブルを別のブランドのものに交換し、サーバーを1週間問題なく実行しました。
チェックサムオフロードを無効にし、TProxyを削除します
また、ドライバーでTCP / IPチェックサムオフロードを無効にしてみましたが、変更はありません。現在、TProxyを撤回し、x-forwarded-for
IPアドレスを空想することなく、従来のネットワーク配置に移行しています。それが役立つかどうかを確認します。
スイッチ仮想化プロバイダー
偶然、これが何らかの形でHyper-Vに関連していた(Linux VMをホストしている)ので、VMWareサーバーに切り替えました。変化なし。
ホストモデルの切り替え
トラブルシューティングのロープの終わりに達し、現在マイクロソフトのサポートに正式に関与しています。ホストモデルの変更を推奨しました:
- http://en.wikipedia.org/wiki/Host_model
- http://technet.microsoft.com/en-us/magazine/2007.09.cableguy.aspx
それを行い、2008 R2 SP1に組み込まれたと思われる未公開のカーネルホットフィックスも入手しました。修正なし。
ネットワークカードハードウェアの交換
最終的に、BroadcomネットワークハードウェアをIntelネットワークハードウェアに置き換えると、この問題が修正されました。だから、Broadcom Windows Server 2008 R2のドライバーに問題があると思います!