Comment résoudre les problèmes de connexion BGP via AWS VPN ou Direct Connect ?

Lecture de 5 minute(s)
0

Je souhaite déboguer les sessions BGP qui peinent à établir la connexion en raison d'une incompatibilité des paramètres via VPN ou AWS Direct Connect.

Brève description

Lorsque vous configurez des connexions dynamiques AWS Site-to-Site VPN et AWS Direct Connect, vous pourrez avoir des problèmes de connexion liés au protocole de passerelle frontière (BGP). Pour résoudre ce problème, vous devez d'abord analyser les journaux BGP et déterminer le point de défaillance spécifique du processus de négociation BGP.

Remarque : Pour résoudre les problèmes d'une session BGP qui ne parvient pas à établir de connexion ou qui est inactive via un tunnel VPN, voir Comment résoudre les problèmes de connexion BGP via VPN ?

Pour résoudre les problèmes d'une session BGP qui ne parvient pas à établir de connexion ou qui est inactive via Direct Connect, voir Comment résoudre les problèmes de connexion BGP via Direct Connect ?

Résolution

Assurez-vous que vous disposez d'une configuration BGP vérifiée sur la passerelle client et que les pings entre les adresses IP homologues du BGP fonctionnent. Ensuite, collectez les captures de paquets pour le trafic entre les adresses IP homologues BGP à partir du dispositif de passerelle client. Enfin, analysez les données comme suit pour chaque état du BGP.

États du BGP

Inactif

Il s'agit du premier état dans lequel le BGP attend un « événement de démarrage ». L'événement de démarrage se produit lorsque vous configurez un nouveau voisin BGP ou lorsque vous réinitialisez un appairage BGP établi. Ensuite, le BGP initialise certaines ressources, réinitialise un temporisateur ConnectRetry et initie une connexion TCP avec le voisin BGP distant.

Connect

Au cours de cette étape, le BGP attend la fin de l'établissement de la liaison tridirectionnelle du TCP. Lorsque cette étape aboutit, la connexion passe à l'état 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 connexion ou ConnectRetry échoue, elle reste à l'état Active et ne passe pas à l'état OpenSent.

Consultez les journaux de connexion pour trouver la cause de l'échec :

  • Dans le cas d'un VPN dynamique, assurez-vous qu'il existe une connexion TCP entre les deux voisins BGP en effectuant un test « telnet » sur le port TCP 179
  • S'il n'y a pas de connexion TCP, consultez les journaux pour voir s'il y a eu des erreurs ou si des paquets ont été supprimés pendant la connexion TCP.
  • Vérifiez que l'adresse IP du voisin est correctement configurée à la fois sur le BGP, sur la passerelle client et sur AWS.
  • Si vous utilisez l'interface virtuelle de Direct Connect, vérifiez si vous avez saisi la bonne authentification BGP (mot de passe MD5) sur les routeurs.

OpenSent

Après avoir envoyé un message OPEN à l'homologue, le BGP attend dans cet état la réponse OPEN. S'il reçoit une réponse positive, l'état du BGP passe à OpenConfirm et envoie un KEEPALIVE à l'homologue. L’échec de connexion remet le BGP à l'état inactif ou actif.

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

Dans le message OpenSent, l'homologue envoie ses paramètres BGP, tels qu'un numéro de version, un numéro AS, un Hold Timer (valeur par défaut : 30 secondes pour le protocole BGP via VPN et 90 secondes pour le protocole BGP via Direct Connect) et l'adresse IP de l'identifiant BGP. Si le BGP ne parvient pas à s'établir, consultez les journaux pour vous assurer que le message OPEN a été envoyé et reçu effectivement par le voisin avec les paramètres BGP. Consultez également les journaux OpenSent pour trouver la cause de l'échec.

Remarque : AWS n'accepte pas la valeur 0 comme valeur de temps d'attente.

OpenConfirm

L'état BGP est sur le point d'atteindre son état final (Établi). Dans cet état, le BGP attend KEEPALIVEs de la part de l'homologue. En cas de succès, l'état passe à Établi. Dans le cas contraire, l'état repasse à Inactif ou Actif, en fonction des erreurs.

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

Vérifiez les journaux pour vous assurer que le message KEEPALIVE a été envoyé et reçu correctement.

Établi

Dans cet état, le BGP échange des informations entre les homologues. Les informations se composent de mises à jour (annonce d'itinéraires), de KEEPALIVES ou de notifications.

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 aucune connexion n'est établie, procédez comme suit :

  • Vérifiez les journaux pour vous assurer que les routeurs échangent correctement les mises à jour. Vérifiez que les préfixes annoncés correspondent aux itinéraires attendus.
  • Vérifiez si des filtres BGP ou des listes de préfixes empêchent la propagation des itinéraires dans la table de routage.
  • Vérifiez les entrées d'itinéraires annoncées dans les tables de routage homologues.
  • Vous pouvez voir la session BGP passer de l'état Établi à inactif pour le VPN ou l'interface virtuelle Direct Connect sur une passerelle virtuelle. Vérifiez que l'homologue annonce moins de 100 itinéraires sur la session BGP.
AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an
Aucun commentaire