Index
Qu’est-ce qu’ECMP (Equal Cost Multi Path) ?
Syntaxe de configuration
Exemple
Objectif
Topologie
Exemple de configuration
Equal Cost Multi Path (ECMP) est une stratégie de routage de couche 3 qui permet de transférer le trafic vers une destination à l’aide de plusieurs chemins disponibles. ECMP augmente le nombre de chemins d’accès à une destination et augmente la bande passante disponible pour atteindre la destination. Le mécanisme ECMP permet d’équilibrer la charge et d’augmenter la bande passante en utilisant des liaisons et de la bande passante inutilisées.
Hachage
ECMPDes seeds de hachage différents sont requis dans différents niveaux pour éviter la polarisation du trafic dans une topologie réseau de datacenter au format arborescale. Dans SONiC, nous utilisons des algorithmes de hachage distincts pour ECMP et LAG par défaut. Par conséquent, la configuration du seed de hachage est tout ce qui est nécessaire.
Bien qu’ECMP puisse augmenter le nombre de liaisons disponibles, tous les chemins disponibles doivent être étroitement partagés à charge afin qu’aucun chemin ne soit dépassé ou sous-utilisé. Vous pouvez modifier les paramètres de hachage du partage de charge ECMP IP pour affecter le partage de charge du trafic sur plusieurs chemins disponibles. Pour obtenir un partage de charge ECMP optimal, configurez ECMP sur tous les périphériques qui résident entre la source et la destination.
Il est recommandé de configurer différents paramètres d’équilibrage de charge à chaque niveau en fonction du modèle de trafic unique sur le réseau, si nécessaire. Par exemple, sur le routeur A, les champs de hachage pour l’équilibrage de charge peuvent inclure source-ip, dest-ip, protocol, source-port et L4-dest-port, tandis que sur le routeur B, les champs de hachage peuvent utiliser uniquement source-ip, dest-ip et protocole.
Configurez le seed de hachage ECMP.
Configurez un seed de hachage unique pour chaque périphérique afin d’éviter la polarisation du hachage qui peut entraîner une congestion du réseau. La polarisation du réseau peut se produire lorsque plusieurs flux de données tentent d’atteindre un commutateur à l’aide des mêmes ports de commutateur.
Syntaxe de configuration |
Explication |
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# ip load-share hash { seed-value }
|
Configurez le seed de hachage. La valeur de la valeur seed-value est comprise entre 0 et 16777215. |
Activation du multipathing dans la configuration BGP
Syntaxe de configuration |
Explication |
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}
|
Configurez le nombre maximal de routes eBGP pouvant être sélectionnées pour former des routes à chemins d’accès multiples (ECMP) à coût égal pour le partage de charge. |
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} |
Configurez le nombre maximal de routes iBGP qui peuvent être sélectionnées pour former des routes à chemins d’accès multiples (ECMP) à coût égal pour le partage de charge. |
Configurer le hachage du partage de charge ECMP pour IPv4 (facultatif).
Syntaxe de configuration |
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}
|
Configurer le hachage du partage de charge ECMP pour IPv6 (facultatif).
Syntaxe de configuration |
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}
|
Tenez compte du fait que le commutateur Dell SONiC a deux routes de BGP pour atteindre les routes 4.4.4.4/32. Nous devons utiliser ECMP pour atteindre la version 4.4.4.4/32 et utiliser les deux routes simultanément.
Nous pouvons afficher le chemin annoncé par les voisins BGP de notre commutateur pour atteindre un hôte ou un sous-réseau, utilisez la commande show bgp ipv4 unicast <host/subnet>. Un exemple de sortie est indiqué ci-dessous
DELLSONiC# show bgp ipv4 unicast 4.4.4.4
Entrée de table de routage BGP pour 4.4.4.4/32
Chemins: (2 disponibles, meilleur #2, tableau par défaut)
200
10.0.0.2 à partir de 10.0.0.2 (20.0.0.1)
Origine incomplète, metric 0, valide, externe, multipath
Dernière mise à jour : 2023-12-25 14:34:55+0000
200
30.0.0.2 à partir de 30.0.0.2 (30.0.0.2)
Origine incomplète, metric 0, valide, externe, multipath, meilleur (chemin plus ancien)
Dernière mise à jour : 2023-12-25 14:34:55+0000 |
|
Nous allons activer ECMP.
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# ip load-share hash seed 100
|
Configurons le chemin BGP maximal sur 2, car nous avons deux chemins.
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 |
Pour vérifier si les deux routes sont installées dans la table de routage, utilisez la commande ci-dessous :
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
|