New user sign up using AWS Builder ID
New user sign up using AWS Builder ID is currently unavailable on re:Post. To sign up, please use the AWS Management Console instead.
¿Cómo soluciono los problemas de rendimiento de red entre las instancias de EC2 de Linux o Windows en una VPC y un host local a través de la puerta de enlace de Internet?
Quiero solucionar problemas de latencia o pérdida de paquetes entre mis instancias de Amazon Elastic Compute Cloud (Amazon EC2) en una Amazon Virtual Private Cloud (Amazon VPC) y un host local a través de la puerta de enlace de Internet.
Descripción breve
Para diagnosticar problemas de red, como la pérdida de paquetes o la latencia, primero pruebe la red para aislar el origen del problema. Antes de solucionar el problema, se recomienda comparar los resultados de rendimiento.
Requisitos previos:
- Asegúrese de que las utilidades de red estén instaladas en ambos puntos de enlace (en la instancia de EC2 y en el host local).
- Utilice una instancia de EC2 que admita redes mejoradas y asegúrese de que los controladores estén actualizados. Si las redes mejoradas no están activadas, consulte Solución de problemas del controlador del kernel de ENA en Linux o Solución de problemas del controlador Elastic Network Adapter para Windows.
- Conéctese a su instancia de EC2 para acceder a las instancias. Compruebe la conectividad de extremo a extremo entre su instancia de EC2 y su host local.
Resolución
Instale las siguientes herramientas para ayudar a solucionar problemas y probar la red:
- AWSSupport-SetupIPMonitoringFromVPC recopila métricas de la red, como la pérdida de paquetes, la latencia, el MTR, el tcptraceroute y el tracepath.
- MTR para comprobar si hay problemas de latencia y pérdida de paquetes ICMP o TCP.
- Traceroute para determinar problemas de latencia o enrutamiento.
- Hping3 para determinar los problemas de latencia y pérdida de paquetes TCP de extremo a extremo.
- Tcpdump para analizar muestras de captura de paquetes.
Revise los informes de traceroute o MTR
Revise los saltos en los informes de traceroute o MTR utilizando un enfoque de abajo hacia arriba. En un enfoque de abajo hacia arriba, compruebe primero si hay pérdidas en el último salto o destino y, a continuación, revise los saltos anteriores.
- Si los problemas de pérdida de paquetes o latencia continúan durante el último salto, es posible que haya un problema de red o de enrutamiento.
- Si hay un límite de velocidad en el plano de control en ese nodo, es posible que se produzcan pérdidas de paquetes o latencia en un salto de la ruta.
- Compruebe si el último salto registrado es el destino indicado en el comando. Si el último salto no está anotado, es posible que haya un problema causado por un grupo de seguridad restrictivo.
Pruebe el rendimiento mediante AWSSupport-SetupIpMonitoringFromVPC
Esta herramienta integrada recopila muchas de las métricas que necesita para solucionar problemas de su red. Para obtener más información, consulte la herramienta de depuración para la conectividad de red de Amazon VPC.
Solución de problemas de rendimiento para instancias de Linux
Consulte las estadísticas de rendimiento de Linux
Si tiene acceso a la instancia de origen o de destino, compruebe si hay problemas con la CPU, el uso de la memoria y el promedio de carga.
Pruebe el rendimiento mediante MTR
El comando MTR de Linux proporciona una salida continua y actualizada. Esta herramienta de diagnóstico combina la funcionalidad de las utilidades traceroute y ping. El resultado de esta herramienta le permite analizar el rendimiento de la red. La mayoría de las distribuciones de Linux incluyen traceroute y MTR preinstalados. También puede descargar MTR desde el administrador de paquetes de software de su distribución.
Para instalar MTR, ejecute los siguientes comandos:
Amazon Linux:
sudo yum install mtr
Ubuntu:
sudo apt-get install mtr-tiny
Para probar el rendimiento de la red mediante MTR, ejecute esta prueba de forma bidireccional entre la dirección IP pública de sus instancias de EC2 y su host local. La ruta entre los nodos de una red TCP/IP puede cambiar si la dirección está invertida. Se recomienda obtener los resultados del MTR en ambas direcciones. Puede utilizar un rastreo basado en TCP en lugar de ICMP, ya que la mayoría de los dispositivos de Internet no priorizan las solicitudes de rastreo basadas en ICMP.
Revise la pérdida de paquetes. La pérdida de paquetes en un solo salto no suele indicar un problema. La pérdida puede deberse a una política del plano de control que hace que se eliminen los mensajes de «tiempo de ICMP excedido». Si observa una pérdida sostenida de paquetes hasta el salto de destino o una pérdida de paquetes durante varios saltos, esta pérdida podría indicar un problema.
Nota: Es habitual que se agote el tiempo de espera de algunas solicitudes.
Sustituya PUBLIC_IP por el host local de la instancia de EC2 de la IP pública.
MTR basado en ICMP:
mtr -n -c 200 PUBLIC_IP --report
MTR basado en TCP:
mtr -n -T -c 200 PUBLIC_IP --report
El argumento -T realiza un MTR basado en TCP y la opción report pone el MTR en modo informe. El MTR se ejecuta durante el número de ciclos especificado por la opción -c. Imprima las estadísticas y, a continuación, salga.
Nota: El MTR basado en TCP prueba el puerto TCP de destino 80, para probar un puerto TCP de destino específico, al que se añade -P, seguido del número de puerto. El siguiente es un ejemplo del puerto TCP de destino MTR 443:
mtr -n -T -c 200 PUBLIC_IP -P 443 --report
Pruebe el rendimiento con traceroute
La utilidad traceroute de Linux identifica la ruta que se toma desde un nodo de cliente hasta el nodo de destino. La utilidad registra el tiempo en milisegundos que tarda cada router en responder a la solicitud. La utilidad también calcula la cantidad de tiempo que tarda cada salto antes de llegar a su destino.
Para instalar traceroute, ejecute los siguientes comandos:
Amazon Linux:
sudo yum install traceroute
Ubuntu:
sudo apt-get update
`sudo apt-get install traceroute`
Nota: Traceroute no es necesario si ejecuta un informe de MTR. El MTR proporciona estadísticas de latencia y pérdida de paquetes a un destino.
Asegúrese de que el puerto 22 o el puerto que está probando estén abiertos en ambas direcciones. Para solucionar problemas de conectividad de red mediante traceroute, ejecute el comando del cliente al servidor. A continuación, ejecute el comando desde el servidor de vuelta al cliente. La ruta entre los nodos de una red TCP/IP puede cambiar si se invierte la dirección. Utilice un rastreo basado en TCP en lugar de ICMP (el puerto de su aplicación), ya que la mayoría de los dispositivos de Internet no priorizan las solicitudes de rastreo basadas en ICMP.
Ruta de rastreo basada en ICMP:
sudo traceroute -I PUBLIC_IP
Ruta de rastreo basada en TCP:
sudo traceroute -n -T -p 22 PUBLIC_IP
El argumento -T -p 22 -n lleva a cabo un rastreo basado en TCP en el puerto 22.
Nota: Puede utilizar el puerto específico de su aplicación para realizar pruebas. Utilice el puerto específico para saber si hay algún dispositivo intermedio en la ruta que esté bloqueando el tráfico de su aplicación.
Pruebe el rendimiento con hping3
Hping3 es un ensamblador y analizador de paquetes TCP/IP de línea de comandos que mide la pérdida de paquetes de extremo a extremo y la latencia a través de una conexión TCP. Descargue hping3 del sitio web Die.net.
Además de las solicitudes de eco de ICMP, hping3 admite los protocolos TCP, UDP y RAW-IP. Hping3 también incluye un modo de traceroute que puede enviar archivos entre un canal cubierto. Hping3 puede escanear hosts, ayudar con las pruebas de penetración, probar los sistemas de detección de intrusos y enviar archivos entre hosts.
Los MTR y traceroute capturan la latencia por salto. Sin embargo, además de la pérdida de paquetes, los resultados de hping3 muestran una latencia mínima/promedio/máxima de extremo a extremo a través de TCP.
Para instalar hping3, ejecute los siguientes comandos:
Amazon Linux 2:
Instale el paquete de lanzamiento EPEL para RHEL 7 y, a continuación, active el repositorio EPEL.
sudo amazon-linux-extras install epel -y
Amazon Linux 2:
sudo yum --enablerepo=epel install hping3
Ubuntu:
sudo apt-get install hping3
El siguiente comando envía 50 paquetes TCP SYN a través del puerto 0. De forma predeterminada, hping3 envía los encabezados TCP al puerto 0 del host de destino, con un tamaño de ventana de 64 y sin un indicador TCP:
sudo hping3 -S -c 50 -V PUBLIC_IP
El siguiente comando envía 50 paquetes TCP SYN a través del puerto 22:
sudo hping3 -S -c 50 -V PUBLIC_IP -p 22
Nota: Asegúrese de que el puerto 22 o el puerto que está probando esté abierto.
Pruebe muestras de captura de paquetes con tcpdump
Se recomienda realizar capturas de paquetes simultáneas en la instancia de EC2 y en el host local al diagnosticar problemas de latencia o pérdida de paquetes. Estas capturas pueden ayudar a identificar los paquetes de solicitud y respuesta para que podamos aislar el problema en las capas de red y aplicación. También se recomienda iniciar primero la captura de paquetes y, a continuación, iniciar el tráfico. Este orden de acción ayuda a capturar todos los paquetes del flujo.
Para instalar tcpdump, ejecute los siguientes comandos:
Amazon Linux:
sudo yum install tcpdump
Ubuntu:
sudo apt-get install tcpdump
Una vez instalado tcpdump, ejecute el siguiente comando para capturar el tráfico del puerto tcp 22 y, a continuación, guarde el resultado en un archivo pcap.
sudo tcpdump -i eth0 port 22 -s0 -w samplecapture.pcap
Nota: El indicador tcpdump -i especifica la interfaz de la instancia en la que tcpdump captura el tráfico. Puede que necesite cambiar la interfaz de eth0 a la interfaz configurada en su entorno.
Solución de problemas de rendimiento para Windows
Compruebe la capacidad de ECN
-
Ejecute el siguiente comando para determinar si la capacidad de notificación explícita de congestión (ECN) está activada:
netsh interface tcp show global
-
Si la capacidad de ECN está activada, ejecute el siguiente comando para desactivarla:
- netsh interface tcp set global ecncapability=disabled
-
Si no ve ninguna mejora en el rendimiento, ejecute el siguiente comando para volver a activar la capacidad de ECN:
netsh interface tcp set global ecncapability=enabled
Revise los saltos y solucione los problemas de conectividad del puerto TCP
Primero, use MTR o tracert para revisar los saltos.
Método MTR:
- Descargue y, a continuación, instale WinMTR del sitio web Sourceforge.net.
- Introduzca la IP de destino en la sección Host y, a continuación, seleccione Iniciar.
- Deje que la prueba se ejecute durante un minuto y, a continuación, seleccione Detener.
- Seleccione Copiar texto al portapapeles y pegue el resultado en un archivo de texto.
- Busque cualquier pérdida en la columna % que se propague al destino.
Nota: Ignore cualquier salto con el mensaje No hay respuesta del host. Este mensaje indica que esos saltos en particular no responden a los sondeos de ICMP. - Revise los saltos de los informes de MTR mediante un enfoque de abajo hacia arriba. Por ejemplo, compruebe si hay pérdidas en el último salto o destino y, a continuación, revise los saltos anteriores.
Método Tracert:
Si no quiere instalar MTR, puede usar la herramienta de utilidades de comandos tracert.
-
Ejecute tracert en la URL o la dirección IP de destino.
-
Busque cualquier salto que muestre un aumento abrupto en el tiempo de ida y vuelta (RTT). Un aumento abrupto del RTT podría indicar que hay un nodo con una carga elevada. Esta carga puede provocar latencia o pérdidas de paquetes en el tráfico.
Nota: La opción -d no resuelve las direcciones IP de los nombres de host. Elimine -d si se requiere una resolución de IP a nombre de host.tracert -d PUBLIC_IP
-
A continuación, compruebe la conectividad del puerto TCP.
Nota: Dado que tanto WinMTR como tracert están basados en ICMP, puede usar tracetcp para solucionar problemas de conectividad del puerto TCP.
- Descargue el archivo ZIP tracetcp del sitio web NetworkHunt.com.
- Extraiga el archivo ZIP tracetcp.
- Copie tracetcp.exe a su unidad C.
- Descargue e instale WinPcap del sitio web WinPcap.org.
- Abra la línea de comandos y haga raíz a WinPcap en la unidad C mediante el comando C:\Users\username>cd.
- Para ejecutar tracetcp, utilice los siguientes comandos:
tracetcp.exehostname:port
-o-
tracetcp.exe ip:port
Compruebe el Administrador de tareas de Windows
Si tiene acceso a la instancia de origen o de destino, consulte el Administrador de tareas de Windows. Busque problemas con el uso de la CPU y la memoria, o con el promedio de carga.
Realizar una captura de paquetes
Nota: Se recomienda realizar capturas de paquetes simultáneas en la instancia de EC2 y en el host local al diagnosticar problemas de latencia o pérdida de paquetes. Esta acción ayuda a identificar los paquetes de solicitud y respuesta para aislar el problema en las capas de red y aplicación. También se recomienda iniciar primero la captura de paquetes y, a continuación, iniciar el tráfico. Estas acciones ayudan a capturar todos los paquetes del flujo.
- Descargue e instale Wireshark del sitio web Wireshark.org. A continuación, realice una captura de paquetes.
- Utilice el siguiente filtro para aislar el tráfico entre determinados orígenes en la captura de paquetes: (ip.addr eq source_IP) &&(tcp.flags.syn == 1).
El resultado muestra todos los flujos tcp iniciados por esa IP de origen. - Seleccione la fila con la IP de origen y la IP de destino pertinentes.
- Seleccione el menú contextual (haga clic con el botón derecho) y, a continuación, elija Follow, TCP Stream. Esto da como resultado un flujo TCP entre la IP de origen y la IP de destino que desea investigar.
- Busque retransmisiones, paquetes duplicados o notificaciones de tamaño de ventana TCP, como ventana TCP llena o ventana tamaño cero. Estas notificaciones podrían indicar que los búferes TCP se están quedando sin espacio.
Si detecta una pérdida de paquetes o si el número de saltos cambia significativamente con respecto a sus puntos de referencia, consulte la documentación del proveedor de equipos de red. Si trabaja en un entorno de red con varios inicios, realice estas pruebas con un ISP diferente.

Contenido relevante
- preguntada hace 2 meseslg...
- preguntada hace 14 díaslg...
- preguntada hace 10 díaslg...
- preguntada hace un meslg...
- preguntada hace 2 meseslg...
- OFICIAL DE AWSActualizada hace 3 años
- OFICIAL DE AWSActualizada hace 2 meses
- OFICIAL DE AWSActualizada hace un año