TL; versi DR: Ternyata ini adalah bug jaringan Broadcom yang mendalam di Windows Server 2008 R2. Mengganti dengan perangkat keras Intel memperbaikinya. Kami tidak menggunakan perangkat keras Broadcom lagi. Pernah.
Kami telah menggunakan HAProxy bersama dengan detak jantung dari proyek Linux-HA. Kami menggunakan dua instance linux untuk menyediakan failover. Setiap server memiliki IP publik mereka sendiri dan satu IP tunggal yang dibagi antara keduanya menggunakan antarmuka virtual (eth1: 1) di IP: 69.59.196.211
Antarmuka virtual (eth1: 1) IP 69.59.196.211 dikonfigurasi sebagai gateway untuk server windows di belakangnya dan kami menggunakan ip_forwarding untuk merutekan lalu lintas.
Kami mengalami pemadaman jaringan sesekali di salah satu server windows kami di belakang gateway linux kami. HAProxy akan mendeteksi server sedang luring yang dapat kami verifikasi dengan melakukan remoting ke server yang gagal dan mencoba melakukan ping gateway:
Pinging 69.59.196.211 dengan 32 byte data: Balas dari 69.59.196.220: Host tujuan tidak dapat dijangkau.
Berjalan arp -a
di server yang gagal ini menunjukkan bahwa tidak ada entri untuk alamat gateway (69.59.196.211):
Antarmuka: 69.59.196.220 --- 0xa Alamat Internet Jenis Alamat Fisik 69.59.196.161 00-26-88-63-c7-80 dinamis 69.59.196.210 00-15-5d-0a-3e-0e dinamis 69.59.196.212 00-21-5e-4d-45-c9 dinamis 69.59.196.213 00-15-5d-00-b2-0d dinamis 69.59.196.215 00-21-5e-4d-61-1a dinamis 69.59.196.217 00-21-5e-4d-2c-e8 dinamis 69.59.196.219 00-21-5e-4d-38-e5 dinamis 69.59.196.221 00-15-5d-00-b2-0d dinamis 69.59.196.222 00-15-5d-0a-3e-09 dinamis 69.59.196.223 ff-ff-ff-ff-ff-ff statis 224.0.0.22 01-00-5e-00-00-16 statis 224.0.0.252 01-00-5e-00-00-fc statis 225.0.0.1 01-00-5e-00-00-01 statis
Pada linux gateway, instance arp -a
menunjukkan:
peak-colo-196-220.peak.org (69.59.196.220) di <lengkap> pada eth1 stackoverflow.com (69.59.196.212) pada 00: 21: 5e: 4d: 45: c9 [ether] di eth1 peak-colo-196-215.peak.org (69.59.196.215) pukul 00: 21: 5e: 4d: 61: 1a [ether] on eth1 peak-colo-196-219.peak.org (69.59.196.219) pada 00: 21: 5e: 4d: 38: e5 [ether] on eth1 peak-colo-196-222.peak.org (69.59.196.222) pada 00: 15: 5d: 0a: 3e: 09 [ether] on eth1 peak-colo-196-209.peak.org (69.59.196.209) pukul 00: 26: 88: 63: c7: 80 [ether] on eth1 peak-colo-196-217.peak.org (69.59.196.217) pukul 00: 21: 5e: 4d: 2c: e8 [ether] on eth1
Mengapa arp sesekali mengatur entri untuk server yang gagal ini sebagai <tidak lengkap>? Haruskah kita mendefinisikan entri arp kita secara statis? Saya selalu meninggalkan arp sendiri karena berfungsi 99% dari waktu, tetapi dalam contoh ini tampaknya gagal. Apakah ada langkah pemecahan masalah tambahan yang dapat kami ambil untuk membantu menyelesaikan masalah ini?
HAL-HAL YANG KAMI TELAH MENCOBA
Saya menambahkan entri arp statis untuk pengujian pada salah satu gateway linux yang masih tidak membantu.
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
Mem-boot ulang server web windows memecahkan masalah ini untuk sementara waktu tanpa ada perubahan lain pada jaringan tetapi pengalaman kami menunjukkan bahwa masalah ini akan kembali.
Tukar kartu dan sakelar jaringan
Saya perhatikan lampu tautan pada port switch untuk server windows yang gagal berjalan pada 100Mb bukannya 1Gb pada antarmuka yang gagal. Saya memindahkan kabel ke beberapa port terbuka lainnya dan tautannya menunjukkan 100Mb untuk setiap port yang saya coba. Saya juga menukar kabel dengan hasil yang sama. Saya mencoba mengubah properti dari kartu jaringan di windows dan server terkunci dan memerlukan reset keras setelah mengklik berlaku. Server windows ini memiliki dua antarmuka jaringan fisik jadi saya telah menukar kabel dan pengaturan jaringan pada dua antarmuka untuk melihat apakah masalahnya mengikuti antarmuka. Jika antarmuka publik turun lagi kita akan tahu bahwa itu bukan masalah dengan kartu jaringan.
(Kami juga mencoba sakelar lain yang kami miliki, tidak ada perubahan)
Mengubah versi driver perangkat keras jaringan
Kami memiliki masalah yang sama dengan driver Broadcom terbaru, serta driver bawaan yang dikirimkan di Windows Server 2008 R2.
Mengganti kabel jaringan
Sebagai upaya terakhir kami ingat perubahan lain yang terjadi adalah penggantian semua kabel patch antara server / switch kami. Kami telah membeli dua set, satu hijau dengan panjang 1ft - 3ft untuk antarmuka pribadi dan satu lagi kabel merah untuk antarmuka publik. Kami mengganti semua kabel tambalan antarmuka publik dengan merek yang berbeda dan menjalankan server kami tanpa masalah selama seminggu penuh ... aaaaa dan kemudian masalah muncul kembali.
Nonaktifkan checksum offload, hapus TProxy
Kami juga mencoba menonaktifkan TCP / IP checksum offload di driver, tidak ada perubahan. Kami sekarang mengeluarkan TProxy dan pindah ke x-forwarded-for
pengaturan jaringan yang lebih tradisional tanpa menulis ulang alamat IP mewah. Kami akan melihat apakah itu membantu.
Ganti penyedia Virtualisasi
Jika ini terkait dengan Hyper-V dalam beberapa cara (kami meng-host Linux VM di atasnya), kami beralih ke VMWare Server. Tidak ada perubahan.
Ganti model host
Kami telah mencapai ujung dari tali pemecahan masalah kami dan sekarang secara resmi melibatkan dukungan Microsoft. Mereka merekomendasikan untuk mengubah model host:
- http://en.wikipedia.org/wiki/Host_model
- http://technet.microsoft.com/en-us/magazine/2007.09.cableguy.aspx
Kami melakukan itu, dan kami juga mendapatkan beberapa perbaikan terbaru kernel yang tidak dipublikasikan yang mungkin digulirkan ke 2008 R2 SP1. Tidak memperbaiki
Mengganti perangkat keras kartu jaringan
Pada akhirnya, mengganti perangkat keras jaringan Broadcom dengan perangkat keras jaringan Intel memperbaiki masalah ini untuk kami. Jadi saya cenderung berpikir bahwa driver Broadcom Windows Server 2008 R2 salah!