Como faço para solucionar problemas de perda de pacotes na minha conexão AWS VPN?
Tenho perda constante ou intermitente de pacotes e problemas de alta latência com minha conexão de AWS Virtual Private Network (AWS VPN). Quero saber quais testes executar para confirmar que o problema não ocorre dentro da minha Amazon Virtual Private Cloud (Amazon VPC).
Breve descrição
As causas da perda de pacotes podem variar à medida que o tráfego de internet do AWS VPN se movimenta entre a rede on-premises e o Amazon VPC. Recomenda-se isolar e confirmar de onde vem a perda de pacotes.
Resolução
Para determinar se você atingiu os limites da rede, verifique se há problemas de utilização de recursos nos hosts de origem e destino. Você pode encontrar problemas de utilização de recursos em valores como CPUUtilization, NetworkIn e NetworkOut, ou NetworkPacketsIn e NetworkPacketsOut.
Usar o MTR para verificar a perda e a latência de pacotes ICMP ou TCP
O MTR oferece uma saída continuamente atualizada que permite analisar o desempenho da rede ao longo do tempo. Ele combina a funcionalidade do traceroute e do ping em uma única ferramenta de diagnóstico de rede. Para verificar a perda e a latência de pacotes ICMP ou TCP, instale a ferramenta de rede MTR na sua instância do Amazon Elastic Compute Cloud (Amazon EC2) que está na VPC.
Amazon Linux:
sudo yum install mtr
Ubuntu:
sudo apt-get install mtr
Windows:
Consulte o site do SourceForge para instalar o WinMTR.
Observação: para o sistema operacional (SO) Windows, o WinMTR não é compatível com o MTR baseado em TCP.
Execute os seguintes testes entre o endereço IP público e privado de suas instâncias do EC2 e seu host on-premises. Como o caminho entre os nós em uma rede TCP/IP pode mudar quando a direção é invertida, obtenha resultados de MTR de ambas as direções.
Antes de executar os testes, verifique as seguintes configurações:
- Certifique-se de que as regras do grupo de segurança e da lista de controle de acesso à rede (Network ACL) permitam o tráfego ICMP da instância de origem.
- Certifique-se de que a porta de teste esteja aberta na instância de destino. Confirme se o grupo de segurança e as regras de ACL da rede permitem o tráfego da origem no protocolo e na porta.
Os resultados baseados em TCP determinam se há perda ou latência de pacotes baseados em aplicativos na conexão. A versão MTR 0.85 e posteriores têm a opção TCP.
Relatório de host on-premises da instância do EC2 do endereço IP privado:
mtr -n -c 200
Relatório de host on-premises da instância do EC2 do endereço IP privado:
mtr -n -T -c 200 -P 443 -m 60
Relatório de host on-premises da instância do EC2 do endereço IP público:
mtr -n -c 200
Relatório de host on-premises da instância do EC2 do endereço IP público:
mtr -n -T -c 200 -P 443 -m 60
Usar traceroute para determinar problemas de latência ou roteamento
O utilitário traceroute do Linux identifica o caminho de um nó cliente até o nó de destino. O utilitário registra o tempo, em milissegundos, para que cada roteador responda à solicitação. O utilitário traceroute também calcula o tempo de cada salto antes de chegar ao destino.
Algumas solicitações expiradas são comuns; portanto, verifique a perda de pacotes até o destino ou no último salto da rota. A perda de pacotes em vários saltos pode indicar um problema.
Observação: é prática recomendada executar o comando traceroute do cliente para o servidor. Em seguida, execute o comando do servidor de volta para o cliente.
Para instalar o traceroute, execute os seguintes comandos:
Amazon Linux:
sudo yum install traceroute
Ubuntu:
sudo apt-get install traceroute
Para testar o endereço IP privado da instância do EC2 e on-premises, execute os seguintes comandos:
Amazon Linux:
sudo traceroutesudo traceroute -T -p 80
Windows:
tracerttracetcp
Observação: esses comandos fazem um rastreamento baseado em TCP na porta 80. Confirme se você tem a porta 80 ou a porta que está testando está aberta nas duas direções.
Se você usa Linux, use a opção traceroute para especificar um rastreamento baseado em TCP em vez de ICMP. Isso ocorre porque a maioria dos dispositivos da Internet desprioriza as solicitações de rastreamento baseadas em ICMP.
Use hping3 para determinar problemas de latência e perda de pacotes TCP de ponta a ponta
O hping3, no site die.net, é um montador e analisador de pacotes TCP/IP por linha de comando que mede a perda e a latência de pacotes de ponta a ponta em uma conexão TCP.
Os MTRs e o traceroute captam a latência por salto. No entanto, os resultados do hping3 mostram perda de pacotes e latência mínima, máxima e média de ponta a ponta em TCP. Para instalar o hping3, execute os seguintes comandos:
Amazon Linux:
sudo yum --enablerepo=epel install hping3
Ubuntu:
sudo apt-get install hping3
Execute os seguintes comandos:
hping3 -S -c 50 -V <Public IP of EC2 instance or on-premises host> hping3 -S -c 50 -V <Private IP of EC2 instance or on-premises host>
Observação: por padrão, o hping3 envia cabeçalhos TCP para a porta 0 do host de destino com um winsize de 64 e sem nenhum sinalizador tcp ativado.
Amostras de captura de pacotes com tcpdump ou Wireshark
Execute capturas simultâneas de pacotes entre sua instância de teste de EC2 na VPC e seu host on-premises ao duplicar o problema. Isso ajuda a determinar se há algum problema de aplicativo ou camada de rede na conexão VPN. Para realizar capturas de pacotes, instale o tcpdump na sua instância Linux ou o Wireshark em uma instância do Windows.
tcpdump no Amazon Linux:
sudo yum install tcpdump
Instale o tcpdump no Ubuntu:
sudo apt-get install tcpdump
Wireshark no sistema operacional Windows:
Para instalar o Wireshark, consulte o site do Wireshark. Em seguida, faça uma captura de pacotes.
Desativar a ECN
Se você ativar a notificação explícita de congestionamento (ECN), poderão ocorrer perda de pacotes ou problemas de desempenho quando você se conectar às instâncias do Windows. Para melhorar o desempenho, desative a ECN.
Para determinar se a ECN está ativada, execute o seguinte comando:
netsh interface tcp show global
Se o recurso ECN estiver ativado, execute o seguinte comando para desativá-lo:
netsh interface tcp set global ecncapability=disabled
Informações relacionadas
Conteúdo relevante
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há um mês