Como soluciono problemas de falha de conexão BGP por meio do AWS VPN ou do Direct Connect?

5 minuto de leitura
0

Quero depurar sessões do BGP que não conseguem estabelecer uma conexão devido à incompatibilidade de parâmetros na VPN ou no AWS Direct Connect.

Breve descrição

Ao configurar conexões dinâmicas do AWS Site-to-Site VPN e do AWS Direct Connect, você pode encontrar problemas de conectividade relacionados ao Protocolo de Gateway da Borda (BGP). Para resolver isso, primeiro você deve analisar os logs do BGP e identificar o ponto específico de falha no processo de negociação do BGP.

Observação: para solucionar problemas de uma sessão de BGP que não consegue estabelecer uma conexão ou está em um estado inativo em um túnel de VPN, consulte Como soluciono problemas de conexão BGP por meio de VPN?

Para solucionar problemas de uma sessão de BGP que não consegue estabelecer uma conexão ou está em um estado inativo pelo Direct Connect, consulte Como posso solucionar problemas de conexão BGP pelo Direct Connect?

Resolução

Verifique se você tem uma configuração de BGP verificada no gateway do cliente e se os pings entre os IPs do par BGP estão funcionando. Em seguida, colete as capturas de pacotes para o tráfego entre os IPs do par BGP a partir do dispositivo de gateway do cliente. Por fim, analise os dados da seguinte forma para cada estado do BGP.

Estados do BGP

Ocioso

Esse é o primeiro estado em que o BGP espera por um “evento inicial”. O evento inicial ocorre quando você configura um novo vizinho de BGP ou quando você redefine um emparelhamento de BGP estabelecido. Em seguida, o BGP inicializa alguns recursos, reinicia um temporizador ConnectRetry e inicia uma conexão TCP ao vizinho BGP remoto.

Conectar

Durante esse estágio, o BGP espera que o handshake tridirecional do TCP seja concluído. Se esse estágio for concluído com êxito, a conexão será movida para o 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

Se a conexão ou ConnectRetry falhar, ela permanecerá no estado Ativo e não entrará no estado OpenSent.

Verifique os logs do Connect para identificar a causa da falha:

  • No caso da VPN dinâmica, certifique-se de que haja conectividade TCP entre os dois vizinhos do BGP executando um teste “telnet” na porta TCP 179
  • Se não houver conectividade TCP, verifique os registros para ver se houve algum erro ou pacotes descartados durante a conexão TCP.
  • Verifique se o endereço IP do vizinho está configurado corretamente no BGP, no gateway do cliente e na AWS.
  • Se estiver usando a interface virtual do Direct Connect, verifique se você inseriu a autenticação BGP correta (senha MD5) nos roteadores.

OpenSent

Depois de enviar uma mensagem OPEN para o par, o BGP espera nesse estado pela resposta OPEN. Se receber uma resposta bem-sucedida, o estado do BGP será movido para OpenConfirm e enviará um KEEPALIVE para o par. Uma conexão com falha coloca o BGP de volta no estado Inativo ou Ativo.

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

Na mensagem do OpenSent, o par envia seus parâmetros BGP, como número de versão, número AS, temporizador de espera (valor padrão: 30 segundos para BGP sobre VPN e 90 segundos para BGP (via Direct Connect) e endereço IP do identificador BGP. Se o BGP não estabelecer, verifique os registros para garantir que a mensagem OPEN tenha sido enviada e recebida corretamente pelo vizinho com os parâmetros do BGP. Além disso, verifique os registros do OpenSent para identificar a causa da falha.

Observação: a AWS não aceita 0 como valor de tempo de espera.

OpenConfirm

O estado BGP está a um passo de atingir seu estado final (Estabelecido). O BGP espera nesse estado pelo KeepAlives do par. Se for bem-sucedido, o estado passa para Estabelecido. Caso contrário, o estado volta para o estado Inativo ou Ativo, com base nos erros.

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

Verifique os registros para garantir que a mensagem KEEPALIVE tenha sido enviada e recebida corretamente.

Estabelecido

Nesse estado, o BGP troca informações entre os pares. As informações consistem em atualizações (publicidade de rotas), KEEPALIVES ou notificação.

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

Se uma conexão não for estabelecida, faça o seguinte:

  • Verifique os logs para garantir que os roteadores estejam trocando atualizações corretamente. Verifique se os prefixos anunciados correspondem às rotas esperadas.
  • Verifique se algum filtro BGP ou lista de prefixos está impedindo a propagação de rotas na tabela de rotas.
  • Verifique as entradas de rota anunciadas nas tabelas de rotas entre pares.
  • Você pode ver a sessão BGP passando de um estado estabelecido para um estado ocioso para VPN ou interface virtual Direct Connect em um gateway virtual. Verifique se o par está anunciando menos de 100 rotas na sessão do BGP.
AWS OFICIAL
AWS OFICIALAtualizada há um ano