Indice
Che cos'è Equal Cost Multi Path (ECMP)?
Sintassi di
configurazione
Esempio
Obiettivo
Topologia
Configurazione di esempio
Equal Cost Multi Path (ECMP) è una strategia di routing di livello 3 per inoltrare il traffico a una destinazione utilizzando più percorsi disponibili. ECMP aumenta il numero di percorsi verso una destinazione e aumenta la larghezza di banda disponibile per raggiungere la destinazione. Il meccanismo ECMP consente il bilanciamento del carico e una maggiore larghezza di banda utilizzando link e larghezza di banda inutilizzati.
Hashing
ECMPIn tier diversi sono necessari diversi hashing in modo da impedire la polarizzazione del traffico nella topologia di rete del data center di dimensioni ad albero. In SONiC, utilizziamo algoritmi hash distinti per ECMP e LAG per impostazione predefinita, quindi la configurazione dell'hash seed è tutto ciò che è necessario.
Sebbene ECMP possa aumentare il numero di link disponibili, tutti i percorsi disponibili devono essere strettamente condivisi in base al carico in modo che nessun percorso sia over o underutilized. È possibile modificare i parametri hash della condivisione del carico ECMP IP per influire sulla condivisione del carico del traffico tra più percorsi disponibili. Per ottenere una condivisione ottimale del carico ECMP, configurare ECMP in tutti i dispositivi che risiedono tra l'origine e la destinazione.
Si tratta di una best practice per configurare diversi parametri di bilanciamento del carico a ogni tier in base al modello di traffico univoco nella rete, se necessario. Ad esempio, nel Router A, i campi hash per il bilanciamento del carico possono includere source-ip, dest-ip, protocollo, porta di origine e L4-dest-port, mentre nel Router B i campi hash possono utilizzare solo source-ip, dest-ip e protocollo.
Configurare l'hash seed ECMP.
Configurare un seed hash univoco per ogni dispositivo per evitare la polarizzazione hash che potrebbe causare la congestione della rete. La polarizzazione della rete può verificarsi quando più flussi di dati tentano di raggiungere uno switch utilizzando le stesse porte dello switch.
Sintassi di configurazione |
Spiegazione |
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# ip load-share hash { seed-value }
|
Configurare l'hash seed. Il valore del seed-value è da 0 a 16777215. |
Attivazione del multipath nella configurazione BGP
Sintassi di configurazione |
Spiegazione |
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# router bgp {as-number}
DELLSONiC (conf-router-bgp)# address-family {ipv4 unicast | ipv6 unicast}
DELLSONiC (conf-router-bgp-af)# maximum-paths {number}
|
Configurare il numero massimo di route eBGP selezionabili per formare route multipath (ECMP) a costo pari per la condivisione del carico. |
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# router bgp {as-number}
DELLSONiC (conf-router-bgp)# address-family {ipv4 unicast | ipv6 unicast}
DELLSONiC (conf-router-bgp-af)# maximum-paths ibgp {number} |
Configurare il numero massimo di route iBGP selezionabili per formare route multipath (ECMP) a costo pari per la condivisione del carico. |
Configurare l'hash della condivisione del carico ECMP per IPv4 (opzionale).
Sintassi di configurazione |
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# ip load-share hash ipv4 {ipv4-src-ip | ipv4-dst-ip | ipv4-ip-proto | ipv4-l4-src-port| ipv4-l4-dst-port | symmetric}
|
Configurare l'hash della condivisione del carico ECMP per IPv6 (opzionale).
Sintassi di configurazione |
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# ip load-share hash ipv6 {ipv6-src-ip | ipv6-dst-ip | ipv6-next-hdr | ipv6-l4-src-port| ipv6-l4-dst-port | symmetric}
|
Si consideri che lo switch Dell SONiC dispone di due route da BGP per raggiungere 4.4.4.4/32 route. È necessario utilizzare ECMP per raggiungere 4.4.4.4/32 e utilizzare entrambe le route contemporaneamente.
È possibile visualizzare il percorso pubblicizzato dai dispositivi contigui BGP allo switch per raggiungere un host o subnet, utilizzare il comando show bgp ipv4 unicast <host/subnet>. Di seguito viene mostrato un esempio di output
DELLSONiC# show bgp ipv4 unicast 4.4.4.4
Voce della tabella di routing BGP per 4.4.4.4/32
Percorsi: (2 disponibili, migliore n. 2, tabella predefinita)
200
10.0.0.2 da 10.0.0.2 (20.0.0.1)
Origine incompleta, metrica 0, valida, esterna, multipath
Ultimo aggiornamento: 2023-12-25 14:34:55+0000
200
30.0.0.2 da 30.0.0.2 (30.0.0.2)
Origine incompleta, metrica 0, valida, esterna, multipath, best (percorso precedente)
Ultimo aggiornamento: 2023-12-25 14:34:55+0000 |
|
Attivamo ECMP.
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# ip load-share hash seed 100
|
Configuriamo il percorso BGP massimo su 2 in quanto abbiamo due percorsi.
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# router bgp 100
DELLSONiC(config-router-bgp)# address-family ipv4 unicast
DELLSONiC(config-router-bgp-af)# maximum-paths 2 |
Per verificare se entrambe le route sono installate nella tabella di routing, utilizzare il comando seguente:
show ip route <hopst/subnet>
DELLSONiC# show ip route 4.4.4.4
Codes: K - kernel route, C - connected, S - static, B - BGP, O - OSPF
> - selected route, * - FIB route, q - queued route, r - rejected route
Destination Gateway Dist/Metric Last Update
--------------------------------------------------------------------------------------------------------------------------------
B>* 4.4.4.4/32 via 10.0.0.2 Eth1/1 20/0 03:02:41 ago
* via 30.0.0.2 Eth1/2
|