Descripción general de la detección de reenvío bidireccional (BFD)

En esta página, se describe Detección de reenvío bidireccional (BFD) para Cloud Router.

BFD (RFC 5880, RFC 5881) es un protocolo de detección de interrupciones de rutas de reenvío que es compatible con la mayoría de los routers comerciales. Con BFD para Cloud Router, puedes habilitar la funcionalidad de BFD dentro de una sesión de BGP a fin de detectar interrupciones en las rutas de reenvío, como los eventos de desvinculación. Esta capacidad hace que las redes híbridas sean más resilientes.

Cuando intercambias tráfico con Google Cloud desde tu red local mediante la interconexión dedicada o la interconexión de socio, puedes habilitar BFD para detectar rápidamente fallas de vínculos y conmutar por error el tráfico a un vínculo alternativo que tenga un copia de seguridad de la sesión de BGP. De esta manera, BFD proporciona una ruta de conectividad de red de alta disponibilidad que puede responder con rapidez a los errores de vínculos.

Beneficios de BFD

BFD configurado con la configuración predeterminada detecta errores en 5 segundos, en comparación con 60 segundos de la detección de fallas basadas en BGP. Con BFD implementado en Cloud Router, el tiempo de detección de extremo a extremo puede ser de tan solo 5 segundos.

BFD es un protocolo hello de longitud fija en el que cada extremo de una conexión transmite paquetes de forma periódica a través de una ruta de reenvío.

BFD es un protocolo de detección basado en UDP que proporciona un método de baja sobrecarga para detectar fallas en la ruta de reenvío entre dos routers adyacentes. Esto incluye la detección de fallas en interfaces, vínculos de datos y planos de reenvío. Puedes habilitar BFD en el nivel de protocolo de enrutamiento.

Limitaciones de BFD

Solo puedes habilitar BFD en las sesiones de BGP que configures para los adjuntos de VLAN en la interconexión dedicada o en la interconexión de socio. BFD no es compatible con las sesiones de BGP configuradas para túneles VPN con alta disponibilidad o dispositivos Router, que son parte del Network Connectivity Center.

Establecimiento de sesiones de BFD

Para establecer una sesión de BFD, configura BFD en ambos pares de BGP: un Cloud Router y tu router local que ejecuta BFD. Después de habilitar BFD para el protocolo de enrutamiento de BGP en el router, se crea una sesión de BFD, se negocian los temporizadores de BFD y los pares de BFD comienzan a enviarse paquetes de control de BFD entre sí en el intervalo negociado.

Mediante el envío de avisos de detección de fallas rápidos a BGP en el router local para iniciar el proceso de recalculado de la tabla de enrutamiento, BFD contribuye de forma considerable a reducir el tiempo general de convergencia de la red.

En el siguiente diagrama, se muestra una red simple con dos routers que ejecutan BGP y BFD. Estos números representan el proceso de establecimiento de la sesión de BFD:

  1. Se configura el vecino de BGP.
  2. BGP envía una solicitud al proceso local de BFD para iniciar una sesión de vecino de BFD con el router del par/vecino de BGP.
  3. Se establece la sesión de vecino de BFD con el router vecino de BGP.
Establecimiento de sesiones de BFD.
Establecimiento de sesiones de BFD (haz clic para ampliar)

BFD durante un evento de falla

En la siguiente figura, se muestra lo que sucede cuando se produce una falla en la red.

En el modo de solo control de BFD, Cloud Router y tu router local se envían paquetes de control de BFD de forma periódica entre sí. Si el otro router no recibe la cantidad de paquetes de control consecutivos configurada en la configuración de bfd multiplier en Cloud Router, la sesión se declara inactiva. Luego, sucede lo siguiente:

  1. Se produce una falla en el vínculo entre Google Cloud y el router local.
  2. La sesión de vecino de BFD con el router vecino de BGP se elimina.
  3. BFD notifica al proceso de BGP local que ya no se puede acceder al vecino de BFD.
  4. El proceso de BGP local elimina la relación de vecino de BGP.

Si hay una ruta alternativa disponible, los routers comenzarán a converger en ella de inmediato.

BFD durante un evento de falla.
BFD durante un evento de falla (haz clic para ampliar)
.

Estabilización de BFD

Cloud Router implementa la estabilización de BFD internamente para suprimir el efecto negativo de las oscilaciones de las sesiones de BFD frecuentes en BGP. La estabilización de BFD usa parámetros predeterminados que el usuario no puede modificar.

La estabilización de BFD usa un sistema de penalización. El valor de la penalización comienza en 0 y aumenta a 1 para la primera oscilación. Después de la primera oscilación, la penalización se duplica cada vez que ocurre otra oscilación de BFD. Cuando la penalización excede el valor límite de 4, BFD suprime las notificaciones para BGP. La penalización se reduce a la mitad cada 10 minutos si no se produce ninguna oscilación durante este período.

BFD vuelve a habilitar las notificaciones para BGP después de que la penalización cae por debajo del umbral de reutilización de 4.

El intervalo de supresión máximo de las notificaciones de BFD para BGP es de 1 hora. Esto garantiza que las notificaciones de inactividad de la sesión de BFD no desaparezcan para siempre.

Modo asíncrono de BFD

Cloud Router admite un modo de operación asíncrono, en el que los sistemas involucrados se envían paquetes de control de BFD de forma periódica entre sí. Si el otro sistema no recibe la cantidad configurada de esos paquetes consecutivos, la sesión se declara como inactiva.

No se admite el modo de demanda de la operación de BFD. Para el modo de paquete, BFD admite el modo de solo control; no se admite el modo de eco.

En el modo de operación asíncrono con el modo de paquete de solo control, BFD se ejecuta en el plano de control y puede agregar una leve sobrecarga y tiempo de procesamiento de CPU.

De forma predeterminada, BFD está inhabilitado en las sesiones de BGP de Cloud Router. Para usar BFD, debes habilitarlo.

En el caso de falla que se muestra a continuación, los routers tienen la siguiente configuración:

  • El intervalo recibir de BFD del Cloud Router se establece en 1,000 milisegundos (ms) multiplicado por un multiplicador de BFD de 5, para una configuración de temporizador de detección de 5,000 ms.
  • El intervalo transmit de BFD del router de par se establece en 1,000 ms multiplicado por un multiplicador de BFD de 5, para una configuración de temporizador de detección de 5,000 ms.

El Cloud Router negocia con el router del par y espera recibir paquetes de control cada 1,000 ms desde el router. Si pasan 5,000 ms sin que el Cloud Router reciba un paquete de control, el temporizador de detección vence y declara que la sesión de BFD está inactiva.

BFD sin paquetes de echo.
BFD sin paquetes de echo (haz clic para ampliar)

Reinicio ordenado y BFD

Para minimizar el impacto en el tráfico durante los eventos de mantenimiento del software de Cloud Router, te recomendamos que habilites el reinicio ordenado de BGP.

Si el reinicio ordenado de BGP y el BFD están habilitados, cuando Cloud Router se reinicie, intentará desactivar BFD mediante el envío de un mensaje AdminDown al router local. Cuando esto sucede, la sesión de BGP permanece activa en el lado local y el router local entra en el modo de reinicio ordenado. Mientras el router local está en modo de reinicio ordenado, Cloud Router puede reiniciarse sin afectar el tráfico del plano de datos.

Del mismo modo, si el router local envía un mensaje AdminDown antes de que se reinicie el plano de control, Cloud Router ingresa al modo de reinicio ordenado. Mientras Cloud Router está en el modo de reinicio ordenado, el router local puede reiniciarse sin afectar el tráfico del plano de datos.

Cloud Router establece el bit independiente del plano de control en 0 cuando establece BFD con su router de intercambio de tráfico para indicar que su implementación de BFD depende del plano de control. Si se produce un error de interfaz, es posible que el router del par no pueda distinguir entre una falla de BFD que se debe a una falla del plano de control o una falla del plano de datos. Por ejemplo, una falla de la interfaz puede provocar que el router local entre en un modo de reinicio ordenado y retrase de forma innecesaria una conmutación por error del tráfico desde el vínculo afectado.

Debido a la posible ambigüedad de una falla de BFD, los diferentes proveedores tratan esta situación específica de forma diferente y ofrecen parámetros de configuración para cambiar el comportamiento predeterminado. Te recomendamos que revises la documentación de tu proveedor de router y configures tu router local para asegurarte de que un evento de falla de la interfaz de BFD con un par de BFD dependiente del plano de control active una conmutación por error inmediata cuando se use con BGP de reinicio ordenado.

Configuración y temporizadores de BFD

En esta sección, se describen los parámetros de configuración de BFD que puedes configurar en Cloud Router.

Modo de inicialización de sesión de BFD

Descripción El modo de inicio de la sesión de BFD para este par de BGP.
Comando gcloud --bfd-session-initialization-mode
Campo de API bgpPeers[].bfd.sessionInitializationMode
Parámetro de configuración predeterminado Disabled

Hay tres opciones de configuración del modo BFD: Active, Passive y Disabled. Si no configuras este modo, se le aplica una configuración predeterminada de Disabled, con modo sin eco (solo paquetes de control).

  • Disabled (predeterminado): BFD está inhabilitado para este par de BGP.
  • Passive: Cloud Router espera a que el router del par inicie la sesión de BFD para este par de BGP.
  • Active: Cloud Router inicia la sesión de BFD para este par de BGP.

Debes configurar el router en al menos un lado de una conexión (ya sea Cloud Router o el router del par) como Active. Cuando configures una sesión de BGP entre dos Cloud Routers, establece el modo de inicialización de la sesión de BFD de un router como Active.

Si configuras ambos lados como Active, los dos lados envían un paquete de control inicial para negociar los parámetros, y la sesión se establece finalmente.

Si estableces el modo de inicialización de la sesión de BFD como Disabled, puedes configurar de forma opcional el resto de los parámetros de configuración de BFD. Esta configuración se aplicará cuando vuelvas a habilitar BFD.

Intervalo de transmisión mínimo de BFD (paquetes de BFD a un par)

Descripción El intervalo mínimo entre los paquetes de control de BFD que se transmiten a un par de BGP.
Comando gcloud --bfd-min-transmit-interval
Campo de API bgpPeers[].bfd.minTransmitInterval
Parámetro de configuración predeterminado

1,000 ms. Puedes especificar una configuración entre 1,000 ms y 30,000 ms.

Intervalo de recepción mínimo de BFD (paquetes de BFD desde un par)

Descripción El intervalo mínimo entre los paquetes de control de BFD que se reciben desde un par de BGP.
Comando gcloud --bfd-min-receive-interval
Campo de API bgpPeers[].bfd.minReceiveInterval
Parámetro de configuración predeterminado

1,000 ms. Puedes especificar una configuración entre 1,000 ms y 30,000 ms.

Multiplicador de BFD

Descripción La cantidad de paquetes de control BFD consecutivos que se deben omitir para que BFD declare que un par no está disponible.
Comando gcloud --bfd-multiplier
Campo de API bgpPeers[].bfd.multiplier
Parámetro de configuración predeterminado

5 paquetes. Puedes especificar una configuración de entre 5 y 16 paquetes.

¿Qué sigue?