Bilanciatori di carico KEMP utilizzando UCARP (VRRP) - indirizzo MAC multicast non prelevato


10

Va bene - sto combattendo questo per almeno 20 ore consecutive .. Scusate se questo sembra un lungo sfogo, o un post sul blog, ma sto arrivando al punto di esaurimento.

Quindi, ecco l'affare. Stiamo usando i sistemi di bilanciamento del carico KEMP, che utilizza UCARP (un clone Linux di CARP, che è un clone VRRP) per il battito cardiaco HA e gli stati persistenti. Vogliamo utilizzare IGMP nel nostro ambiente per prevenire inondazioni nel data center.

Abbiamo due switch Dell PowerConnect 8124F con SW 5.1.1.7 che agiscono come top-of-rack. Questi due sono collegati a una coppia sovrapposta di Cisco 3750-X, che è il nostro core.

I problemi sono iniziati quando abbiamo eseguito l'aggiornamento a PowerConnect 5.1.x, dove apparentemente non sono riusciti a lasciare lo snooping IGMP a meno che tu non lo dica diversamente. Ed ecco, i nostri sistemi di bilanciamento del carico sono andati nel cervello diviso, causando ogni sorta di caldo divertimento fuzzy.

  • Se disabilito lo snooping IGMP sulla VLAN in cui i bilanciatori del carico non eseguono il multicast, non accade nulla, il multicast è ancora morto
  • Se imposto IP PIM sul nostro core, gli switch PowerConnect lo vedono sulla stessa VLAN, ma ancora nessun traffico multicast
  • Se abilito l'inondazione di tutto il traffico multicast non registrato, continua a non fare nulla.
  • Se disabilito lo snooping IGMP a livello globale sugli switch PowerConnect, tutto il traffico multicast funziona. Funziona così bene che il traffico multicast viene riversato su ogni singola porta con lo stesso tag VLAN. Meraviglioso.

Ho notato alcune strane voci dell'indirizzo MAC sulla VLAN nel nostro core:

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

E penso .. Non è l'indirizzo multicast? Perché non è questo nel "multicast sh-address-table"?

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

E poi ho letto questo nella guida della CLI di PowerConnect:

Il traffico multicast è il traffico destinato a un gruppo host. I gruppi host sono identificati dall'indirizzo MAC di destinazione, ovvero l'intervallo 01: 00: 5e: 00: 00: 00-01: 00: 5e: 7f: ff: ff: ff per il traffico multicast IPv4 o 33: 33: xx: xx : xx: xx per traffico multicast IPv6.

Sembra che ci manchi uno "01" all'inizio dell'indirizzo MAC, no? La voce MAC dinamica sopra inizia con "00". A questo punto sto pensando di chiamare KEMP e far loro sapere che il loro prodotto è orribilmente mal configurato. Ma poi vado a leggere la RFC per VRRP - ed ecco:

L'indirizzo MAC del router virtuale associato a un router virtuale è un indirizzo MAC IEEE 802 nel seguente formato:

Caso IPv4: 00-00-5E-00-01- {VRID} (in esadecimale, in ordine di bit standard Internet)

Bene, quindi gli switch normalmente non raccolgono l'intervallo di indirizzi mac multicast per VRRP. Bene, configuriamo un gruppo host statico sugli switch Dell. No.

Immissione non valida: l'indirizzo MAC multicast deve essere nel formato 01XX: XXXX: XXXX

OK quindi .. Passaggio successivo, prova ad aggiungere una voce mac statica:

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

forbidden                forbid adding specific multicast addresses to
                         specific ports.

osl-sys-swrack03(config)#

Quindi - nessun modo per configurare una voce MAC statica multicast. Se provo a fare lo stesso con una normale voce MAC statica, posso associarlo a una sola porta: questo cluster di bilanciamento del carico viene eseguito su 4 diverse porte da 10 gig.

Aggiornamento : sembra esserci un po 'di confusione riguardo agli indirizzi MAC. 172.30.1.0/24 è la rete di bilanciamento del carico frontale. 172.30.1.6 è il VIP condiviso predefinito per il cluster, .7 è l'IP di gestione per il primo bilanciamento del carico e .8 è per il secondo bilanciamento del carico. Tutti gli altri indirizzi (30, 40, 70, 80 ecc.) Sono tutti VIP con diversi servizi. Quando si verifica un failover, tutti i VIP cambiano il loro indirizzo MAC nel secondo indirizzo MAC fisico del LB. L'indirizzo multicast nella tabella in basso non cambia.

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

E questa è la storia. Cosa diavolo ho intenzione di fare con questo?


What on earth am I going to do with this?<- Tequila. Un sacco.
voretaq7,

Stai confondendo l'indirizzo multicast utilizzato tra i "router virtuali" (per dire chi c'è e chi è il master) e l'indirizzo unicast utilizzato per il router virtuale stesso (ovvero il MAC per l'IP virtuale.)
Ricky Beam,

@RickyBeam Potresti essere un po 'più specifico? Il motivo per cui c'erano (c'erano) due indirizzi mac nell'elenco sopra è perché abbiamo due coppie di bilanciatori del carico, ognuno con il proprio ID (lo 01 e 02 alla fine) - se è questo che stai pensando?
pauska,

1
No, sei ancora confuso sul MAC unicast associato all'IP del router virtuale: è quello che usano gli host MAC per parlare con il loro servizio bilanciato del carico. Un indirizzo multicast è ciò che i bilanciatori del carico erano soliti sapere chi è responsabile. (leggi la sezione 5.1.1)
Ricky Beam,

@RickyBeam Siamo spiacenti, non ha alcun senso per me. L'indirizzo MAC unicast per ciascun bilanciamento del carico (00:56, vmware) è completamente diverso da 0000.5e00.0101 che vedo quando disabilito lo snooping IGMP.
pauska,

Risposte:


5

Sono stato in grado di risolvere il problema. Su Kemp (con coppia HA) hai la possibilità di usare un "indirizzo MAC virtuale". Se questa casella non è selezionata, il MAC di un bilanciamento del carico VIP è quello dell'interfaccia fisica dell'unità Kemp attiva. Se questa casella è selezionata, l'indirizzo MAC del VIP è un MAC VRRP. Come accennato in precedenza, RFR VRRP afferma che il MAC è "00:00" {blah} con l'ultimo ottetto che è l'ID router. L'ID Kemp HA [router] predefinito è 01. Sui miei Powerconnects tramite Firmware 5.1.xx non sto usando VRRP ma ho eseguito alcune tracce e ho determinato che Powerconnect lascerà cadere un frame VRRP se l'ID router è lo stesso di se stesso. Lo fanno ANCHE se VRRP non è configurato e in quella modalità passano automaticamente a 01. Quindi cambiando l'ID del router Kemp HA con qualcosa come 22 (0x16) tutto ha funzionato.


Tu sei il mio eroe. Grazie per averlo finalmente capito! Formulazione estremamente scadente della parte di KEMP - dovrebbero darti una descrizione che ti dice effettivamente che questo si traduce nell'ID del router VRRP.
pauska,

2

L'indirizzo multicast che stai cercando è 224.0.0.18 [mac: 01005e.000012]. Questo è il canale di controllo per tutti i nodi VRRP. [modifica] A meno che KEMP non abbia modificato il codice, CARP (UCARP) genera traffico utilizzando il MAC unicast VRRP [00005e.0001xx] - è lì che un interruttore lo imparerebbe naturalmente.

Se non hai una query sulla rete (presumibilmente in ogni segmento), i tuoi switch alla fine dimenticheranno quali gruppi si trovano - gli host non inviano abbonamenti periodici a meno che non venga richiesto. [modifica: a seconda della configurazione, uno switch potrebbe rilasciare multicast sconosciuto, inondazione.] Questo può essere un interrogante dedicato (invia il pacchetto, non si preoccupa di alcuna risposta), o più comunemente il router multicast all'interno della tua infrastruttura . In questo semplice caso, è sufficiente solo una query poiché ai messaggi VRRP è proibito attraversare segmenti comunque.

Non ho familiarità con gli switch Dell, quindi non so quali comandi cli siano necessari.

[AGGIORNARE]

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

Questo non è il mac multicast. Questa è l' origine MAC unicast del traffico multicast. Il mac multicast non verrà visualizzato nella tabella degli indirizzi mac. È in una tabella di gruppo multicast. Cisco IOS ha un show mac-address-table multicast(non mostra nulla sul mio router) e show ip igmp groups(mostra 3 gruppi). Quel router è impostato in modalità sparse pim; gli switch nortel e cisco lo vedono come un query.

E il metodo KEMP è profondamente imperfetto usando l'host NIC MAC per gli indirizzi virtuali. Nel tuo caso, 5004 appartiene a una nic. Quando 5004 scompare, tutti avranno ancora "IP: 6 == MAC: 5004" nelle loro tabelle; continueranno a provare a parlare con l'host morto fino a quando quella voce non verrà sostituita. KEMP sta ovviamente scommettendo su arp gratuito essendo onorato da tutto nella rete. HSRP, VRRP, e l'OpenBSD creata CARP tutto uso un MAC virtuale per questo motivo. (sembra che non siano riusciti a hackerare UCARP per utilizzare il mac nic anziché il mac virtuale VRRP durante la trasmissione del suo traffico multcast.)

Dati i loro hacker di UCARP, sei sicuro che stia persino usando il multicast?


Ho già installato un router PIM nel nostro core sulla stessa VLAN - non dovrebbe eliminare la necessità di un query?
pauska,

1
In teoria si. Conferma che gli interruttori stanno visualizzando un queryer. ( show ip igmp snooping querier vlan 367per un Cisco)
Ricky Beam,

Non vedono alcun problema, ma vedono il mrouter (sh ip igmp mopro snooping). Dovrei avere un queryer E un mrouter? Pensavo che quest'ultimo sostituisse il primo ..
pauska,

1
Non so che Dell lo tratti. I miei switch cisco, hp e adtran mostrano il mrouter PIM come il più interrogativo, ma mancano (o non sono configurati per) il supporto PIM stesso.
Ricky Beam,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.