KEMP ตัวโหลดบาลานเซอร์โดยใช้ UCARP (VRRP) - ที่อยู่ MAC แบบหลายผู้รับไม่ได้รับ


10

เอาล่ะ - ต้องต่อสู้กับมันติดต่อกันอย่างน้อย 20 ชั่วโมง .. ขอโทษด้วยถ้ามันดูโวยวายไปนานหรือโพสต์บล็อก แต่ฉันถึงจุดที่เหนื่อยล้า

ดังนั้นนี่คือข้อตกลง เรากำลังใช้ตัวโหลดบาลานซ์ KEMP ซึ่งใช้ UCARP (โคลน Linux ของ CARP ซึ่งเป็นโคลน VRRP) สำหรับการเต้นของหัวใจ HA และสถานะที่คงอยู่ เราต้องการใช้ IGMP ในสภาพแวดล้อมของเราเพื่อป้องกันน้ำท่วมทั่วดาต้าเซ็นเตอร์

เรามีสวิตช์ Dell PowerConnect 8124F สองตัวที่ใช้ SW 5.1.1.7 ซึ่งทำหน้าที่เป็นสุดยอดของชั้นวาง ทั้งสองนี้เชื่อมต่อกับคู่ของ Cisco 3750-X ซึ่งเป็นแกนหลักของเรา

ปัญหาเริ่มต้นขึ้นเมื่อเราอัพเกรดเป็น PowerConnect 5.1.x ซึ่งพวกเขาเห็นได้ชัดว่าเป็นค่าเริ่มต้นที่จะเปิด IGMP โดยไม่ต้องสอดแนมเว้นแต่คุณจะแจ้งเป็นอย่างอื่น และดูเถิด - โหลดบาลานเซอร์ของเราเข้าไปในสมองแตกทำให้เกิดความสนุกสนานที่อบอุ่น

  • ถ้าฉันปิดการใช้งาน IGMP การสอดแนมบน VLAN ซึ่งตัวโหลดบาลานซ์ทำสิ่งที่ไม่มีมัลติคาสต์เกิดขึ้นมัลติคาสต์ก็ยังคงตาย
  • ถ้าฉันตั้งค่า IP PIM บนคอร์ของเราสวิตช์ PowerConnect จะเห็นมันบน VLAN เดียวกัน แต่ก็ยังไม่มีทราฟฟิกแบบมัลติคาสต์
  • ถ้าฉันเปิดใช้งานการรับส่งข้อมูลแบบหลายผู้รับที่ไม่ได้ลงทะเบียนทั้งหมดจะไม่ทำอะไรเลย
  • ถ้าฉันปิดการใช้งานการสอดแนม IGMP ทั่วโลกในสวิตช์ PowerConnect การรับส่งข้อมูลแบบหลายผู้รับทั้งหมด มันใช้งานได้ดีมากจนเราได้รับการรับส่งข้อมูลแบบหลายผู้รับที่พอร์ตทุกพอร์ตที่มีแท็ก VLAN เดียวกัน ยอดเยี่ยม

ฉันสังเกตเห็นรายการที่อยู่ MAC แปลก ๆ บน VLAN ที่แกนกลางของเรา:

coresw#sh mac address-table vlan 367 | include 5e00
 367    0000.5e00.0101    DYNAMIC     Po13   seq_no:0

และฉันคิดว่า .. นั่นไม่ใช่มัลติคาสต์หรือไม่ ทำไมจึงไม่ได้อยู่ใน "sh mac address-table multicast"

coresw#sh mac address-table multicast vlan 367
Vlan    Mac Address       Type        Ports
----    -----------       ----        -----
coresw#

จากนั้นฉันอ่านในคู่มือ PowerConnect CLI:

มัลติคาสต์ทราฟฟิกคือทราฟฟิกที่กำหนดไว้ในกลุ่มโฮสต์ กลุ่มโฮสต์ถูกระบุโดยที่อยู่ MAC ปลายทางเช่นช่วง 01: 00: 5e: 00: 00: 00-01: 00: 5e: 7f: ff: ff: ff: ff สำหรับการรับส่งข้อมูลมัลติคาสต์ IPv4 หรือ 33: 33: xx: xx : xx: xx สำหรับการรับส่งข้อมูลแบบหลายผู้รับ IPv6

ดูเหมือนว่าเราขาด "01" ที่จุดเริ่มต้นของที่อยู่ MAC ใช่ไหม รายการ MAC แบบไดนามิกด้านบนเริ่มต้นด้วย "00" ณ จุดนี้ฉันกำลังคิดที่จะโทรหา KEMP และให้พวกเขารู้ว่าผลิตภัณฑ์ของพวกเขานั้นมีการกำหนดค่าที่ผิดพลาดอย่างน่ากลัว แต่ฉันไปอ่านRFC สำหรับ VRRPแล้วดู:

ที่อยู่ MAC ของเราเตอร์เสมือนที่เชื่อมโยงกับเราเตอร์เสมือนคือที่อยู่ IEEE 802 MAC ในรูปแบบต่อไปนี้:

กรณี IPv4: 00-00-5E-00-01- {VRID} (เป็นเลขฐานสิบหกในการสั่งซื้อบิตมาตรฐานอินเทอร์เน็ต)

เอาล่ะ - ปกติแล้วสวิทช์จะไม่รับช่วงที่อยู่แบบมัลติคาสต์สำหรับ VRRP ไม่เป็นไรเรามากำหนดค่ากลุ่มโฮสต์แบบคงที่ในสวิตช์ Dell Nope

อินพุตไม่ถูกต้อง: Multicast MAC Address ต้องอยู่ในรูปแบบ 01XX: XXXX: XXXX

ตกลงจากนั้น .. ขั้นตอนถัดไปลองเพิ่มรายการ mac แบบคงที่:

osl-sys-swrack03(config)#mac address-table multicast ?

forbidden                forbid adding specific multicast addresses to
                         specific ports.

osl-sys-swrack03(config)#

ดังนั้น - ไม่มีวิธีการกำหนดค่ารายการ MAC มัลติคาสต์แบบคงที่ หากฉันพยายามทำสิ่งเดียวกันกับรายการ MAC แบบคงที่ปกติฉันสามารถผูกเข้ากับพอร์ตเดียว - คลัสเตอร์การทำโหลดบาลานซ์นี้ทำงานข้ามพอร์ต 10gig ที่แตกต่างกัน 4 พอร์ต

อัปเดต : ดูเหมือนจะมีความสับสนเกี่ยวกับที่อยู่ MAC 172.30.1.0/24 เป็นเครือข่าย loadbalancer ด้านหน้า 172.30.1.6 เป็น VIP แบบแบ่งใช้ที่เป็นค่าเริ่มต้นสำหรับคลัสเตอร์, .7 เป็น IP การจัดการสำหรับ load balancer ตัวแรกและ .8 ใช้สำหรับ load balancer ตัวที่สอง ที่อยู่อื่น ๆ ทั้งหมด (30, 40, 70, 80 และอื่น ๆ ) ล้วนเป็น VIP พร้อมบริการที่แตกต่างกันไป เมื่อเกิดความล้มเหลววีไอพีทั้งหมดจะเปลี่ยนที่อยู่ MAC เป็นที่อยู่ทางกายภาพของ LB ที่สอง ที่อยู่แบบหลายผู้รับในตารางด้านล่างไม่เปลี่ยนแปลง

coresw#sh ip arp vlan 367
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet  172.30.1.6             78   0050.56b4.5004  ARPA   Vlan367    <- VIP - Loadbalancer1 physical MAC
Internet  172.30.1.40           204   0050.56b4.5004  ARPA   Vlan367    <- VIP - Loadbalancer1 physical MAC
Internet  172.30.1.80           167   0050.56b4.5004  ARPA   Vlan367    <- VIP - Loadbalancer1 physical MAC
Internet  172.30.1.70            38   0050.56b4.5004  ARPA   Vlan367    <- VIP - Loadbalancer1 physical MAC
Internet  172.30.1.66            12   0050.56b4.5004  ARPA   Vlan367    <- VIP - Loadbalancer1 physical MAC
Internet  172.30.1.35           185   0050.56b4.5004  ARPA   Vlan367    <- VIP - Loadbalancer1 physical MAC
Internet  172.30.1.60            97   0050.56b4.5004  ARPA   Vlan367    <- VIP - Loadbalancer1 physical MAC
Internet  172.30.1.30            80   0050.56b4.5004  ARPA   Vlan367    <- VIP - Loadbalancer1 physical MAC
Internet  172.30.1.61            33   0050.56b4.5004  ARPA   Vlan367    <- VIP - Loadbalancer1 physical MAC
Internet  172.30.1.7             27   0050.56b4.5004  ARPA   Vlan367    <- Management - Loadbalancer1 physical MAC
Internet  172.30.1.8             21   0050.56b4.08c2  ARPA   Vlan367    <- Management - Loadbalancer2 physical MAC

osl-sys-coresw#sh mac address-table dynamic vlan 367
          Mac Address Table
-------------------------------------------

Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
 367    0000.5e00.0101    DYNAMIC     Po13   seq_no:0   <- multicast HA mac (UCARP)
 367    0050.56b4.08c2    DYNAMIC     Po13   seq_no:0   <- Loadbalancer1 physical MAC
 367    0050.56b4.5004    DYNAMIC     Po13   seq_no:0   <- Loadbalancer2 physical MAC

และนั่นคือเรื่องราว ฉันจะทำอะไรกับสิ่งนี้บนโลก?


What on earth am I going to do with this?<- เตกีล่า มันเยอะมาก
voretaq7

คุณกำลังสับสนที่อยู่มัลติคาสต์ที่ใช้ระหว่าง "เราเตอร์เสมือน" (เพื่อบอกว่ามีใครอยู่และใครเป็นเจ้านาย) และที่อยู่ unicast ที่ใช้สำหรับเราเตอร์เสมือนจริง (เช่น MAC สำหรับ IP เสมือน)
Ricky Beam

@RickyBeam คุณจะเจาะจงมากขึ้นไหม? เหตุผลที่มี (อยู่) สอง mac ที่อยู่ในรายการด้านบนเป็นเพราะเรามี loadbalancer สองคู่แต่ละตัวมี ID ของตนเอง (01 และ 02 ตอนท้าย) - ถ้านั่นคือสิ่งที่คุณคิด
pauska

1
ไม่คุณยังสับสนเกี่ยวกับ MAC unicast ที่เชื่อมโยงกับ IP เราเตอร์เสมือน - นั่นคือโฮสต์ MAC ที่ใช้เพื่อพูดคุยกับบริการโหลดบาลานซ์ของพวกเขา มัลติคาสต์แอดเดรสคือสิ่งที่ load balancer เคยรู้ว่าใครเป็นผู้รับผิดชอบ (อ่านหัวข้อ 5.1.1)
Ricky Beam

@RickyBeam ขออภัยมันไม่สมเหตุสมผลกับฉัน ที่อยู่ MAC ของ unicast สำหรับ load balancer แต่ละตัว (00:56, vmware) นั้นแตกต่างจาก 0000.5e00.0101 อย่างสิ้นเชิงเมื่อฉันปิดการใช้งาน IGMP snooping
pauska

คำตอบ:


5

ฉันสามารถแก้ไขปัญหาได้ ใน Kemp (กับคู่ HA) คุณมีตัวเลือกในการใช้ "ที่อยู่ MAC เสมือน" หากไม่มีการทำเครื่องหมายในช่องนี้ MAC ของ load balancer VIP คือส่วนต่อประสานทางกายภาพของหน่วย Kemp ที่ใช้งานอยู่ หากทำเครื่องหมายที่ช่องนี้ที่อยู่ MAC ของ VIP คือ VRRP MAC ดังที่คุณได้กล่าวไว้ข้างต้น VRRP RFC ระบุว่า MAC เป็น "00:00" {blah} โดยมี octet สุดท้ายเป็น Router ID ค่าเริ่มต้น Kemp HA [เราเตอร์] ID คือ 01. ใน Powerconnects ของฉันโดยใช้เฟิร์มแวร์ 5.1.xx ฉันไม่ได้ใช้ VRRP แต่ฉันวิ่งไปตามร่องรอยและกำหนดว่า Powerconnect จะวางเฟรม VRRP ถ้า ID เราเตอร์นั้นเหมือนกัน พวกเขาทำสิ่งนี้แม้ว่า VRRP จะไม่ได้รับการกำหนดค่าและในโหมดนั้นพวกเขาเริ่มต้นที่ 01 ดังนั้นการเปลี่ยนรหัสเราเตอร์ Kemp HA เป็นอย่าง 22 (0x16) ทำให้ทุกอย่างทำงานได้


คุณคือฮีโร่ของฉัน ขอบคุณสำหรับการหาสิ่งนี้ในที่สุด! ถ้อยคำที่แย่มาก ๆ ในส่วนของ KEMP - พวกเขาควรให้คำอธิบายที่บอกคุณได้ว่าสิ่งนี้แปลเป็นรหัสเราเตอร์ VRRP
pauska

2

ที่อยู่แบบหลายผู้รับที่คุณต้องการคือ 224.0.0.18 [mac: 01005e.000012] นั่นคือช่องทางควบคุมสำหรับโหนด VRRP ทั้งหมด [แก้ไข] ยกเว้น KEMP เปลี่ยนรหัส CARP (UCARP) ใช้ต้นกำเนิดการรับส่งข้อมูลโดยใช้ VRRP unicast MAC [00005e.0001xx] - นั่นคือที่สวิตช์จะเรียนรู้ตามธรรมชาติ

หากคุณไม่มีเครือข่ายที่น่าสงสัย (สันนิษฐานในทุกเซกเมนต์) สวิทช์ของคุณก็จะลืมกลุ่มที่ - โฮสต์ไม่ส่งสมาชิกเป็นระยะเว้นแต่จะมีการถาม [แก้ไข: ขึ้นอยู่กับการกำหนดค่าสวิตช์อาจปล่อย multicast ที่ไม่รู้จักและน้ำท่วม] นั่นอาจเป็นคำตอบเฉพาะ (ส่งแพ็คเก็ตโดยไม่สนใจคำตอบใด ๆ ) หรือโดยทั่วไปเราเตอร์มัลติคาสต์ภายในโครงสร้างพื้นฐานของคุณ . ในกรณีที่เรียบง่ายนี้สิ่งที่ต้องทำก็คือทุกอย่างที่จำเป็นเพราะข้อความ VRRP นั้นถูกห้ามไม่ให้ข้ามเซ็กเมนต์

ฉันไม่คุ้นเคยกับสวิตช์ของ Dell ดังนั้นฉันจึงไม่ทราบว่าคำสั่ง cli ที่คุณต้องการคืออะไร

[อัปเดต]

Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
367    0000.5e00.0101    DYNAMIC     Po13   seq_no:0   <- multicast HA mac (UCARP)

นั่นไม่ใช่มัลติคาสต์แมค นั่นคือแหล่งที่มาของunicast MAC ของการรับส่งข้อมูลแบบหลายผู้รับ multicast mac จะไม่ปรากฏในตารางที่อยู่ mac ที่อยู่ในตารางกลุ่มแบบหลายผู้รับ Cisco IOS มีshow mac-address-table multicast(ไม่เห็นสิ่งใดบนเราเตอร์ของฉัน) และshow ip igmp groups(แสดง 3 กลุ่ม) เราเตอร์นั้นถูกตั้งค่าเป็น pim sparse-mode; สวิตช์ nortel และ cisco มองว่ามันน่าสงสัย

และวิธีการ KEMP นั้นมีข้อบกพร่องอย่างลึกซึ้งโดยใช้โฮสต์ NIC MAC สำหรับที่อยู่เสมือน ในกรณีของคุณ 5004 เป็นของนิก เมื่อ 5004 หายไปทุกคนจะยังคงมี "IP: 6 == MAC: 5004" ในตารางของพวกเขา พวกเขาจะพยายามพูดคุยกับโฮสต์ที่ตายแล้วต่อไปจนกว่าจะมีการแทนที่รายการนั้น เห็นได้ชัดว่า KEMP เล่นการพนันโดยไม่ต้องเสียค่าใช้จ่ายใด ๆ ทั้งสิ้นในเครือข่าย HSRP, VRRP และ OpenBSD ออกแบบ CARP ทั้งหมดใช้ MAC เสมือนจริงด้วยเหตุผลนี้ (ดูเหมือนว่าพวกเขาจะล้มเหลวในการแฮ็ค UCARP เพื่อใช้งาน mac mac แทน VRRP mac เสมือนเมื่อทำการส่งผ่านข้อมูลแบบมัลติคาสต์)

เมื่อพิจารณาว่าพวกเขาแฮกเกอร์ของ UCARP คุณแน่ใจหรือไม่ว่ามันกำลังใช้มัลติคาสต์อยู่?


ฉันได้ตั้งค่าเราเตอร์ PIM ที่แกนกลางของเราบน VLAN เดียวกัน - ไม่ควรที่จะกำจัดความต้องการที่น่ากลัวกว่านี้ใช่ไหม
pauska

1
ในทางทฤษฎีใช่ ยืนยันว่าสวิตช์ (es) เห็นผิดพลาด ( show ip igmp snooping querier vlan 367สำหรับซิสโก้)
Ricky Beam

พวกเขาไม่เห็นคำถามใด ๆ แต่พวกเขาเห็นคนโกรธเคือง (sh ip igmp snooping mrouter) ฉันควรจะมีความสงสัยและโกรธแค้น? ฉันคิดว่าคนหลังแทนที่คนแรก ..
pauska

1
ฉันไม่รู้ว่า Dell ปฏิบัติต่อมันอย่างไร สวิตช์ cisco, hp และ adtran ของฉันแสดง PIM mrouter ว่าเป็น querier แต่ขาด (หรือไม่ได้กำหนดค่าไว้) PIM รองรับตัวเอง
Ricky Beam
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.