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:
-
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).
-
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.
-
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
-
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. 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
Configuración de hash resistentes para interfaces Ethernet agregadas
user@router# set interface ae1 aggregated-ehter-options resilient-hash