Índice
O que é ECMP (Equal Cost Multi Path,caminho de custo igual)?
Sintaxe de configuração
Exemplo
Objetivo
Topologia
Exemplo de configuração
ECMP (Equal Cost Multi Path) é uma estratégia de roteamento de Camada 3 para encaminhar o tráfego para um destino usando vários caminhos disponíveis. O ECMP aumenta o número de caminhos para um destino e aumenta a largura de banda disponível para chegar ao destino. O mecanismo do ECMP permite o balanceamento de carga e o aumento da largura de banda usando links e largura de banda não utilizados.
Hash ecmp
Diferentes sementes de hash são necessárias em diferentes níveis para evitar a polarização de tráfego na topologia de rede de data center com tamanho de árvore. No SONiC, usamos algoritmos de hash distintos para ECMP e LAG por padrão, portanto, configurar a propagação de hash é tudo o que é necessário.
Embora o ECMP possa aumentar o número de links disponíveis, todos os caminhos disponíveis devem ser estreitamente compartilhados para que nenhum caminho seja superutilizado ou subutilizado. Você pode modificar os parâmetros de hash de compartilhamento de carga ECMP de IP para afetar o compartilhamento de carga de tráfego em vários caminhos disponíveis. Para obter o compartilhamento de carga de ECMP ideal, configure o ECMP em todos os dispositivos que residem entre a origem e o destino.
É uma prática recomendada configurar diferentes parâmetros de balanceamento de carga em cada nível com base no padrão de tráfego exclusivo na rede, se necessário. Por exemplo, no roteador A, os campos de hash para balanceamento de carga podem incluir source-ip, dest-ip, protocol, source-port e L4-dest-port, enquanto no roteador B, os campos de hash podem usar apenas source-ip, dest-ip e protocolo.
Configure a propagação de hash ECMP.
Configure uma propagação de hash exclusiva para cada dispositivo para evitar a polarização de hash, o que pode resultar em congestionamento de rede. A polarização de rede pode ocorrer quando vários fluxos de dados tentam alcançar um switch usando as mesmas portas de switch.
Sintaxe de configuração |
Explicação |
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# ip load-share hash { seed-value }
|
Configure a propagação de hash. O valor de seed-value é de 0 a 16777215. |
Ativando vários caminhos na configuração BGP
Sintaxe de configuração |
Explicação |
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}
|
Configure o número máximo de rotas eBGP que podem ser selecionadas para formar rotas ecMP (Equal Cost Multi-Path, múltiplos caminhos de custo igual) para compartilhamento de carga. |
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} |
Configure o número máximo de rotas iBGP que podem ser selecionadas para formar rotas ecMP (Equal Cost Multi-Path, múltiplos caminhos de custo igual) para compartilhamento de carga. |
Configurar o hash de compartilhamento de carga ECMP para IPv4 (opcional).
Sintaxe de configuração |
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}
|
Configurar o hash de compartilhamento de carga ECMP para IPv6 (opcional).
Sintaxe de configuração |
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}
|
Considere que o switch Dell SONiC tem duas rotas de BGP para alcançar rotas 4.4.4.4/32. Devemos usar o ECMP para chegar à versão 4.4.4.4/32 e usar as duas rotas simultaneamente.
Podemos visualizar o caminho anunciado pelos vizinhos do BGP para nosso switch para acessar um host ou sub-rede. Use o comando show bgp ipv4 unicast <host/subnet>. Um exemplo de resultado é exibido abaixo
DELLSONiC# show bgp ipv4 unicast 4.4.4.4
Entrada da tabela de roteamento BGP para 4.4.4.4/32
Caminhos: (2 disponíveis, melhor nº 2, tabela padrão)
200
10.0.0.2 de 10.0.0.2 (20.0.0.1)
Origem incompleta, medição 0, válida, externa, múltiplos caminhos
Última atualização: 2023-12-25 14:34:55+0000
200
30.0.0.2 de 30.0.0.2 (30.0.0.2)
Origem incompleta, medição 0, válida, externa, múltiplos caminhos, melhor (caminho mais antigo)
Última atualização: 2023-12-25 14:34:55+0000 |
|
Vamos ativar o ECMP.
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure
DELLSONiC(config)# ip load-share hash seed 100
|
Vamos configurar o caminho máximo do BGP para 2, pois temos dois caminhos.
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 |
Para verificar se ambas as rotas estão instaladas na tabela de roteamento, use o comando abaixo:
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
|