KEMP-Load-Balancer mit UCARP (VRRP) - Multicast-MAC-Adresse wird nicht erfasst


10

Okay - ich habe mindestens 20 Stunden hintereinander dagegen gekämpft. Tut mir leid, wenn dies wie ein langer Scherz oder ein Blog-Beitrag erscheint, aber ich bin an einem Punkt der Erschöpfung angelangt.

Also, hier ist der Deal. Wir verwenden KEMP-Load-Balancer, die UCARP (einen Linux-Klon von CARP, einem VRRP-Klon) für HA-Heartbeat und persistente Zustände verwenden. Wir möchten IGMP in unserer Umgebung verwenden, um Überschwemmungen im gesamten Rechenzentrum zu verhindern.

Wir haben zwei Dell PowerConnect 8124F-Switches mit SW 5.1.1.7, die als Top-of-Rack fungieren. Diese beiden sind mit einem gestapelten Cisco 3750-X-Paar verbunden, das unser Kern ist.

Die Probleme begannen mit dem Upgrade auf PowerConnect 5.1.x, bei dem offenbar standardmäßig IGMP-Snooping aktiviert blieb, sofern Sie nichts anderes angeben. Und siehe da - unsere Load Balancer sind in Split-Brain geraten und haben allerlei warmen Fuzzy-Spaß verursacht.

  • Wenn ich das IGMP-Snooping in dem VLAN deaktiviere, in dem die Load Balancer ihren Multicast ausführen, geschieht nichts. Multicast ist immer noch tot
  • Wenn ich IP PIM auf unserem Core einrichte, sehen die PowerConnect-Switches es im selben VLAN, aber immer noch keinen Multicast-Verkehr
  • Wenn ich das Überfluten des gesamten nicht registrierten Multicast-Verkehrs aktiviere, wird immer noch nichts unternommen.
  • Wenn ich das IGMP-Snooping auf den PowerConnect-Switches global deaktiviere , funktioniert der gesamte Multicast-Verkehr. Es funktioniert so gut, dass Multicast-Verkehr auf jeden einzelnen Port mit demselben VLAN-Tag übertragen wird. Wunderbar.

Ich habe einige seltsame MAC-Adresseinträge im VLAN in unserem Kern bemerkt:

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

Und ich denke ... Ist das nicht die Multicast-Adresse? Warum ist das nicht im "sh mac address-table multicast"?

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

Und dann habe ich dies im PowerConnect CLI-Handbuch gelesen:

Multicast-Verkehr ist Verkehr, der an eine Hostgruppe gerichtet ist. Hostgruppen werden durch die Ziel-MAC-Adresse identifiziert, dh den Bereich 01: 00: 5e: 00: 00: 00-01: 00: 5e: 7f: ff: ff: ff für IPv4-Multicast-Verkehr oder 33: 33: xx: xx : xx: xx für IPv6-Multicast-Verkehr.

Scheint, als ob uns am Anfang der MAC-Adresse eine "01" fehlt, oder? Der obige dynamische MAC-Eintrag beginnt mit "00". An diesem Punkt denke ich darüber nach, KEMP anzurufen und sie wissen zu lassen, dass ihr Produkt schrecklich falsch konfiguriert ist. Aber dann lese ich den RFC für VRRP - und siehe da:

Die einem virtuellen Router zugeordnete MAC-Adresse des virtuellen Routers ist eine IEEE 802-MAC-Adresse im folgenden Format:

IPv4-Fall: 00-00-5E-00-01- {VRID} (in hexadezimaler Reihenfolge, in Internet-Standard-Bitreihenfolge)

In Ordnung - Switches erfassen normalerweise nicht den Multicast-Mac-Adressbereich für VRRP. Lassen Sie uns eine statische Hostgruppe auf den Dell-Switches konfigurieren. Nee.

Ungültige Eingabe: Die Multicast-MAC-Adresse muss das Format 01XX: XXXX: XXXX haben

OK dann .. Versuchen Sie im nächsten Schritt, einen statischen Mac-Eintrag hinzuzufügen:

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

forbidden                forbid adding specific multicast addresses to
                         specific ports.

osl-sys-swrack03(config)#

Also - keine Möglichkeit, einen statischen Multicast-MAC-Eintrag zu konfigurieren. Wenn ich versuche, dasselbe mit einem regulären statischen MAC-Eintrag zu tun, kann ich ihn nur an einen Port binden - dieser Lastausgleichscluster läuft über 4 verschiedene 10-Gig-Ports.

Update : Es scheint einige Verwirrung hinsichtlich der MAC-Adressen zu geben. 172.30.1.0/24 ist das nach vorne gerichtete Loadbalancer-Netzwerk. 172.30.1.6 ist der standardmäßige gemeinsam genutzte VIP für den Cluster, .7 ist die Verwaltungs-IP für den ersten Load Balancer und .8 ist für den zweiten Load Balancer. Alle anderen Adressen (30, 40, 70, 80 usw.) sind VIP-Adressen mit unterschiedlichen Diensten. Wenn ein Failover auftritt, ändern alle VIPs ihre MAC-Adresse in die physische MAC-Adresse der zweiten LB. Die Multicast-Adresse in der unteren Tabelle ändert sich nicht .

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

Und das ist die Geschichte. Was um alles in der Welt soll ich damit machen?


What on earth am I going to do with this?<- Tequila. Viel davon.
voretaq7

Sie verwechseln die zwischen den "virtuellen Routern" verwendete Multicast-Adresse (um festzustellen, wer da ist und wer der Master ist) und die für den virtuellen Router selbst verwendete Unicast-Adresse (dh den MAC für die virtuelle IP)
Ricky Beam

@ RickyBeam Könnten Sie etwas genauer sein? Der Grund, warum es in der obigen Liste zwei Mac-Adressen gab (gab), ist, dass wir zwei Paare von Loadbalancern haben, die jeweils ihre eigene ID haben (01 und 02 am Ende) - wenn Sie daran denken?
Pause

1
Nein, Sie sind immer noch verwirrt über den Unicast-MAC, der der IP des virtuellen Routers zugeordnet ist. Dies ist der MAC-Host, mit dem Sie mit ihrem Dienst mit Lastenausgleich kommunizieren. Eine Multicast-Adresse ist das, was die Load Balancer verwendet haben, um zu wissen, wer verantwortlich ist. (Lesen Sie Abschnitt 5.1.1)
Ricky Beam

@ RickyBeam Sorry, das ergibt für mich keinen Sinn. Die Unicast-MAC-Adresse für jeden Load Balancer (00:56, VMware) unterscheidet sich grundlegend von der 0000.5e00.0101, die beim Deaktivieren des IGMP-Snooping angezeigt wird.
Pause

Antworten:


5

Ich konnte das Problem beheben. Auf dem Kemp (mit HA-Paar) haben Sie die Möglichkeit, eine "virtuelle MAC-Adresse" zu verwenden. Wenn dieses Kontrollkästchen nicht aktiviert ist, entspricht der MAC eines Load Balancer VIP dem der physischen Schnittstelle der aktiven Kemp-Einheit. Wenn dieses Kontrollkästchen aktiviert ist, ist die MAC-Adresse des VIP ein VRRP-MAC. Wie Sie oben erwähnt haben, gibt der VRRP-RFC an, dass der MAC "00:00" {blah} ist und das letzte Oktett die Router-ID ist. Die Standard-Kemp HA [Router] -ID ist 01. Auf meinen Powerconnects mit Firmware 5.1.xx verwende ich kein VRRP, aber ich habe einige Traces ausgeführt und festgestellt, dass Powerconnect einen VRRP-Frame löscht, wenn die Router-ID mit sich selbst übereinstimmt. Sie tun dies AUCH, wenn VRRP nicht konfiguriert ist, und in diesem Modus standardmäßig 01. Wenn Sie also die Kemp HA-Router-ID auf 22 (0x16) ändern, funktioniert alles.


Sie sind mein Held. Vielen Dank, dass Sie das endlich herausgefunden haben! Extrem schlechter Wortlaut von KEMPs Teil - sie sollten Ihnen eine Beschreibung geben, die Ihnen tatsächlich sagt, dass dies in die VRRP-Router-ID übersetzt wird.
Pause

2

Die gesuchte Multicast-Adresse lautet 224.0.0.18 [mac: 01005e.000012]. Dies ist der Steuerkanal für alle VRRP-Knoten. [Bearbeiten] Sofern KEMP den Code nicht geändert hat, erzeugt CARP (UCARP) Datenverkehr mithilfe des VRRP-Unicast-MAC [00005e.0001xx] - dort würde ein Switch ihn natürlich lernen.

Wenn Sie keinen Abfrager im Netzwerk haben (vermutlich in jedem Segment), vergessen Ihre Switches schließlich, welche Gruppen sich wo befinden - Hosts senden keine regelmäßigen Mitgliedschaften, es sei denn, Sie werden dazu aufgefordert. [Bearbeiten: Abhängig von der Konfiguration kann ein Switch unbekanntes Multicast im Vergleich zu Flooding löschen.] Dies kann ein dedizierter Abfrager sein (er sendet das Paket, es kümmert sich nicht um Antworten) oder häufiger der Multicast-Router in Ihrer Infrastruktur . In diesem einfachen Fall ist lediglich ein Abfrager erforderlich, da es den VRRP-Nachrichten ohnehin verboten ist, Segmente zu kreuzen.

Ich bin mit Dell-Switches nicht vertraut, daher weiß ich nicht, welche CLI-Befehle Sie benötigen.

[AKTUALISIEREN]

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

Das ist nicht der Multicast-Mac. Das ist die Unicast-MAC- Quelle des Multicast-Verkehrs. Der Multicast-Mac wird nicht in der Mac-Adresstabelle angezeigt. Das ist in einer Multicast-Gruppentabelle. Cisco IOS hat eine show mac-address-table multicast(zeigt nichts auf meinem Router) und show ip igmp groups(zeigt 3 Gruppen). Dieser Router ist auf PIM-Sparse-Modus eingestellt. Nortel und Cisco Switches sehen es als Querier.

Die KEMP-Methode ist sehr fehlerhaft, da der Host-NIC-MAC für virtuelle Adressen verwendet wird. In Ihrem Fall gehört 5004 zu einem nic. Wenn 5004 verschwindet, haben alle noch "IP: 6 == MAC: 5004" in ihren Tabellen. Sie werden weiterhin versuchen, mit dem toten Host zu sprechen, bis dieser Eintrag ersetzt wird. KEMP spielt offensichtlich darauf, dass alles im Netzwerk unentgeltlich geehrt wird. HSRP, VRRP und das von OpenBSD entwickelte CARP verwenden aus diesem Grund alle einen virtuellen MAC. (Es scheint, dass sie UCARP nicht gehackt haben, um den nic mac anstelle des virtuellen VRRP-Mac bei der Übertragung des Multcast-Verkehrs zu verwenden.)

Sind Sie sicher, dass UCARP sogar Multicast verwendet?


Ich habe bereits einen PIM-Router in unserem Kern im selben VLAN eingerichtet. Sollte dies nicht die Notwendigkeit eines Abfragers beseitigen?
Pause

1
Theoretisch ja. Vergewissern Sie sich, dass die Schalter einen Abfrager sehen. ( show ip igmp snooping querier vlan 367für einen Cisco)
Ricky Beam

Sie sehen kein Querier, aber sie sehen den Mrouter (sh ip igmp snooping mrouter). Soll ich einen Querier und einen Mrouter haben? Ich dachte, letzteres ersetzt das erste.
Pause

1
Ich weiß nicht, ob Dell damit umgeht. Meine Cisco-, HP- und Adtran-Switches zeigen den PIM-Router als Abfrager an, aber sie haben selbst keine PIM-Unterstützung (oder sind nicht dafür konfiguriert).
Ricky Beam
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.