Encaminhamento baseado em fluxo de ECMP
Este tópico fornece uma breve visão geral do multicaminho de igual custo (ECMP) para encaminhamento e tráfego lateral reverso em firewalls da Série SRX do Junos OS e instâncias de firewall virtual vSRX. Para uma cobertura abrangente da implementação do ECMP em firewalls da Série SRX do Junos OS e instâncias de firewall virtual vSRX.
Entendendo o encaminhamento baseado em fluxo de ECMP
Multicaminho de custo igual (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 fonte 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 próximo usar. Ao fazer uma determinação, o dispositivo leva em conta os campos de cabeçalho de pacotes que identificam um fluxo. Quando o ECMP é usado, os caminhos de próximo salto de igual custo são identificados com base em cálculos métricas de roteamento e algoritmos de hash. Ou seja, rotas de igual custo 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 referidas como um conjunto de ECMP. Como trata apenas do destino de próximo salto, o ECMP pode ser usado com a maioria dos protocolos de roteamento.
Um conjunto multicaminho de igual custo (ECMP) é formado quando a tabela de roteamento contém vários endereços de próximo salto para o mesmo destino com igual custo. (Rotas de igual custo têm a mesma preferência e valores métricas.) 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 próximo salto 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, os endereços e protocolos IP de origem e destino são analisados 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, onde a tradução é realizada apenas durante o primeiro caminho de estabelecimento de sessão para túneis IDP, ALG e VPN baseados em rota. 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 firewalls da Série SRX e instâncias de firewall virtual vSRX. O fluxo multicast não é suportado.
Em dispositivos de segurança da Juniper Networks, o número máximo de endereços de próximo salto em um conjunto de ECMP que pode ser instalado na tabela de encaminhamento é de 16. Se houver mais de 16 endereços de próximo salto 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ó da 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, então a interface local será favorecida para o próximo salto.
Se um endereço de próximo salto não fizer mais parte do conjunto de ECMP ou se for removido da tabela de roteamento por causa de uma mudança de rota, um fluxo que usa o próximo salto será redirecionado e a sessão não será afetada. O redirecionamento do fluxo também ocorre se houver uma mudança de configuração que tire o endereço de próximo salto ou se um administrador derrubar a interface de próximo salto sem deletá-lo. Se um endereço de próximo salto for removido da tabela de roteamento porque a interface é excluída ou a sessão for liberada intencionalmente, a sessão será eliminada 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á morta.
Para configurar o encaminhamento baseado em fluxo ECMP em dispositivos de segurança da Juniper Networks, defina primeiro 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] de hierarquia, com a açãoload-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 declarações e export as forwarding-table declarações de configuração no nível [edit routing-options] de hierarquia.
- Implementação de ECMP para firewalls da Série SRX do Junos OS e instâncias de firewall virtual vSRX
- ECMP para tráfego reverso
Implementação de ECMP para firewalls da Série SRX do Junos OS 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 espalhar o tráfego por vários caminhos entre dispositivos de roteamento. Rotas de igual custo 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 salto seguinte. O Junos OS nesses dispositivos usa as informações de fluxo em sua lógica de hashing.
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 de próximo salto para o mesmo destino com igual custo. O ECMP permite que várias entradas de próximo salto 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 ECMP para instalar na tabela de encaminhamento.
O encaminhamento baseado em fluxo de ECMP em firewalls da Série SRX e instâncias de firewall virtual vSRX se aplica aos fluxos de tráfego unicast IPv4 e IPv6. A partir do Junos OS Release 15.1X49-D60 e junos OS Release 17.3R1, 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.
ECMP para tráfego reverso
A partir do Junos OS Release 17.3, se você habilitar o suporte de 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 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 firewall 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 [edit security flow] hierarquia 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 firewall 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 de ECMP é baseada em zona, 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 o tráfego que chega.
As 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 firewall da Série SRX pode fazer com que os dispositivos upstream vejam apenas tráfego de uma via de uma sessão. Problemas podem surgir para dispositivos upstream que mantêm o estado de sessão, por exemplo, para proxy TCP e SYN-proxy. O problema é semelhante ao comportamento de roteamento assíncronos.
Exemplo: configuração do 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 firewall da Série SRX. Cada rota estática usa um roteador de próximo salto 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 nomeada 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 este exemplo rapidamente, copie os seguintes comandos, cole-os em um arquivo de texto, remova qualquer quebra de linha, altere os detalhes necessários para combinar com a configuração da sua rede e, em seguida, copie e cole os comandos no 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
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
trustzonas de segurança euntrustinclua 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 na lista 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
Aplicar 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
A partir do modo de configuração, confirme sua configuração emitindo os show interfacescomandos show securityshow policy-optionse show routing-options os 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-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
Propósito
Verifique se as informações de rota para todas as rotas de ECMP aparecem na tabela de encaminhamento.
Ação
A partir 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 tipo de ulstpróximo salto, 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 da lista.
Tabela de histórico de mudanças
O suporte de recursos é determinado pela plataforma e versão que você está usando. Use o Feature Explorer para determinar se um recurso é suportado em sua plataforma.
