Encaminhamento baseado em fluxo de ECMP
Este tópico fornece uma breve visão geral do ECMP (Equal-Cost Multipath) para encaminhamento e tráfego lateral reverso em dispositivos da Série Junos OS SRX e instâncias vSRX. Para uma cobertura abrangente da implementação do ECMP em dispositivos da Série Junos OS SRX e instâncias vSRX.
Entender o encaminhamento baseado em fluxo ECMP
O ECMP (Equal-Cost Multipath, multicaminho de custo igual) é 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 carregar o tráfego de equilíbrio 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 seguinte usar. Ao fazer uma determinação, o dispositivo leva em conta os campos de cabeçalho de pacote que identificam um fluxo. Quando o ECMP é usado, os caminhos de next-hop de igual custo são identificados com base em cálculos 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 de ECMP identifica um conjunto de roteadores, cada um dos quais é um custo igual legítimo próximo salto em direção ao destino. As rotas identificadas são conhecidas como um conjunto de ECMP. Como trata apenas do próximo destino hop, o ECMP pode ser usado com a maioria dos protocolos de roteamento.
Um conjunto multicaminho 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 os mesmos valores de preferência e 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 ECMP para instalar 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 espalhar o tráfego por vários caminhos entre dispositivos de roteamento. Nos dispositivos de segurança da Juniper Networks, endereços IP 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 ECMP. Isso é importante para recursos como o NAT de origem, onde a tradução é realizada apenas durante o primeiro caminho de estabelecimento de sessão para túneis IDP, ALG e VPN baseados em rotas. Se um pacote chegar 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 aos fluxos de tráfego unicast IPv4 e IPv6. A partir do Junos OS Release 15.1X49-D60, o encaminhamento baseado em fluxo ECMP do tráfego unicast IPv6 é suportado em todos os dispositivos da Série SRX e instâncias vSRX. O fluxo multicast não é suportado.
Nos dispositivos de segurança da Juniper Networks, o número máximo de endereços next-hop em um conjunto de ECMP que pode ser instalado na tabela de encaminhamento é de 16. Se houver mais de 16 endereços next-hop em um conjunto de ECMP, apenas 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 em que um pacote chega, e uma interface remota é uma interface que está no outro nó de cluster do 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 ECMP ou se for removido da tabela de roteamento por causa de uma mudança de rota, um fluxo que usa o próximo hop é redirecionado e a sessão não é afetada. O redirecionamento do fluxo também ocorre se houver uma mudança de configuração que tire o endereço do next-hop ou se um administrador derrubar a interface de next-hop sem deletá-la. Se um endereço de next-hop for removido da tabela de roteamento porque a interface é excluída ou a sessão for liberada intencionalmente, a sessão será apagada sem ser reencaminhada.
Recomendamos que 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á morta.
Para configurar o encaminhamento baseado em fluxo 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 no nível [edit policy-options
] hierarquia, com a ação load-balance per-packet
. 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
declarações e export
as declarações de configuração no nível [edit routing-options
] de hierarquia.
- Implementação de ECMP para dispositivos da Série Junos OS SRX e instâncias vSRX
- ECMP para tráfego reverso
Implementação de ECMP para dispositivos da Série Junos OS SRX e instâncias vSRX
Você pode configurar o ECMP para dispositivos da Série SRX e instâncias vSRX para implementar o balanceamento de carga por fluxo para espalhar o tráfego por vários caminhos entre dispositivos de roteamento. Rotas de custo igual têm os mesmos valores de preferência e 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 hop seguinte. O Junos OS nesses dispositivos usa as informações de fluxo em sua lógica de hashing.
Para dispositivos da série Junos OS SRX e instâncias vSRX, um conjunto de ECMP é formado quando a tabela de roteamento contém vários endereços next-hop para o mesmo destino com igual custo. O ECMP permite que várias entradas de next-hop em um conjunto 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 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 ECMP para instalar na tabela de encaminhamento.
O encaminhamento baseado em fluxo ECMP em dispositivos da Série SRX e instâncias vSRX se aplica aos fluxos de tráfego unicast IPv4 e IPv6. A partir do Junos OS Release 15.1X49-D60 e do Junos OS Release 17.3R1, o encaminhamento baseado em fluxo ECMP do tráfego unicast IPv6 é suportado em todos os dispositivos da Série SRX e instâncias vSRX. O fluxo multicast não é suportado.
ECMP para tráfego reverso
A partir do Junos OS Release 17.3, se você habilitar o suporte ao ECMP para tráfego reverso, o dispositivo da Série SRX usa um algoritmo de hash para determinar a interface a usar para tráfego reverso em um fluxo. Esse processo é semelhante ao roteamento assimétrico em que um pacote atravessa de uma fonte para um destino em um único caminho e toma um caminho diferente quando retorna à fonte.
Se você não habilitar esse recurso, o dispositivo da Série SRX seleciona uma rota no conjunto ECMP 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 [edit security flow
] para configurar o encaminhamento baseado em fluxo ECMP para usar um algoritmo de hash na seleção de uma rota no conjunto ECMP para tráfego reverso. Ou seja, se você habilitar essa função, em vez de selecionar uma rota para a interface de entrada, o dispositivo da Série SRX usa 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 zonas, o suporte de busca reversa ECMP garante que a interface de saída usada para tráfego reverso esteja na mesma zona que a interface de entrada usada para a chegada do tráfego.
Interfaces em um conjunto de ECMP devem estar na mesma zona de segurança. Se a zona de interface de saída for diferente da zona de interface de entrada, uma sessão pode 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 de ECMP for usado, o dispositivo da Série SRX pode fazer com que os dispositivos upstream vejam apenas tráfego de ida e volta de uma sessão. Problemas podem ocorrer para dispositivos upstream que mantêm o estado de sessão, por exemplo, para TCP-proxy e SYN-proxy. O problema é semelhante ao comportamento de roteamento assíncrono.
Exemplo: configurar o encaminhamento baseado em fluxo ECMP
Este exemplo mostra como configurar o encaminhamento baseado em fluxo ECMP.
Requisitos
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 dispositivo da Série SRX. Cada rota estática usa um roteador next-hop diferente para chegar ao servidor de destino. As interfaces em direção aos 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 indicada load-balancing-policy
e aplica a política a todas as rotas exportadas da tabela de roteamento até a tabela de encaminhamento.
Configuração
Configuração rápida da CLI
Para configurar rapidamente este exemplo, copie os seguintes comandos, cole-os em um arquivo de texto, remova quaisquer quebras de linha, altere os detalhes necessários para combinar com a configuração de sua 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-packet set routing-options forwarding-table export load-balancing-policy
Procedimento
Procedimento passo a passo
O exemplo a seguir exige que você navegue por vários níveis na hierarquia de configuração.
Para configurar o encaminhamento baseado em fluxo 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
trust
zonas de segurança euntrust
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 de livro de endereços para a sub-rede do servidor.
Esta 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-packet
Aplique a política de roteamento a todas as rotas exportadas da tabela de roteamento até a tabela de encaminhamento.
[edit routing-options] user@host# set forwarding-table export load-balancing-policy
Resultados
A partir do modo de configuração, confirme sua configuração emitindo os show interfaces
, show security
e show policy-options
show routing-options
comandos. 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-packet; } }
[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
Propósito
Verifique se as informações de rota de todas as rotas ECMP aparecem na tabela de encaminhamento.
Ação
Do modo operacional, entre no 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 próximo tipo de ulst
hop, o que significa que a rota tem vários próximos hops elegíveis. Os pacotes destinados à rede 172.16.1.0 podem usar qualquer próximo salto da lista.