¿Cómo soluciono los errores de conexión de BGP que se producen en AWS VPN o Direct Connect?

5 minutos de lectura
0

Quiero depurar las sesiones de BGP que no pueden establecer una conexión debido a una discrepancia de parámetros en VPN o AWS Direct Connect.

Breve descripción

Al configurar conexiones dinámicas de AWS Site-to-Site VPN y AWS Direct Connect, es posible que se produzcan problemas de conectividad relacionados con el protocolo de puerta de enlace fronteriza (BGP). Para solucionar este problema, primero debe analizar los registros del BGP e identificar el punto de error concreto en el proceso de negociación del BGP.

Nota: En caso de que la sesión del BGP no pueda establecer una conexión o permanezca inactiva en un túnel de VPN, consulte Cómo solucionar los problemas de conexión de BGP en una VPN para resolverlo.

En caso de que la sesión del BGP no pueda establecer una conexión o permanezca inactiva en Direct Connect, consulte Cómo solucionar los problemas de conexión de BGP en Direct Connect.

Solución

Asegúrese de haber verificado la configuración del BGP en la puerta de enlace de cliente y de que los pings entre las IP de los pares del BGP funcionen. A continuación, recopile las capturas de paquetes para el tráfico entre las IP del par del BGP desde el dispositivo de la puerta de enlace de cliente. Por último, analice los datos de la siguiente manera para cada estado del BGP.

Estados del BGP

Inactivo

Este es el primer estado, en que el BGP espera el llamado «evento de inicio». El evento de inicio se produce al configurar un nuevo vecino BGP o al restablecer un emparejamiento de BGP ya establecido. A continuación, el BGP inicia algunos recursos, restablece un temporizador ConnectRetry e inicia una conexión TCP con el vecino BGP remoto.

Conexión

Durante esta etapa, el BGP espera a que se complete el protocolo de enlace de tres vías TCP. Si esta etapa se lleva a cabo correctamente, la conexión pasa a tener el estado OpenSent.

2021-07-04 22:50:20 169.254.60.146 169.254.60.145 TCP 74 34516 → 179 [SYN] Seq=0 Win=2920 Len=0 MSS=1460 SACK_PERM TSval=3030456 TSecr=0 WS=1
2021-07-04 22:50:20.719228 169.254.60.145 169.254.60.146 TCP 74	179 → 34516 [SYN, ACK] Seq=0 Ack=1 Win=26844 Len=0 MSS=1375 TSval=64921081 TSecr=3030456 WS=128
2021-07-04 22:50:20.719453 169.254.60.146 169.254.60.145 TCP 66	34516 → 179 [ACK] Seq=1 Ack=1 Win=2920 Len=0 TSval=3030476 TSecr=64921081

Si la conexión o ConnectRetry fallan, permanecerá en estado activo y no pasará al estado OpenSent.

Consulte los registros de conexión para identificar la causa del error:

  • En el caso de una VPN dinámica, asegúrese de que exista una conectividad TCP entre ambos vecinos BGP realizando una prueba de «telnet» en el puerto TCP 179
  • Si no hay conectividad TCP, revise los registros para comprobar que no haya habido errores o paquetes descartados durante la conexión TCP.
  • Compruebe que la dirección IP del vecino esté configurada correctamente tanto en el BGP como en la puerta de enlace de cliente y AWS.
  • Si utiliza la interfaz virtual de Direct Connect, compruebe si ha introducido la autenticación de BGP correcta (contraseña MD5) en los enrutadores.

OpenSent

Tras enviar un mensaje OPEN al par, el BGP espera la respuesta OPEN en este estado. Si recibe una respuesta correcta, el estado del BGP pasará a OpenConfirm y se enviará KEEPALIVE al par. Si se produce un fallo de conexión, BGP volverá a pasar al estado inactivo o activo.

Border Gateway Protocol - OPEN Message
Type: OPEN Message (1)  
Version: 4   
My AS: 65000  
Hold Time: 30  
BGP Identifier: 54.241.242.80

En el mensaje de OpenSent, el par envía sus parámetros de BGP, como un número de versión, un número AS, un temporizador de espera (valor predeterminado: 30 segundos para BGP a través de VPN y 90 segundos para BGP a través de Direct Connect) y un identificador de BGP (dirección IP). Si el BGP no se establece, compruebe los registros para asegurarse de que el vecino haya enviado y recibido correctamente el mensaje OPEN con los parámetros del BGP. Asimismo, compruebe los registros de OpenSent para identificar la causa del error.

Nota: AWS no acepta «0» como valor de tiempo de espera.

OpenConfirm

El estado del BGP está a un paso de alcanzar el estado final (establecido). En este estado previo, BGP espera a los mensajes KEEPALIVE del par. Si tiene éxito, se pasa al estado de «establecido». De lo contrario, se vuelve al estado inactivo o activo, dependiendo de los errores.

65	2021-07-04 22:50:20.744297	169.254.60.146	169.254.60.145	BGP	85	KEEPALIVE Message
66	2021-07-04 22:50:20.765323	169.254.60.145	169.254.60.146	BGP	85	KEEPALIVE Message

Revise los registros para asegurarse de que el mensaje KEEPALIVE se haya enviado y recibido correctamente.

Establecido

En este estado, el BGP intercambia información entre los pares. La información consiste en actualizaciones (anuncios de ruta), mensajes KEEPALIVE o notificaciones.

Border Gateway Protocol - UPDATE Message
Path attributes
Path Attribute - AS_PATH: 65000
Path Attribute - NEXT_HOP: 169.254.60.146
Network Layer Reachability Information (NLRI)
   192.168.0.0/16

Si no se ha establecido ninguna conexión, siga los siguientes pasos:

  • Revise los registros para asegurarse de que los enrutadores intercambian las actualizaciones correctamente. Compruebe que los prefijos anunciados coincidan con las rutas esperadas.
  • Compruebe que ninguna lista de prefijos o filtro del BGP impida la propagación de las rutas en la tabla de enrutamiento.
  • Compruebe las entradas de rutas anunciadas en las tablas de enrutamiento de los pares.
  • Es posible que perciba que la sesión de BGP pasa del estado establecido al inactivo para la interfaz virtual de Direct Connect o VPN en una puerta de enlace virtual. Compruebe que el par anuncie menos de 100 rutas durante la sesión de BGP.
OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año