Reenvío basado en flujo ECMP
En este tema, se proporciona una breve descripción de varias rutas de igual costo (ECMP) para el reenvío y el tráfico inverso en dispositivos de la serie SRX e instancias vSRX de Junos OS. Para una cobertura completa de la implementación de ECMP en dispositivos de la serie SRX y en instancias vSRX de Junos OS.
Descripción del reenvío basado en el flujo de ECMP
La multiruta de igual costo (ECMP) es una estrategia de enrutamiento de red que permite que el tráfico de la misma sesión o flujo (es decir, tráfico con el mismo origen y destino) se transmita a través de varias rutas de igual costo. Es un mecanismo que le permite equilibrar la carga del tráfico y aumentar el ancho de banda mediante el uso completo del ancho de banda no utilizado en los enlaces al mismo destino.
Al reenviar un paquete, la tecnología de enrutamiento debe decidir qué ruta de salto siguiente usar. Al realizar una determinación, el dispositivo tiene en cuenta los campos de encabezado del paquete que identifican un flujo. Cuando se utiliza ECMP, las rutas del salto siguiente de igual costo se identifican según cálculos métricos de enrutamiento y algoritmos hash. Es decir, las rutas de igual costo tienen los mismos valores de preferencia y métrica, y el mismo costo para la red. El proceso ECMP identifica un conjunto de enrutadores, cada uno de los cuales es un costo legítimo igual al siguiente salto hacia el destino. Las rutas que se identifican se denominan conjunto ECMP. Dado que solo aborda el destino del siguiente salto, el ECMP se puede usar con la mayoría de los protocolos de enrutamiento.
Un conjunto de múltiples rutas de igual costo (ECMP) se forma cuando la tabla de enrutamiento contiene varias direcciones de salto siguiente para el mismo destino con igual costo. (Las rutas de igual costo tienen los mismos valores de preferencia y métricas.) Si hay un ECMP establecido para la ruta activa, Junos OS usa un algoritmo hash para elegir una de las direcciones del salto siguiente en el conjunto de ECMP para instalar en la tabla de reenvío.
Puede configurar Junos OS para que se instalen varias entradas de salto siguiente en un conjunto de ECMP en la tabla de reenvío. En los dispositivos de Juniper Networks, se puede realizar un equilibrio de carga por flujo para propagar el tráfico entre varias rutas entre dispositivos de enrutamiento. En los dispositivos de seguridad de Juniper Networks, se examinan las direcciones IP de origen y destino y los protocolos para determinar los flujos de tráfico individuales. Los paquetes para el mismo flujo se reenvían en la misma interfaz; la interfaz no cambia cuando hay adiciones o cambios en el conjunto de ECMP. Esto es importante para funciones como TDR de origen, donde la traducción se realiza solo durante la primera ruta de establecimiento de sesión para túneles IDP, ALG y VPN basados en ruta. Si un paquete llega a una interfaz determinada en un conjunto de ECMP, el dispositivo de seguridad garantiza que el tráfico inverso se reenvíe a través de la misma interfaz.
El reenvío basado en flujos ECMP en dispositivos de seguridad se aplica a flujos de tráfico de unidifusión IPv4 e IPv6. A partir de Junos OS versión 15.1X49-D60, el reenvío basado en flujo ECMP del tráfico de unidifusión IPv6 se admite en todos los dispositivos de la serie SRX e instancias vSRX. No se admite el flujo de multidifusión.
En los dispositivos de seguridad de Juniper Networks, la cantidad máxima de direcciones de salto siguiente en un conjunto de ECMP que se puede instalar en la tabla de reenvío es de 16. Si hay más de 16 direcciones de salto siguiente en un conjunto de ECMP, solo se usarán las 16 primeras direcciones.
En una implementación de clúster de chasis , una interfaz local es una interfaz que se encuentra en el mismo nodo que la interfaz en la que llega un paquete, y una interfaz remota es una interfaz que se encuentra en el otro nodo del clúster de chasis. Si una ruta ECMP tiene interfaces locales y remotas en un clúster de chasis, la interfaz local se favorece para el siguiente salto.
Si una dirección del siguiente salto ya no forma parte del conjunto de ECMP o si se elimina de la tabla de enrutamiento debido a un cambio de ruta, se reenruta un flujo que use el salto siguiente y la sesión no se ve afectada. El reenrutamiento del flujo también se produce si hay un cambio de configuración que elimina la dirección del siguiente salto o si un administrador elimina la interfaz del siguiente salto sin eliminarla. Si se elimina una dirección del siguiente salto de la tabla de enrutamiento porque se elimina la interfaz o porque la sesión se borra intencionalmente, la sesión se mata sin que se reenruta.
Se recomienda que las interfaces de un conjunto de ECMP estén en la misma zona de seguridad. Si se reenruta un flujo y el flujo reenrutado usa una interfaz en una zona de seguridad diferente a la ruta original, la sesión se mata.
Para configurar el reenvío basado en flujos ECMP en dispositivos de seguridad de Juniper Networks, primero defina una política de enrutamiento de equilibrio de carga incluyendo una o más policy-statement
instrucciones de configuración en el nivel de jerarquía,edit policy-options
con la acción load-balance per-packet
. A continuación, aplique la política de enrutamiento a las rutas exportadas de la tabla de enrutamiento a la tabla de reenvío. Para ello, incluya las forwarding-table
instrucciones de configuración y export
en el nivel de jerarquía [edit routing-options
].
- Implementación de ECMP para dispositivos de la serie SRX junos OS e instancias vSRX
- ECMP para tráfico inverso
Implementación de ECMP para dispositivos de la serie SRX junos OS e instancias vSRX
Puede configurar ECMP para dispositivos de la serie SRX e instancias vSRX para implementar un equilibrio de carga por flujo para propagar el tráfico en varias rutas entre dispositivos de enrutamiento. Las rutas de igual costo tienen los mismos valores de preferencia y métrica. Estos dispositivos examinan la dirección IP de origen, la dirección IP de destino y el protocolo para determinar flujos de tráfico individuales. El tráfico con la misma dirección IP de origen, dirección IP de destino y número de protocolo que permite una política de seguridad se reenvía al mismo salto siguiente. Junos OS en estos dispositivos usa la información de flujo en su lógica de hash.
Para los dispositivos de la serie SRX y las instancias vSRX de Junos OS, se forma un conjunto de ECMP cuando la tabla de enrutamiento contiene varias direcciones de salto siguiente para el mismo destino con el mismo costo. El ECMP permite que varias entradas del salto siguiente en un conjunto ECMP se instalen en la tabla de reenvío. Los paquetes para el mismo flujo se reenvían en la misma interfaz; la interfaz no cambia cuando hay adiciones o cambios en el conjunto de ECMP.
Si hay un ECMP establecido para la ruta activa, Junos OS usa un algoritmo hash para elegir una de las direcciones del salto siguiente en el conjunto de ECMP para instalar en la tabla de reenvío.
El reenvío basado en flujo ECMP en dispositivos de la serie SRX e instancias vSRX se aplica a flujos de tráfico de unidifusión IPv4 e IPv6. A partir de Junos OS versión 15.1X49-D60 y Junos OS versión 17.3R1, el reenvío ecmp basado en flujo del tráfico de unidifusión IPv6 se admite en todos los dispositivos de la serie SRX e instancias vSRX. No se admite el flujo de multidifusión.
ECMP para tráfico inverso
A partir de Junos OS versión 17.3, si habilita la compatibilidad con ECMP para tráfico inverso, el dispositivo serie SRX usa un algoritmo hash para determinar la interfaz que se utilizará para el tráfico inverso en un flujo. Este proceso es similar al enrutamiento asimétrico en el que un paquete atraviesa desde un origen hasta un destino en una ruta y toma una ruta diferente cuando regresa al origen.
Si no habilita esta función, el dispositivo serie SRX selecciona una ruta en el conjunto de ECMP a la interfaz entrante para el tráfico inverso, que es el comportamiento predeterminado.
Utilice la allow-reverse-ecmp
instrucción de configuración en la jerarquía [edit security flow
] para configurar el reenvío basado en flujo ECMP para usar un algoritmo hash al seleccionar una ruta en el conjunto de ECMP para el tránsito de tráfico inverso. Es decir, si habilita esta función, en lugar de seleccionar una ruta a la interfaz de entrada, el dispositivo serie SRX usa un algoritmo hash para seleccionar una ruta en el conjunto de ECMP para el tráfico inverso.
Dado que la política basada en flujo del ECMP está basada en la zona, la compatibilidad con búsqueda inversa de ECMP garantiza que la interfaz de salida utilizada para el tráfico inverso esté en la misma zona que la interfaz de entrada utilizada para el tráfico de llegada.
Las interfaces de un conjunto DE ECMP deben estar en la misma zona de seguridad. Si la zona de interfaz de salida es diferente de la zona de interfaz de entrada, se puede crear una sesión, pero se perderán los paquetes.
Si decide habilitar el ECMP inverso, tenga en cuenta la siguiente condición y tome medidas para evitarla: Cuando se utiliza el reenvío basado en el flujo de ECMP, el dispositivo de la serie SRX podría hacer que los dispositivos ascendentes solo vean el tráfico un solo sentido de una sesión. Pueden surgir problemas para dispositivos ascendentes que mantienen el estado de sesión, por ejemplo, para TCP-proxy y SYN-proxy. El problema es similar al comportamiento del enrutamiento asíncrono.
Ejemplo: Configuración del reenvío basado en flujo de ECMP
En este ejemplo, se muestra cómo configurar el reenvío basado en flujo ecmp.
Requisitos
No se requiere ninguna configuración especial más allá de la inicialización del dispositivo antes de configurar esta función.
Visión general
En este ejemplo, se configuran tres rutas ECMP estáticas en un dispositivo serie SRX. Cada ruta estática usa un enrutador de próximo salto diferente para llegar al servidor de destino. Las interfaces hacia los enrutadores se asignan a la zona de seguridad de no confianza. En este ejemplo, se crea una política de enrutamiento de equilibrio de carga denominada load-balancing-policy
y se aplica la política a todas las rutas exportadas desde la tabla de enrutamiento a la tabla de reenvío.
Configuración
Configuración rápida de CLI
Para configurar rápidamente este ejemplo, copie los siguientes comandos, péguelos en un archivo de texto, elimine los saltos de línea, cambie los detalles necesarios para que coincidan con su configuración de red y, luego, copie y pegue los comandos en la CLI en el [edit]
nivel de jerarquía.
## 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
Procedimiento
Procedimiento paso a paso
El siguiente ejemplo requiere que navegue por varios niveles en la jerarquía de configuración.
Para configurar el reenvío basado en flujos 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 rutas 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
Cree las
trust
zonas yuntrust
de seguridad, e incluya las 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 una entrada de libreta de direcciones para la subred del servidor.
Esta entrada se utiliza en la política de seguridad.
[edit security address-book] user@host# set global address FTP-servers 172.16.1.0/24
Configure una política de seguridad.
[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
Cree una política de enrutamiento de equilibrio de carga.
[edit policy-options] user@host# set policy-statement load-balancing-policy then load-balance per-packet
Aplique la política de enrutamiento a todas las rutas exportadas de la tabla de enrutamiento a la tabla de reenvío.
[edit routing-options] user@host# set forwarding-table export load-balancing-policy
Resultados
Desde el modo de configuración, confirme su configuración mediante la emisión de los show interfaces
comandos , show security
, show policy-options
y show routing-options
. Si el resultado no muestra la configuración deseada, repita las instrucciones en este ejemplo para corregir la configuración.
[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; }
Si ha terminado de configurar el dispositivo, ingrese commit
desde el modo de configuración.
Verificación
Verificar la tabla de reenvío
Propósito
Compruebe que la información de ruta de todas las rutas ECMP aparece en la tabla de reenvío.
Acción
Desde el modo operativo, ingrese el 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
El resultado muestra un tipo de salto siguiente de ulst
, lo que significa que la ruta tiene varios próximos saltos elegibles. Los paquetes destinados a la red 172.16.1.0 pueden usar cualquier salto siguiente de la lista.