Index
Was ist Equal Cost Multi Path (ECMP)?
Konfigurationssyntax
Beispiel
Ziel
Topologie
Beispielkonfiguration
Equal Cost Multi Path (ECMP) ist eine Layer-3-Routingstrategie zur Weiterleitung des Datenverkehrs an ein Ziel über mehrere verfügbare Pfade. ECMP erhöht die Anzahl der Pfade zu einem Ziel und erhöht die verfügbare Bandbreite, um das Ziel zu erreichen. Der ECMP-Mechanismus ermöglicht einen Lastenausgleich und eine höhere Bandbreite durch die Verwendung ungenutzter Verbindungen und Bandbreite.
ECMP-Hashing
Unterschiedliche Hashing-Seeds sind in verschiedenen Tiers erforderlich, um eine Datenverkehrs polarisierung in der Baumgröße der Rechenzentrumsnetzwerktopologie zu verhindern. In SONiC verwenden wir standardmäßig verschiedene Hashing-Algorithmen für ECMP und LAG, sodass die Konfiguration des Hash-Seed alles ist, was erforderlich ist.
Obwohl ECMP die Anzahl der verfügbaren Links erhöhen kann, sollten alle verfügbaren Pfade eng load-shared sein, sodass kein Pfad über- oder nicht ausgelasteten ist. Sie können die Hash-Parameter für die IP-ECMP-Lastfreigabe so ändern, dass sie sich auf die Lastenverteilung des Datenverkehrs über mehrere verfügbare Pfade auswirken. Um eine optimale ECMP-Lastfreigabe zu erhalten, konfigurieren Sie ECMP auf allen Geräten, die sich zwischen der Quelle und dem Ziel befinden.
Es ist eine Best Practice, bei Bedarf verschiedene Lastenausgleichsparameter auf jedem Tier basierend auf dem eindeutigen Datenverkehrsmuster im Netzwerk zu konfigurieren. Auf Router A könnten beispielsweise die Hash-Felder für den Lastenausgleich source-ip, dest-ip, protocol, source-port und L4-dest-port umfassen, während auf Router B die Hash-Felder nur source-ip, dest-ip und protocol verwenden können.
Konfigurieren Sie den ECMP-Hash-Seed.
Konfigurieren Sie einen eindeutigen Hash-Seed für jedes Gerät, um eine Hash-Polarisierung zu vermeiden, die zu Netzwerküberlastung führen kann. Eine Netzwerk-Polarisierung kann auftreten, wenn mehrere Datenflüsse versuchen, einen Switch über dieselben Switchports zu erreichen.
Konfigurationssyntax |
Erklärung |
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# ip load-share hash { seed-value }
|
Konfigurieren Sie den Hash-Seed. Der Wert für den Seed-Value liegt zwischen 0 und 16777215. |
Aktivieren von Multipath in der BGP-Konfiguration
Konfigurationssyntax |
Erklärung |
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}
|
Konfigurieren Sie die maximale Anzahl von eBGP-Routen, die ausgewählt werden können, um ECMP-Routen (Equal Cost Multi-Path) für die Lastenfreigabe zu bilden. |
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} |
Konfigurieren Sie die maximale Anzahl von iBGP-Routen, die ausgewählt werden können, um ECMP-Routen (Equal Cost Multi-Path) für die Lastenfreigabe zu bilden. |
Konfigurieren sie den ECMP-Lastfreigabe-Hash für IPv4 (optional).
Konfigurationssyntax |
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}
|
Konfigurieren sie den ECMP-Lastfreigabe-Hash für IPv6 (optional).
Konfigurationssyntax |
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}
|
Beachten Sie, dass der Dell SONiC-Switch über zwei Routen von BGP bis 4.4.4.4/32-Routen verfügt. Wir müssen ECMP verwenden, um 4.4.4.4/32 zu erreichen, und beide Routen gleichzeitig verwenden.
Wir können den Von den BGP-Nachbarn angegebenen Pfad zu unserem Switch anzeigen, um einen Host oder ein Subnetz zu erreichen. Verwenden Sie den Befehl show bgp ipv4 unicast <host/subnet>. Eine Beispielausgabe ist unten dargestellt.
DELLSONiC# show bgp ipv4 unicast 4.4.4.4
BGP-Routingtabelleneintrag für 4.4.4.4/32
Pfade: (2 verfügbar, beste Nr. 2, Tabellenstandard)
200
10.0.0.2 von 10.0.0.2 (20.0.0.1)
Ursprung unvollständig, Metrik 0, gültig, extern, Multipath
Letzte Aktualisierung: 2023-12-25 14:34:55+0000
200
30.0.0.2 von 30.0.0.2 (30.0.0.2)
Ursprung unvollständig, Metrik 0, gültig, extern, Multipath, am besten (älterer Pfad)
Letzte Aktualisierung: 2023-12-25 14:34:55+0000 |
|
Lassen Sie uns ECMP aktivieren.
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# ip load-share hash seed 100
|
Lassen Sie uns den maximalen BGP-Pfad auf 2 konfigurieren, da wir zwei Pfade haben.
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 |
Um zu überprüfen, ob beide Routen in der Routingtabelle installiert sind, verwenden Sie den folgenden Befehl:
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
|