อะแดปเตอร์เครือข่าย Windows Server 2008 R2 หยุดทำงานต้องรีบูตอย่างหนัก


32

TL; DR รุ่น:ปรากฎว่านี่เป็นข้อบกพร่องของเครือข่าย Broadcom ใน Windows Server 2008 R2 การแทนที่ด้วยฮาร์ดแวร์ของ Intel ได้รับการแก้ไข เราไม่ใช้ฮาร์ดแวร์ของ Broadcom อีกต่อไป เคย

เราได้ใช้HAProxyพร้อมกับheartbeatจากโครงการ Linux-HA เรากำลังใช้อินสแตนซ์ linux สองรายการเพื่อจัดเตรียมการเฟลโอเวอร์ แต่ละเซิร์ฟเวอร์มี IP สาธารณะของตัวเองและ IP เดียวซึ่งใช้ร่วมกันระหว่างทั้งสองโดยใช้อินเตอร์เฟสเสมือน (eth1: 1) ที่ IP: 69.59.196.211

อินเตอร์เฟสเสมือน (eth1: 1) IP 69.59.196.211 ได้รับการกำหนดค่าเป็นเกตเวย์สำหรับเซิร์ฟเวอร์ windows ที่อยู่ด้านหลังและเราใช้ ip_forwarding เพื่อกำหนดเส้นทางการรับส่งข้อมูล

เราประสบปัญหาเครือข่ายขัดข้องเป็นครั้งคราวในหนึ่งในเซิร์ฟเวอร์ windows ของเราที่อยู่ด้านหลังเกตเวย์ linux ของเรา HAProxy จะตรวจสอบว่าเซิร์ฟเวอร์ออฟไลน์ซึ่งเราสามารถตรวจสอบได้โดยการส่งไปยังเซิร์ฟเวอร์ที่ล้มเหลวและพยายาม ping เกตเวย์:

ส่ง Ping 69.59.196.211 พร้อมข้อมูล 32 ไบต์:
ตอบจาก 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-ff
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 gateway ของเราarp -aจะแสดง:

peak-colo-196-220.peak.org (69.59.196.220) ที่ <incomplete> บน eth1
stackoverflow.com (69.59.196.212) ที่ 00: 21: 5e: 4d: 45: c9 [ether] บน eth1
peak-colo-196-215.peak.org (69.59.196.215) ที่ 00: 21: 5e: 4d: 61: 1a [ether] บน eth1
peak-colo-196-219.peak.org (69.59.196.219) ที่ 00: 21: 5e: 4d: 38: e5 [ether] บน eth1
peak-colo-196-222.peak.org (69.59.196.222) ที่ 00: 15: 5d: 0a: 3e: 09 [ether] บน eth1
peak-colo-196-209.peak.org (69.59.196.209) ที่ 00: 26: 88: 63: c7: 80 [ether] บน eth1
peak-colo-196-217.peak.org (69.59.196.217) ที่ 00: 21: 5e: 4d: 2c: e8 [ether] บน eth1

เหตุใด arp จึงตั้งค่ารายการสำหรับเซิร์ฟเวอร์ที่ล้มเหลวนี้เป็น <incomplete> เป็นครั้งคราว เราควรจะกำหนดรายการ arp ของเราแบบคงที่? ฉันมักจะทิ้ง arp เพียงอย่างเดียวเพราะมันใช้งานได้ 99% ของเวลา แต่ในกรณีนี้ดูเหมือนว่าจะล้มเหลว มีขั้นตอนการแก้ไขปัญหาเพิ่มเติมใด ๆ ที่เราสามารถช่วยแก้ไขปัญหานี้ได้หรือไม่?

สิ่งที่เราลอง

ฉันได้เพิ่มรายการ arp แบบคงที่สำหรับการทดสอบหนึ่งในเกตเวย์ linux ซึ่งยังไม่ได้ช่วย

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 ที่ล้มเหลวทำงานที่ 100Mb แทน 1Gb บนอินเตอร์เฟสที่ล้มเหลว ฉันย้ายสายเคเบิลไปยังพอร์ตที่เปิดอื่น ๆ และลิงก์ระบุ 100Mb สำหรับแต่ละพอร์ตที่ฉันพยายาม ฉันสลับสายด้วยผลลัพธ์เดียวกัน ฉันพยายามเปลี่ยนคุณสมบัติของการ์ดเครือข่ายใน windows และเซิร์ฟเวอร์ถูกล็อคและจำเป็นต้องรีเซ็ตฮาร์ดหลังจากคลิกใช้ เซิร์ฟเวอร์ windows นี้มีอินเทอร์เฟซเครือข่ายทางกายภาพสองอินดังนั้นฉันได้สลับสายเคเบิลและการตั้งค่าเครือข่ายในอินเทอร์เฟซสองแบบเพื่อดูว่าปัญหาดังต่อไปนี้กับอินเทอร์เฟซหรือไม่ หากส่วนต่อประสานสาธารณะลดลงอีกครั้งเราจะรู้ว่าไม่มีปัญหากับการ์ดเครือข่าย

(เราได้ลองสวิตช์ตัวอื่นที่เรามีในมือไม่มีการเปลี่ยนแปลง)

การเปลี่ยนเวอร์ชั่นไดรเวอร์ฮาร์ดแวร์เครือข่าย

เรามีปัญหาเดียวกันกับไดรเวอร์ Broadcom ล่าสุดรวมถึงไดรเวอร์ในตัวที่มาพร้อมกับ Windows Server 2008 R2

การเปลี่ยนสายเคเบิลเครือข่าย

ในความพยายามครั้งสุดท้ายที่เราจดจำการเปลี่ยนแปลงอื่นที่เกิดขึ้นคือการแทนที่สายแพทช์ทั้งหมดระหว่างเซิร์ฟเวอร์ / สวิตช์ของเรา เราได้ซื้อสองชุดความยาวสีเขียว 1 ฟุต - 3 ฟุตสำหรับอินเทอร์เฟซส่วนตัวและชุดสายเคเบิลสีแดงอีกชุดสำหรับอินเทอร์เฟซสาธารณะ เราเปลี่ยนสายแพตช์อินเตอร์เฟซสาธารณะทั้งหมดด้วยยี่ห้ออื่นและรันเซิร์ฟเวอร์ของเราโดยไม่มีปัญหาตลอดทั้งสัปดาห์ ... aaaaaand จากนั้นปัญหาก็เกิดขึ้นอีก

ปิดใช้งาน checksum offload, ลบ TProxy

นอกจากนี้เรายังลองปิดการใช้งานการถ่ายโอนข้อมูลการตรวจสอบ TCP / IP ในไดรเวอร์ไม่มีการเปลี่ยนแปลง ตอนนี้เรากำลังดึง TProxy ออกมาและย้ายไปที่การx-forwarded-forจัดเรียงเครือข่ายแบบดั้งเดิมมากขึ้นโดยไม่ต้องเขียนที่อยู่ IP ที่แปลกใหม่ เราจะดูว่ามันช่วยได้ไหม

เปลี่ยนผู้ให้บริการการจำลองเสมือน

ในกรณีที่ไม่เกี่ยวข้องกับ Hyper-V ในบางวิธี (เราโฮสต์ Linux VM บนมัน) เราเปลี่ยนเป็น VMWare Server ไม่มีการเปลี่ยนแปลง.

สลับโฮสต์โมเดล

เรามาถึงจุดสิ้นสุดของการแก้ไขปัญหาเชือกของเราและตอนนี้อย่างเป็นทางการที่เกี่ยวข้องกับการสนับสนุนของ Microsoft พวกเขาแนะนำให้เปลี่ยนรูปแบบโฮสต์:

เราทำอย่างนั้นและเรายังมีโปรแกรมแก้ไขด่วนเคอร์เนลที่ไม่ได้เผยแพร่ซึ่งคาดว่าจะถูกนำไปใช้ใน 2008 R2 SP1 ไม่มีการแก้ไข

การเปลี่ยนฮาร์ดแวร์การ์ดเครือข่าย

ในที่สุดการแทนที่ฮาร์ดแวร์เครือข่าย Broadcom ด้วยฮาร์ดแวร์เครือข่าย Intel แก้ไขปัญหานี้ให้เรา ดังนั้นฉันคิดว่าไดรเวอร์ Broadcom Windows Server 2008 R2 ผิดพลาด!

http://blog.serverfault.com/post/broadcom-die-mutha/


นอกจากนี้ยังมีหมายเหตุ - เรายังใช้ TProxy (พร็อกซีโปร่งใส) เพื่อส่ง IP จริงของการรับส่งข้อมูลที่เข้ามาทาง HAProxy blog.loadbalancer.org/…
Jeff Atwood


2
อย่าเชื่อถือการตั้งค่าอัตโนมัติในสภาพแวดล้อมการใช้งานจริง ตั้งค่าความเร็วเป็นสิ่งที่ควรและวางจอภาพไว้เพื่อให้แน่ใจ
แดเนียลซี. Sobral

3
@Daniel Sobral: ฉันต้องไม่เห็นด้วยกับคุณอย่างเต็มที่ ในปี 2003 ฉันคิดว่าฉันจะเห็นสิ่งนั้น ด้วยฮาร์ดแวร์ที่ทันสมัยความเร็วพอร์ตที่ตั้งค่าอย่างหนักและการพิมพ์สองด้านเป็นสูตรสำหรับการรับความเร็ว / การพิมพ์สองด้านที่ไม่ตรงกัน การจัดการโดยอัตโนมัติบนอุปกรณ์อีเธอร์เน็ตสมัยใหม่นั้นทำงานได้ดี
Evan Anderson

1
ฉันยืนอยู่กับ @Daniel Sobral หลายครั้งที่ฉันมีความล้มเหลวของเครือข่ายที่เกิดจากการเจรจาต่อรองความเร็วที่ไม่ดีในช่วงเวลาที่เลวร้ายที่สุดดังนั้นในระบบการผลิตที่ฉันไปด้วยการตั้งค่าแบบคงที่ เมื่อสิ่งนั้นเกิดขึ้นสถานะลิงก์บนสวิตช์จะระบุว่าอย่างไร มันมีการจัดการใช่มั้ย ระบบ Windows พูดว่าอะไร? ฉันจะเดิมพันกับความล้มเหลวของเครือข่ายที่ระดับลิงก์และนั่นคือสิ่งที่ทำให้ ARP เหล่านั้นไม่สมบูรณ์ (ล้มเหลวหรือรอรับ ARP ที่มีอยู่) ฮาร์ดแวร์ / ไดรเวอร์ไม่ถูกต้องอาจเป็นสาเหตุ ให้ดูว่ามันไปอย่างไรหลังจากการแลกเปลี่ยน
Pablo Alsina

คำตอบ:


7

จากhttp://linux-ip.net/html/ether-arp.html :

หากไม่มีรายการแคช ARP สำหรับ IP ปลายทางที่ร้องขอเคอร์เนลจะสร้างคำขอ ARP mcast_solicit จนกว่าจะได้รับคำตอบ ในช่วงระยะเวลาการค้นพบนี้รายการแคช ARP จะแสดงรายการในสถานะที่ไม่สมบูรณ์ หากการค้นหาไม่สำเร็จหลังจากจำนวนคำขอ ARP ที่ระบุรายการแคช ARP จะแสดงรายการในสถานะที่ล้มเหลว หากการค้นหาประสบความสำเร็จเคอร์เนลจะเข้าสู่การตอบสนองลงในแคช ARP และรีเซ็ตตัวจับเวลาการยืนยันและอัปเดต

ดูเหมือนว่ากล่องเกตเวย์ของคุณไม่ตอบสนอง (หรือตอบสนองช้าเกินไป) ต่อคำขอ ARP จากกล่องเกตเวย์ของคุณ <incomplete>ในที่สุดสิ่งนั้นเปลี่ยนไป<failed>หรือไม่? ฮาร์ดแวร์เครือข่ายใดที่คุณมีระหว่างเซิร์ฟเวอร์และเกตเวย์ เป็นไปได้หรือไม่ที่คำขอออกอากาศ ARP กำลังถูกกรองหรือบล็อกบางแห่งระหว่างสองโฮสต์


5

หมายความว่าคุณส่ง Ping ไปยังที่อยู่ IP มีเรคคอร์ด PTR (ดังนั้นชื่อ) แต่ไม่มีการตอบสนองใด ๆ จากเครื่องที่สงสัย เมื่อเราเห็นสิ่งนี้เกิดขึ้นบ่อยที่สุดเนื่องจาก subnet mask ถูกตั้งค่าไม่ถูกต้อง - หรือในกรณีของ IP ที่ถูกผูกไว้กับอินเตอร์เฟสลูปแบ็ค

196.220 คืออะไร ความสัมพันธ์กับ 196.211 คืออะไร ฉันสมมติว่า. 220 เป็นหนึ่งในโฮสต์ HA Proxy เมื่อคุณเรียกใช้ ifconfig -a & arp -a มันจะแสดงอะไร


ถ้ามันเกิดขึ้นเป็นระยะ ๆ นั่นทำให้ฉันคิดว่ามันไม่ใช่ subnet mask ที่ไม่ถูกต้อง (ซึ่งเป็นที่ยอมรับมักเป็นสาเหตุของเครื่องที่ไม่สามารถตอบคำขอ ARP ได้)
Evan Anderson

โพสต์ดูเหมือนชัดเจนสำหรับฉัน .211 ที่อยู่ IP เป็น IP เสมือนที่แชร์โดยอินสแตนซ์ของ HAProxy ที่อยู่ IP. 220 ถูกกำหนดให้กับเครื่อง Windows ที่สูญเสียความสามารถในการสื่อสารกับที่อยู่ IP. 212 (ตามที่เห็นได้ในบรรทัด "Interface:" ของเอาต์พุต ARP ที่อ้างอิงในโพสต์)
Evan Anderson

196.220 เป็น ip ของเซิร์ฟเวอร์ windows ที่ล้มเหลว - 196.211 เป็น IP เสมือนสำหรับอินเทอร์เฟซ haproxy
Geoff Dalgas

4

ตามที่ Max Clark กล่าวว่า <incomplete> เพียงหมายความว่า 69.59.196.211 ร้องขอ ARP สำหรับ 69.59.196.220 และยังไม่ได้รับการตอบกลับ (ใน Windows-land คุณจะเห็นสิ่งนี้เป็นการทำแผนที่ ARP กับ "00-00-00-00-00-00" ... ดูเหมือนว่าแปลกสำหรับฉัน BTW ว่าคุณไม่เห็นการทำแผนที่ ARP บน 69.59.196.220 สำหรับ 69.59.196.211)

ฉันมักจะไม่ชอบที่จะใช้รายการ ARP คงที่เพราะจากประสบการณ์ของฉัน ARP มักจะทำงานของมันตลอดเวลา

ถ้าเป็นฉันฉันจะดมกลิ่นอินเตอร์เฟซอีเธอร์เน็ตที่เหมาะสมในเครื่อง Windows "ล้มเหลว" (69.59.196.220) เพื่อสังเกต ARP'ing สำหรับ 69.59.196.211 และเพื่อสังเกตว่า / ถ้ามันตอบสนองคำขอ ARP จาก 69.59 หรือไม่ 196.211 ฉันยังพิจารณาการดมกลิ่นบนเครื่องเกตเวย์สำหรับ ARP เท่านั้น ( tcpdump -i interface-name arp) เพื่อดูว่าทราฟฟิกของ ARP มีลักษณะอย่างไรจากด้านข้างของเครื่อง Linux

ฉันรู้จากบล็อกว่าคุณมีเครือข่ายส่วนหลังและเครือข่ายส่วนหน้า ในช่วงที่ระบบขัดข้องเซิร์ฟเวอร์ Windows "ล้มเหลว" (69.59.196.220) มีปัญหาในการสื่อสารกับเครื่องอื่น ๆ ในเครือข่าย Front-end หรือเป็นเพียงปัญหาการพูดคุยกับเกตเวย์หรือไม่ ฉันอยากรู้ว่าคุณกำลังมาที่เครื่องที่ล้มเหลวผ่านเครือข่ายส่วนหน้าหรือส่วนหลังเมื่อคุณกำลังจับมันในการแสดง

คุณกำลังทำอะไรเพื่อ "แก้ไข" ปัญหาเมื่อมันเกิดขึ้น?

แก้ไข:

ฉันเห็นจากการอัปเดตของคุณว่าคุณกำลังรีบูตเครื่อง Windows ที่ "ล้มเหลว" เพื่อแก้ไขปัญหา ก่อนที่คุณจะทำในครั้งต่อไปคุณสามารถตรวจสอบว่าเครื่อง Windows สามารถ "พูดคุย" ในส่วนต่อประสานด้านหน้าได้หรือไม่? นอกจากนี้ให้หยิบสำเนาตารางเส้นทางจากเครื่อง Windows ( route print) ในระหว่างที่เกิดความล้มเหลวเช่นกัน (ฉันพยายามที่จะตรวจสอบว่า NIC / ไดรเวอร์เป็นคนทำบาปบนเครื่อง Windows โดยทั่วไป)


เมื่อปัญหานี้เกิดขึ้นเราสามารถรีบูตเว็บเซิร์ฟเวอร์ที่ล้มเหลว (196.220) และจะใช้งานได้ - ประสบการณ์ของเราแสดงให้เห็นว่าภายใน 24 ชั่วโมงมันจะล้มเหลวอีกครั้ง
Geoff Dalgas

1
เป็นที่น่าสนใจที่จะทราบว่าเซิร์ฟเวอร์สามารถพูดคุยกับ NIC ที่เชื่อมต่อกับกลุ่มด้วยเครื่อง. 212 หรือไม่ (ซึ่งฉันเข้าใจจากการอัปเดตของคุณตอนนี้จะสลับกับเซ็กเมนต์ส่วนหลัง) ลำไส้ของฉันบอกว่า "เป็นบ้า NIC" เป็นไปได้สาเหตุที่นี้ แต่เราจะเห็น ...
อีวานเดอร์สัน

1
เมื่อสิ่งนี้เกิดขึ้นเครื่องจะไม่สามารถพูดคุยในส่วนหน้า (สาธารณะ) NIC ได้เลย ปลายด้านหลัง (ส่วนตัว) NIC ไม่ได้รับผลกระทบ ฉันรู้สึกเสมอว่าเป็นคนขับ NIC ที่ทำตัวเป็นบ้า แต่คำถามคือ "ทำไม"? (เช่น: สิ่งนี้เกิดขึ้นกับไดรเวอร์ Broadcom ล่าสุดรวมถึงไดรเวอร์ Wink28 R2 ที่เป็นค่าเริ่มต้น) ฉันจะตรวจสอบบันทึกเหตุการณ์หลังจากรีบูตซึ่งใช้เวลา 10+ นาทีเนื่องจากต้องมี bluescreen ในที่สุดเป็นส่วนหนึ่งของการปิดเครื่องก่อน ฉันล้างพวกเขาก่อน
Jeff Atwood

ขณะนี้เราเกี่ยวข้องกับการสนับสนุนของ Microsoft เนื่องจากเราเชื่อโดยสุจริตว่านี่เป็นปัญหาระดับระบบปฏิบัติการ เราได้ทำการแก้ไขปัญหาทุกอย่างที่เป็นไปได้ที่เราสามารถทำได้
Jeff Atwood

Zow ฉันชอบที่จะได้ยินว่ามันเปิดออก
Evan Anderson

2

เอกสารนี้แสดงสถานะต่าง ๆ (ตาราง 2.1) ไม่สมบูรณ์จะหมายความว่ามันได้ส่งคำขอ ARP แรก (น่าจะเป็นหลังจากที่ค้าง, ล่าช้า, โพรบ) แต่ยังไม่ได้รับการตอบกลับ


2

เหตุผลที่ ARP คงที่บนโหนด haproxy ไม่ได้ช่วยให้เว็บเซิร์ฟเวอร์ของคุณยังไม่สามารถหาวิธีกลับไปที่เกตเวย์ได้

ARP แบบคงที่บนเว็บเซิร์ฟเวอร์แบ่งความสามารถสำหรับเว็บเซิร์ฟเวอร์ของคุณเพื่อสลับเกตเวย์เมื่อหนึ่งในโหนด haproxy ล้มเหลว - ฉันเดาว่าอินเทอร์เฟซเสมือนใช้ที่อยู่ MAC เดียวกันกับที่อยู่ MAC เดียวกับโหนด eth1 ของ haproxy โค้ดหนึ่งในสองเกตเวย์ในแต่ละเว็บเซิร์ฟเวอร์

คุณมีซอฟต์แวร์ความปลอดภัยชนิดใดติดตั้งอยู่บนเว็บเซิร์ฟเวอร์ที่ล้มเหลวหรือไม่? ฉันใช้เวลานานกับเซิร์ฟเวอร์ Windows 2008 ที่มี Symantec Endpoint Security อยู่ - มันติดตั้งโค้ดกรองบางตัวในสแต็กเครือข่ายที่ป้องกันไม่ให้มันเห็นแพ็คเก็ต ARP ของเกตเวย์เลย การแก้ไขสำหรับ (นั้นให้ไว้โดย Microsoft) คือการลบรายการรีจิสทรีที่โหลด DLL

อีกครั้งที่ปัญหานี้เกิดขึ้นการลบอะแดปเตอร์เครือข่ายทั้งหมดออกจากตัวจัดการอุปกรณ์และการติดตั้งใหม่ดูเหมือนจะช่วยได้


2

เมื่อคุณตั้งค่ารายการ arp ของคุณแบบคงที่เซิร์ฟเวอร์ของคุณจะรู้ว่าจะหาเกตเวย์ได้จากที่ใด อย่างไรก็ตามหากสวิตช์ของคุณไม่ทราบว่าเกตเวย์อยู่ที่ใดมันจะไม่ส่งต่อแพ็กเก็ตของคุณ

ดูเหมือนว่าคุณจะมีปัญหา (หรือสับสน) สลับระหว่าง HAproxy และเว็บเซิร์ฟเวอร์ของคุณ รีบูตเครื่อง

ไม่ว่าจะเป็นหรือเซิร์ฟเวอร์ HAproxy ของคุณไม่เห็นด้วยกับสิ่งที่อยู่ในการควบคุมและทั้งสองตอบ arp lookups สำหรับ. 212

ในบรรทัดเดียวกันหากสวิตช์ของคุณโอเวอร์โหลด HAproxies ของคุณอาจไม่สามารถสื่อสารกับกันและกันได้เร็วพอและล้มเหลว


1

ในครั้งต่อไปที่ปัญหานี้เกิดขึ้นฉันขอแนะนำให้เรียกใช้การจับแพ็คเก็ตบนโฮสต์ที่มีปัญหาเพื่อพิจารณาว่าปริมาณการใช้ ARP ใดที่สังเกตได้

เครื่อง HAproxy ของคุณน่าจะติดตั้งtcpdumpบ้าง สำหรับเครื่อง Windows ที่คุณจะต้องมีทั้งWinPcapแอพลิเคชันเช่นWiresharkหรือMicrosoft ตรวจสอบเครือข่าย

ในความเป็นจริงการคิดเกี่ยวกับมันเป็นปัญหาที่เกิดขึ้นกับ ARP โดยเฉพาะคุณอาจจะสามารถบันทึกปริมาณการใช้งาน ARP ทั้งหมดบนเครื่อง HAproxy และเครื่อง Windows อย่างต่อเนื่องด้วยคำถามไฟล์จับการหมุนของ (เพื่อประโยชน์ของอาร์กิวเมนต์) 10MB ควรมีขนาดใหญ่พอที่เมื่อคุณตรวจพบความล้มเหลวไฟล์จับภาพจะยังคงมีปริมาณข้อมูล ARP ก่อนที่จะเกิดความล้มเหลว (เป็นค่าทดสอบโดยใช้การจับภาพเป็นเวลาหนึ่งชั่วโมงหรือมากกว่านั้นเพื่อดูจำนวนข้อมูลที่สร้างขึ้น)

ตัวอย่างไวยากรณ์การจับภาพสำหรับ Linux tcpdump (โปรดทราบฉันไม่มีกล่อง Linux ที่มีประโยชน์ในการทดสอบนี้โปรดทดสอบพฤติกรรมของ -C และ -W ก่อนใช้ในการผลิต!):

tcpdump -C 10 -i eth1 -w /var/tmp/arp.cap -W 1 arp

หวังว่าสิ่งนี้จะช่วยให้คุณมีข้อบ่งชี้ในสิ่งที่ผิดพลาดได้อย่างแม่นยำ เมื่อรายการ ARP หมดอายุ (และจากบทความนี้ Windows รุ่นใหม่ปรากฏว่ารายการที่ 'ไม่ได้ใช้งาน' มีอายุมากขึ้นอย่างก้าวร้าว) ฉันคาดหวังว่าสิ่งต่อไปนี้จะเกิดขึ้น:

  1. โฮสต์ต้นทางจะส่งคำขอ ARP ไปยังโฮสต์เป้าหมาย โดยทั่วไปการร้องขอ ARP มักจะออกอากาศ แต่ในกรณีที่โฮสต์กำลังรีเฟรชรายการที่มีอยู่ ARP อาจถูกส่งแบบ unicast
  2. โฮสต์เป้าหมายจะตอบกลับด้วยการตอบกลับ ARP 99% ของเวลานี้จะเป็นแบบ unicast แต่RFCอนุญาตการตอบกลับแบบออกอากาศ (โปรดดู RFC เกี่ยวกับการตรวจหาการชนกันของที่อยู่ IPv4สำหรับรายละเอียดเพิ่มเติม)

เรียบง่ายอย่างที่เห็นมีหลายสิ่งหลายอย่างที่อาจรบกวนกระบวนการนี้:

  • คำขอดั้งเดิมอาจไม่สามารถเข้าถึงเป้าหมายได้
  • คำขออาจมาถึงที่เป้าหมาย แต่การตอบสนองอาจไม่ถึงที่มา
  • กลไกความพร้อมใช้งานสูงบางประเภทอาจรบกวนพฤติกรรม 'ปกติ' ของ ARP:
    • Failover ระหว่างโหนด HAProxy ทำงานอย่างไร มันใช้ที่อยู่ MAC ที่ใช้ร่วมกันหรือไม่หรือใช้ ARP ที่ไม่มีเหตุผลเพื่อไม่ให้ที่อยู่ IP อยู่ระหว่างโหนดหรือไม่
    • ที่อยู่ MAC จำนวนมากในตาราง ARP ด้านบนเริ่มต้นด้วย 00-15-5D ซึ่งเห็นได้ชัดว่าลงทะเบียนกับ Microsoft คุณกำลังใช้การจัดกลุ่มหรือ HA ชนิดอื่นบนเครื่อง Windows ที่เป็นปัญหาหรือไม่ 00-15-5D MAC เหล่านี้ระบุที่อยู่เดียวกันกับที่คุณเห็นซึ่งเกี่ยวข้องกับ NIC ของฮาร์ดแวร์เมื่อคุณทำ 'ipconfig / all' บนเซิร์ฟเวอร์ Windows หรือไม่

สิ่งที่ต้องตรวจสอบว่า / เมื่อเกิดเหตุการณ์นี้อีกครั้ง:

  • ดูการจับแพ็คเก็ตของทราฟฟิก ARP ส่วนใดของการสนทนาไม่ได้เกิดขึ้นอย่างชัดเจน?
  • ตรวจสอบตาราง bridging / CAM ของสวิตช์ ที่อยู่ MAC ทั้งหมดในแมปคำถามไปยังพอร์ตที่คุณคาดหวัง
  • โฮสต์อื่น ๆ บนซับเน็ตมีรายการ ARP ที่ถูกต้องสำหรับที่อยู่ IP ของโฮสต์ Windows และ HAProxy หรือไม่
  • รายการ ARP สำหรับ IP เป้าหมายเดียวกันบนเครื่องต้นทางที่แตกต่างกันหลายเครื่องสามารถแก้ไขที่อยู่ MAC เดียวกันได้หรือไม่ เช่นเข้าสู่โฮสต์อื่น ๆ สองแห่งบนซับเน็ตและตรวจสอบว่า 196.211 แก้ไขเป็นที่อยู่ MAC เดียวกันในทั้งสอง

ตอนนี้เรากำลังดูการจับแพ็คเก็ตอย่างแน่นอน
Jeff Atwood

โชคไม่ดีที่แพ็คเก็ตจับไม่ได้แสดงให้เราเห็นอะไรชัดเจนและเครื่องที่เราจับได้นั้นมีการรับส่งข้อมูลเครือข่ายที่ละเอียดอ่อน .. ดังนั้นเราจึงไม่สามารถให้ผู้เชี่ยวชาญดูได้
Jeff Atwood

@Jeff: คุณสามารถให้คำบรรยายแสดงเฉพาะการรับส่งข้อมูล ARP ได้หรือไม่ ฉันสนใจที่จะเห็นพฤติกรรม ARP หากไม่มีอะไรอื่น
Murali Suriar

เราทำตามคำแนะนำของฝ่ายสนับสนุนของ MSFT สำหรับข้อมูลใดก็ตามที่พวกเขาต้องการบันทึก - มันใช้เวลาสองสามสัปดาห์ แต่ในที่สุดพวกเขาก็พบว่ามีโปรแกรมแก้ไขด่วนสำหรับเครือข่ายเคอร์เนลส่วนตัวสำหรับเรา
Jeff Atwood

0

เรามีปัญหาที่คล้ายกันกับหนึ่งในเซิร์ฟเวอร์เทอร์มินัล 2008 R2 ของเราซึ่งการรับส่งข้อมูลทั้งหมดใน NIC จะหยุด แต่ยังคงเชื่อมต่ออยู่และ LED NIC จะแสดง comms นี่เป็นปัญหาต่อเนื่องที่ทำให้การปลูกพืชเพิ่มขึ้น 2-3 ครั้งต่อสัปดาห์ แต่หลังจากผ่านไปประมาณ 12-13 ชั่วโมงเท่านั้น (รีบูตเซิร์ฟเวอร์ทุกคืน)

ฉันพบ Serbalbit Netbalancer เป็นสาเหตุหลังจากฉันพยายามเลิกใช้บริการ NetbalancerService การจราจรก็เริ่มเคลื่อนผ่านอินเตอร์เฟซ ฉันถอนการติดตั้ง Netbalancer ตั้งแต่ฉัน


0

ฉันมีปัญหาเดียวกันกับ Asus Mainboard lan ได้รับการแก้ไขโดยการติดตั้งไดรเวอร์ล่าสุดจากเว็บไซต์realtek

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.