Encaminhamento baseado em fluxo de ECMP
Este tópico fornece uma breve visão geral do equal-cost multipath (ECMP) para encaminhamento e tráfego reverso no Junos OS, firewalls da Série SRX e instâncias de Firewall virtual vSRX. Para cobertura abrangente da implementação do ECMP no Junos OS, firewalls da Série SRX e instâncias de Firewall virtual vSRX.
Entender o encaminhamento baseado em fluxo de ECMP
O Equal-cost Multipath (ECMP) é uma estratégia de roteamento de rede que permite que o tráfego da mesma sessão ou fluxo — ou seja, tráfego com a mesma origem e destino — seja transmitido por vários caminhos de igual custo. É um mecanismo que permite balancear a carga do tráfego e aumentar a largura de banda, utilizando totalmente a largura de banda não utilizada em links para o mesmo destino.
Ao encaminhar um pacote, a tecnologia de roteamento deve decidir qual caminho de próximo salto usar. Ao fazer uma determinação, o dispositivo leva em consideração os campos de cabeçalho de pacote que identificam um fluxo. Quando o ECMP é usado, os caminhos next-hop de custo igual são identificados com base em cálculos de métricas de roteamento e algoritmos de hash. Ou seja, rotas de custo igual têm os mesmos valores de preferência e métrica e o mesmo custo para a rede. O processo ECMP identifica um conjunto de roteadores, cada um dos quais é um próximo salto legítimo de custo igual em direção ao destino. As rotas identificadas são chamadas de conjunto de ECMP. Por abordar apenas o destino do próximo salto, o ECMP pode ser usado com a maioria dos protocolos de roteamento.
Um conjunto de multipath de custo igual (ECMP) é formado quando a tabela de roteamento contém vários endereços next-hop para o mesmo destino com custo igual. (Rotas de custo igual têm a mesma preferência e valores de métrica.) Se houver um conjunto de ECMP para a rota ativa, o Junos OS usa um algoritmo de hash para escolher um dos endereços de próximo salto no conjunto de ECMP a ser instalado na tabela de encaminhamento.
Você pode configurar o Junos OS para que várias entradas de next-hop em um conjunto de ECMP sejam instaladas na tabela de encaminhamento. Nos dispositivos da Juniper Networks, o balanceamento de carga por fluxo pode ser realizado para distribuir o tráfego por vários caminhos entre os dispositivos de roteamento. Nos dispositivos de segurança da Juniper Networks, os endereços IP e protocolos de origem e destino são examinados para determinar fluxos de tráfego individuais. Os pacotes para o mesmo fluxo são encaminhados na mesma interface; a interface não muda quando há adições ou alterações no conjunto de ECMP. Isso é importante para recursos como o NAT de origem, em que a tradução é realizada apenas durante o primeiro caminho de estabelecimento da sessão para túneis IDP, ALG e VPN baseados em rota. Se um pacote chega em uma determinada interface em um conjunto de ECMP, o dispositivo de segurança garante que o tráfego reverso seja encaminhado pela mesma interface.
O encaminhamento baseado em fluxo de ECMP em dispositivos de segurança se aplica a fluxos de tráfego unicast IPv4 e IPv6. O encaminhamento baseado em fluxo ECMP do tráfego unicast IPv6 é suportado em todos os firewalls da Série SRX e instâncias de Firewall virtual vSRX. O fluxo multicast não é suportado. Use o Explorador de Recursos para confirmar o suporte à plataforma e à versão para um recurso específico.
Nos dispositivos de segurança da Juniper Networks, o número máximo de endereços next-hop em um conjunto de ECMP que podem ser instalados na tabela de encaminhamento é 16. Se houver mais de 16 endereços next-hop em um conjunto de ECMP, somente os primeiros 16 endereços serão usados.
Em uma implantação de cluster de chassi , uma interface local é uma interface que está no mesmo nó que a interface na qual um pacote chega, e uma interface remota é uma interface que está no outro nó de cluster de chassi. Se uma rota ECMP tiver interfaces locais e remotas em um cluster de chassi, a interface local será favorecida para o próximo salto.
Se um endereço next-hop não fizer mais parte do conjunto de ECMP ou se for removido da tabela de roteamento devido a uma mudança de rota, um fluxo que usa o próximo salto será redirecionado e a sessão não será afetada. O novo roteamento do fluxo também ocorrerá se houver uma mudança de configuração que remova o endereço do próximo salto ou se um administrador remover a interface do próximo salto sem excluí-la. Se um endereço next-hop for removido da tabela de roteamento porque a interface foi excluída ou a sessão foi limpa intencionalmente, a sessão será encerrada sem ser redirecionada.
Recomendamos que as interfaces em um conjunto de ECMP estejam na mesma zona de segurança. Se um fluxo for redirecionado e o fluxo redirecionado usar uma interface em uma zona de segurança diferente da rota original, a sessão será encerrada.
Para configurar o encaminhamento baseado em fluxo de ECMP em dispositivos de segurança da Juniper Networks, primeiro defina uma política de roteamento de balanceamento de carga incluindo uma ou mais policy-statement declarações de configuração noedit policy-options nível de [] hierarquia, com a ação load-balance per-flow. Em seguida, aplique a política de roteamento às rotas exportadas da tabela de roteamento para a tabela de encaminhamento. Para fazer isso, inclua as forwarding-table instruções de configuração e export no nível deedit routing-options [] hierarquia.
- Implementação de ECMP para firewalls da Junos OS Série SRX e instâncias de Firewall virtual vSRX
- ECMP para tráfego reverso
Implementação de ECMP para firewalls da Junos OS Série SRX e instâncias de Firewall virtual vSRX
Você pode configurar o ECMP para firewalls da Série SRX e instâncias de Firewall virtual vSRX para implementar o balanceamento de carga por fluxo para distribuir o tráfego por vários caminhos entre os dispositivos de roteamento. Rotas de custo igual têm a mesma preferência e valores de métrica. Esses dispositivos examinam o endereço IP de origem, o endereço IP de destino e o protocolo para determinar fluxos de tráfego individuais. O tráfego com o mesmo endereço IP de origem, endereço IP de destino e número de protocolo permitido por uma política de segurança é encaminhado para o mesmo próximo salto. O Junos OS nesses dispositivos usa as informações de fluxo em sua lógica de hash.
Para firewalls da Série SRX do Junos OS e instâncias de Firewall virtual vSRX, um conjunto de ECMP é formado quando a tabela de roteamento contém vários endereços next-hop para o mesmo destino com custo igual. O ECMP permite que várias entradas de next-hop em um conjunto de ECMP sejam instaladas na tabela de encaminhamento. Os pacotes para o mesmo fluxo são encaminhados na mesma interface; a interface não muda quando há adições ou alterações no conjunto de ECMP.
Se houver um conjunto de ECMP para a rota ativa, o Junos OS usa um algoritmo de hash para escolher um dos endereços de próximo salto no conjunto de ECMP a ser instalado na tabela de encaminhamento.
ECMP para tráfego reverso
A partir do Junos OS Release 17.3, se você habilitar o suporte a ECMP para tráfego reverso, o firewall da Série SRX usa um algoritmo de hash para determinar a interface a ser usada para tráfego reverso em um fluxo. Esse processo é semelhante ao roteamento assimétrico, no qual um pacote atravessa de uma origem para um destino em um caminho e segue um caminho diferente quando retorna à origem.
Se você não habilitar esse recurso, o firewall da Série SRX selecionará uma rota no ECMP definida para a interface de entrada para tráfego reverso, que é o comportamento padrão.
Você usa a allow-reverse-ecmp declaração de configuração na [] hierarquia para configurar oedit security flow encaminhamento baseado em fluxo de ECMP para usar um algoritmo de hash na seleção de uma rota no conjunto de ECMP para trânsito de tráfego reverso. Ou seja, se você habilitar essa função, em vez de selecionar uma rota para a interface de entrada, o firewall da Série SRX usará um algoritmo de hash para selecionar uma rota no conjunto ECMP para tráfego reverso.
Como a política baseada em fluxo ECMP é baseada em zona, o suporte à pesquisa reversa de ECMP garante que a interface de saída usada para tráfego reverso esteja na mesma zona que a interface de entrada usada para o tráfego de chegada.
As interfaces em um conjunto de ECMP devem estar na mesma zona de segurança. Se a zona da interface de saída for diferente da zona da interface de entrada, uma sessão poderá ser criada, mas os pacotes serão descartados.
Se você decidir habilitar o ECMP reverso, esteja ciente da seguinte condição e tome medidas para evitá-la: Quando o encaminhamento baseado em fluxo ECMP é usado, o firewall da Série SRX pode fazer com que os dispositivos upstream vejam apenas o tráfego unidirecional de uma sessão. Podem ocorrer problemas para dispositivos upstream que mantêm o estado da sessão, por exemplo, para TCP-proxy e SYN-proxy. O problema é semelhante ao comportamento de roteamento assíncrono.
Exemplo: configurar o encaminhamento com base em fluxo de ECMP
Este exemplo mostra como configurar o encaminhamento baseado em fluxo ECMP.
Requerimentos
Nenhuma configuração especial além da inicialização do dispositivo é necessária antes de configurar esse recurso.
Visão geral
Este exemplo configura três rotas ECMP estáticas em um firewall da Série SRX. Cada rota estática usa um roteador next-hop diferente para chegar ao servidor de destino. As interfaces para os roteadores são atribuídas à zona de segurança não confiável. Este exemplo cria uma política de roteamento de balanceamento de carga chamada load-balancing-policy e aplica a política a todas as rotas exportadas da tabela de roteamento para a tabela de encaminhamento.
Configuração
Configuração rápida da CLI
Para configurar rapidamente este exemplo, copie os comandos a seguir, cole-os em um arquivo de texto, remova quaisquer quebras de linha, altere todos os detalhes necessários para corresponder à sua configuração de rede e, em seguida, copie e cole os comandos na CLI no nível de [edit] hierarquia.
## Interfaces ## set interfaces ge-0/0/2 unit 0 family inet address 192.168.4.1/24 set interfaces ge-0/0/4 unit 0 family inet address 192.168.1.1/24 set interfaces ge-0/0/6 unit 0 family inet address 192.168.2.1/24 set interfaces ge-0/0/7 unit 0 family inet address 192.168.3.1/24 ## Static routes ## set routing-options static route 172.16.1.0/24 next-hop 192.168.1.2 set routing-options static route 172.16.1.0/24 next-hop 192.168.2.2 set routing-options static route 172.16.1.0/24 next-hop 192.168.3.2 ## Security zones, address book entry, and policy ## set security zones security-zone trust interfaces ge-0/0/2 set security zones security-zone untrust interfaces ge-0/0/4 set security zones security-zone untrust interfaces ge-0/0/6 set security zones security-zone untrust interfaces ge-0/0/7 set security address-book global address FTP-servers 172.16.1.0/24 set security policies from-zone trust to-zone untrust policy permit-ftp match source-address any set security policies from-zone trust to-zone untrust policy permit-ftp match destination-address FTP-servers set security policies from-zone trust to-zone untrust policy permit-ftp match application junos-ftp set security policies from-zone trust to-zone untrust policy permit-ftp then permit ## ECMP routing policy ## set policy-options policy-statement load-balancing-policy then load-balance per-flow set routing-options forwarding-table export load-balancing-policy
Tramitação processual
Procedimento passo a passo
O exemplo a seguir requer que você navegue por vários níveis na hierarquia de configuração.
Para configurar o encaminhamento baseado em fluxo de ECMP:
-
Configure interfaces.
[edit interaces] user@host# set ge-0/0/2 unit 0 family inet address 192.168.4.1/24 user@host# set ge-0/0/4 unit 0 family inet address 192.168.1.1/24 user@host# set ge-0/0/6 unit 0 family inet address 192.168.2.1/24 user@host# set ge-0/0/7 unit 0 family inet address 192.168.3.1/24
-
Configure rotas estáticas.
[edit routing-options] user@host# set static route 172.16.1.0/24 next-hop 192.168.1.2 user@host# set static route 172.16.1.0/24 next-hop 192.168.2.2 user@host# set static route 172.16.1.0/24 next-hop 192.168.3.2
-
Crie as
trustzonas euntrustde segurança e inclua as interfaces relacionadas.[edit security] user@host# set zones security-zone trust interfaces ge-0/0/2 user@host# set zones security-zone untrust interfaces ge-0/0/4 user@host# set zones security-zone untrust interfaces ge-0/0/6 user@host# set zones security-zone untrust interfaces ge-0/0/7
-
Configure uma entrada do catálogo de endereços para a sub-rede do servidor.
Essa entrada é usada na política de segurança.
[edit security address-book] user@host# set global address FTP-servers 172.16.1.0/24
-
Configure uma política de segurança.
[edit security policies from-zone trust to-zone untrust] user@host# set policy permit-ftp match source-address any user@host# set policy permit-ftp match destination-address FTP-servers user@host# set policy permit-ftp match application junos-ftp user@host# set policy permit-ftp then permit
-
Crie uma política de roteamento de balanceamento de carga.
[edit policy-options] user@host# set policy-statement load-balancing-policy then load-balance per-flow
-
Aplique a política de roteamento a todas as rotas exportadas da tabela de roteamento para a tabela de encaminhamento.
[edit routing-options] user@host# set forwarding-table export load-balancing-policy
Resultados
No modo de configuração, confirme sua configuração emitindo os show interfacescomandos , show security, show policy-options, e show routing-options . Se a saída não exibir a configuração pretendida, repita as instruções neste exemplo para corrigir a configuração.
[edit]
user@host# show interfaces
ge-0/0/2 {
unit 0 {
family inet {
address 192.168.4.1/24;
}
}
}
ge-0/0/4 {
unit 0 {
family inet {
address 192.168.1.1/24;
}
}
}
ge-0/0/6 {
unit 0 {
family inet {
address 192.168.2.1/24;
}
}
}
ge-0/0/7 {
unit 0 {
family inet {
address 192.168.3.1/24;
}
}
}
user@host# show security
address-book {
global {
address FTP-servers 172.16.1.0/24;
}
}
policies {
from-zone trust to-zone untrust {
policy permit-ftp {
match {
source-address any;
destination-address FTP-servers;
application junos-ftp;
}
then {
permit;
}
}
}
}
zones {
security-zone trust {
interfaces {
ge-0/0/2.0;
}
}
security-zone untrust {
interfaces {
ge-0/0/4.0;
ge-0/0/6.0;
ge-0/0/7.0;
}
}
}
user@host# show policy-options
policy-statement load-balancing-policy {
then {
load-balance per-flow;
}
}
[edit]
user@host# show routing-options
static {
route 172.16.1.0/24 next-hop [ 192.168.1.2 192.168.2.2 192.168.3.2 ];
}
forwarding-table {
export load-balancing-policy;
}
Se você terminar de configurar o dispositivo, entre no commit modo de configuração.
Verificação
Verificando a tabela de encaminhamento
Finalidade
Verifique se as informações de rota para todas as rotas ECMP aparecem na tabela de encaminhamento.
Ação
Do modo operacional, insira o show route forwarding-table destination 172.16.1.0 comando.
user@host> show route forwarding-table destination 172.16.1.0
Routing table: default.inet
Internet:
Destination Type RtRef Next hop Type Index NhRef Netif
172.16.1.0/24 user 0 ulst 262142 2
192.168.1.2 ucst 560 2 ge-0/0/4.0
192.168.2.2 ucst 561 2 ge-0/0/6.0
192.168.3.2 ucst 562 2 ge-0/0/7.0
...
Significado
A saída mostra um tipo de próximo salto de ulst, o que significa que a rota tem vários próximos saltos elegíveis. Os pacotes destinados à rede 172.16.1.0 podem usar qualquer próximo salto na lista.
Tabela de histórico de alterações
A compatibilidade com recursos é determinada pela plataforma e versão utilizada. Use o Explorador de recursos para determinar se um recurso é compatível com sua plataforma.
