Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Uso de hash resiliente para minimizar la reasignación de flujo

En los despliegues entre puntos de conexión de red, es necesario conservar las conexiones establecidas y las rutas asociadas de capa 2 y capa 3. Si hay algún cambio en la red, como un fallo de un dispositivo de red o un servidor, los paquetes toman una nueva ruta.

El hashing resiliente reduce el impacto del cambio de red. A cada ECMP con hash resiliente se le asigna una región de 256 entradas en la tabla de equilibrio de carga (también conocida como tabla de macroflujo). Cada entrada de la tabla almacena el ID de vínculo de miembro asignado a ese macroflujo.

El hash resiliente funciona como se describe a continuación:

  • Aplique hash a los paquetes entrantes a una de estas entradas o buckets de macroflujo.

  • A continuación, vincule los paquetes a las rutas del grupo ECMP.

Si usamos una "cesta" para representar cada enlace/ruta de miembro, las operaciones de hash resilientes se pueden modelar como poner cubos (flujos de macro) en una de las canastas.

Si tenemos N buckets y rutas P para el grupo ECMP, use la siguiente secuencia:

  1. El mapeo inicial del bucket se genera mediante un método round-robin. Por lo tanto, todos los buckets se distribuyen casi por igual (N/P) entre los miembros del grupo ECMP. Más tarde, los buckets se mueven en función de los eventos de adición o eliminación de rutas.

    Si N=64 cubos y P=4 rutas, distribuye los 64 cubos de forma indirecta. Como tienes 4 rutas, hay 4 pilas. Cada pila corresponde a una ruta. Cada pila tiene el mismo número de cubos, N/P=16.

    Last_processed_path= 0 (consulte el paso 5 del algoritmo).

  2. Si hay una falla o eliminación de una ruta, de repente se quitan todos los buckets de la ruta/pila fallida y se introducen en las rutas/pilas restantes de forma circular.

    Si elimina la ruta 3 (pila 3 en la imagen de arriba), debe mover todos los cubos de la pila 3 (naranja en la figura siguiente) a las pilas restantes.

  3. Si se agrega una ruta, de repente se eliminan los buckets N/(P+1) de las rutas existentes de forma circular round-robin y se insertan en la ruta/pila recién agregada.

    Si agrega una nueva ruta, debe mover N/P+1=64/4=16 buckets de las pilas existentes (pilas 0, 1, 2). Todos los cubos naranjas están ahora de vuelta en la pila 3, las pilas azules no se mueven y están intactas.

    Last_processed_path= 0

  4. La dirección circular del round robin para los pasos 2 y 3 es opuesta. Es importante determinar la primera pila a partir de la cual comienza el round-robin circular. Mantenga un puntero last_processed_path de índice que proporcione el índice de pila de inicio para el paso 2 y antes de la pila de inicio para el paso 3.

  5. 5. Para establecer last_processed_path, haga lo siguiente:

    • Cuando inserta buckets como en el paso 2, last_processed_path es la siguiente pila de la última pila donde empujó el último bucket.

    • Cuando se quitan los buckets como en el paso 3, last_processed_path es la última pila de donde se extrajo el bucket.

Limitaciones y advertencias para el hashing resiliente

  • El hash resistente solo se admite en el grupo ECMP basado en rutas BGP de igual costo. Cuando configura otros protocolos o rutas estáticas que tienen mayor prioridad que las rutas BGP, no se admite el hash resistente.

  • El hash resistente no se admite en el LAG de velocidad mixta.

  • El hash resistente ECMP de 128 vías no es compatible con el diseño actual. Solo se admite el hash resistente ECMP de 64 vías.

  • La Ethernet agregada de velocidad mixta (AE) y la AE de equilibrio de carga adaptativo (ALB) no son compatibles con el diseño de hash resiliente actual.

Configuración de hash resistentes para ECMP

  1. Habilite el hash resistente para rutas ECMP seleccionadas. Cree una política de enrutamiento independiente para hacer coincidir las rutas entrantes con uno o más prefijos de destino. Consulte Configuración de la acción predeterminada en Directivas de enrutamiento.
  2. Aplique la política en los niveles requeridos de la jerarquía de configuración del BGP: global, de grupo o del mismo nivel:
    Nota: Una instrucción de importación o exportación de nivel par anula una instrucción de importación o exportación de grupo. Una instrucción de importación o exportación de nivel de grupo invalida una instrucción de importación o exportación de BGP global. Un punto clave es que en una configuración como la que se muestra arriba, solo se aplica la política más explícita. Una directiva de nivel de vecino es más explícita que una directiva de nivel de grupo y una directiva de nivel de grupo que una directiva global. (Aunque se aplica la misma directiva en cada nivel en el ejemplo anterior con fines ilustrativos, el resultado no se ve afectado).

    Si necesita que un vecino realice la función de las tres directivas, realice una de las siguientes acciones:

    • Puede escribir y aplicar una nueva política a nivel de vecino que abarque las funciones de las otras tres.

    • Puede aplicar las tres políticas existentes, como una cadena, a este vecino.

  3. [Opcional] Seleccione los campos de paquete utilizados en el cálculo de la clave hash. Los siguientes ejemplos son de PTX10001-36MR 22.2R1.12-Junos OS Evolved:

    Utilice los siguientes comandos para seleccionar campos de paquete:

    1. user@router# set forwarding-options enhanced-hash-key family family

      Aquí, la familia puede tomar inet, inet6mpls, , o multiservice valores.

    2. user@router# set forwarding-options enhanced-hash-key hash-seed

    3. user@router# set forwarding-options enhanced-hash-key resilient-hash-seed

    Nota:

    De forma predeterminada, la mayoría de los campos están habilitados para el equilibrio de carga. Si configura algo en la familia de claves hash mejoradas de opciones de reenvío, afectará tanto a la clave hash resistente como a la generación regular de claves de equilibrio de carga LAG y ECMP.

Configuración de hash resistentes para interfaces Ethernet agregadas

Utilice el siguiente comando para configurar:
user@router# set interface ae1 aggregated-ehter-options resilient-hash