¿Cómo diagnosticar una conexión confiable y poco confiable?


9

Donde vivo ahora, la conexión a Internet (por cable) muestra los siguientes síntomas extraños. Parecen ser independientes de si uso nombres de host o direcciones IP.

  • Pinging funciona
  • Skype funciona
  • Wget se conecta, pero nunca recibe una respuesta. (Sigue esperando en "Solicitud HTTP enviada, esperando respuesta" hasta que se agote el tiempo).
    • Excepto por un pequeño subconjunto de dominios, para el cual funciona.
  • Los comandos ssh ( ssh host ls) funcionan.
  • El ssh interactivo funciona por un corto tiempo, pero se cuelga rápidamente, por ejemplo, durante el primero ls, siempre en el mismo punto.
  • En Windows, todo funciona bien.

¿Qué puedo hacer para diagnosticar esto más a fondo? Hasta ahora, solo he estado mirando la capa de aplicación. Como hay una aparente conexión a Internet, debe haber alguna forma de tunelizar Firefox, pero primero me gustaría precisar el problema.

Es muy probable que esté relacionado con paquetes grandes que no se abren paso. Descubrí que hay una MTU, pero configurarla para eth0 no resuelve mi problema. Creo que estoy detrás de PPPOE y un enrutador. Las IP externas son las mismas en Windows y Linux.

Salida de algunos comandos:

ip link show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1024 qdisc mq state UP qlen 1000
    link/ether 00:26:aa:aa:aa:61 brd ff:ff:ff:ff:ff:ff
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000
    link/ether c4:17:aa:aa:aa:ff brd ff:ff:ff:ff:ff:ff
4: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN 
    link/ether 5e:49:aa:aa:aa:27 brd ff:ff:ff:ff:ff:ff

ip route show

192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.4  metric 1 
192.168.122.0/24 dev virbr0  proto kernel  scope link  src 192.168.122.1 
169.254.0.0/16 dev eth0  scope link  metric 1000 
default via 192.168.1.1 dev eth0  proto static 

ip addr show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1024 qdisc mq state UP qlen 1000
    link/ether 00:26:2d:78:ac:61 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.4/24 brd 192.168.1.255 scope global eth0
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000
    link/ether c4:17:fe:3b:56:ff brd ff:ff:ff:ff:ff:ff
4: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN 
    link/ether 5e:49:01:03:55:27 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
    inet6 fe80::5c49:1ff:fe03:5527/64 scope link 
       valid_lft forever preferred_lft forever

Puedo enviar pings hasta el tamaño de 1468.

tim@milagros:/$ ping -M do -c 1 -s 1470 stackexchange.com
PING stackexchange.com (64.34.119.12) 1470(1498) bytes of data.
   --- stackexchange.com ping statistics ---
   1 packets transmitted, 0 received, 100% packet loss, time 0ms

tim@milagros:/$ ping -M do -c 1 -s 1468 stackexchange.com
PING stackexchange.com (64.34.119.12) 1468(1496) bytes of data.
1476 bytes from stackoverflow.com (64.34.119.12): icmp_seq=1 ttl=52 time=176 ms
   --- stackexchange.com ping statistics ---
   1 packets transmitted, 1 received, 0% packet loss, time 0ms
   rtt min/avg/max/mdev = 176.539/176.539/176.539/0.000 ms



tim@milagros:~/projekt/perl$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:26:2d:78:ac:61  
          inet addr:192.168.1.4  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:161 errors:0 dropped:0 overruns:0 frame:0
          TX packets:194 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:143947 (143.9 KB)  TX bytes:67727 (67.7 KB)
          Interrupt:16 

66
Huelo un problema de MTU . Lee mi respuesta allí para ver una explicación. Si necesita ayuda para solucionar el problema, deberá proporcionar más información sobre su configuración.
Gilles 'SO- deja de ser malvado'

@Gilles: intenté seguir esos pasos, incluso estableciendo una MTU mucho más baja de lo necesario, pero no parece resolver el problema. ifconfigafirma que la MTU está configurada correctamente.

@Tim: Luego debe describir la configuración de su red. ¿Qué sistema operativo estás ejecutando? ¿Cómo se configura la red en su máquina (configuración estática, Network Manager, ...)? ¿Hay otros dispositivos (enrutador?) Bajo su control entre usted y su ISP? ¿Con qué método te conectas a tu ISP? ¿Y cómo fue la medida de ping?
Gilles 'SO- deja de ser malvado'

@Tim, ¿has resuelto este problema?
Mike Pennington

1
@ Mike: El problema no es solo con HTTP. Hay un límite máximo de tamaño de archivo para SCP, las sesiones SSH dejan de funcionar si obtengo demasiada salida y los pings que son demasiado grandes caen.

Respuestas:


8

Tim, te ruego respetuosamente que ignores tus dudas sobre el cambio de MTU. Su problema tiene un problema de MTU escrito y he sido ingeniero de redes profesional durante más de 15 años.

Para probar si MTU ayuda, realice pruebas desde su máquina Linux utilizando ping con el DFbit establecido en el encabezado IP ...

ping -M do -s 1232 <some pingable internet ip address>

Calculé el -sparámetro asumiendo que su MTU IP PPPoE es de 1300 bytes. Si ese ping tiene éxito, use -s 1472y observe lo que sucede ... si el ping ahora falla, tiene pruebas concluyentes de que hay un problema de MTU (suponiendo que no haya configurado su MTU de enlace Ethernet más bajo). Para su información, -s 1472enviará una solicitud de eco de carga útil ethernet de 1500 bytes; -M do -s 1472envía esa misma carga útil de 1500 bytes con el bit DF establecido en el encabezado IP.

También recuerde que MTU debe configurarse en ambos lados del enlace ... por lo que también deberá hacerlo en su módem.

EDITAR

Tim, todavía no has ejecutado los comandos que te pedí . Permíteme darte un ejemplo de lo que está mal con lo que hiciste (necesito modificar el host de destino para stackexchange.com, debido al firewall para la fragmentación de IP en mi ruta a 8.8.8.8)

Ejemplo negativo (usando sus banderas de ping)

[mpenning@Bucksnort ~]$ ping -c 1 -s 65507 64.34.119.12
PING 64.34.119.12 (64.34.119.12) 65507(65535) bytes of data.
65515 bytes from 64.34.119.12: icmp_seq=1 ttl=51 time=53.2 ms

--- 64.34.119.12 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 53.246/53.246/53.246/0.000 ms
[mpenning@Bucksnort ~]$

Pregunta retórica: ¿cómo llegó un paquete de ping de 64 KB a través de un segmento de Ethernet de 1500 bytes? (vea la Nota final A) No puedo ayudar a menos que publique la información que solicito. Este es el mismo ejemplo, conping -M do

Ejemplo positivo

[mpenning@Bucksnort ~]$ ping -M do -c 1 -s 65507 64.34.119.12
PING 64.34.119.12 (64.34.119.12) 65507(65535) bytes of data.
From 24.102.60.3 icmp_seq=1 Frag needed and DF set (mtu = 1500)

--- 64.34.119.12 ping statistics ---
0 packets transmitted, 0 received, +1 errors

[mpenning@Bucksnort ~]$

ping -M doproporciona información sobre la MTU máxima a lo largo de la ruta (en este caso, sabemos que el segmento de ethernet de primer salto tiene un valor IP MTUde 1500 bytes).

Notas finales:

R. Sus pings se pueden completar como una serie de fragmentos de IP, porque de forma predeterminada pingpermite la fragmentación de IP. Si está tratando de encontrar el tamaño máximo de paquete que pasará a través de un enlace, debe modificar el encabezado IP (con el que ilustré -M do) para asegurarse de que no obtenga un montón de respuestas fragmentadas unidas al final. Utilizando ping -c 1 -s 65507 64.34.119.12:

[mpenning@Bucksnort ~]$ sudo tshark -n -i eth0 icmp
  1   0.000000 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=0)
  2   0.000058 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=1480)
  3   0.000071 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=2960)
  4   0.000081 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=4440)
  5   0.000094 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=5920)
  6   0.000105 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=7400)
  7   0.000116 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=8880)
  8   0.000124 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=10360)
  9   0.000133 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=11840)
 10   0.000143 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=13320)
 11   0.000152 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=14800)
 12   0.000162 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=16280)
 13   0.000172 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=17760)
 14   0.000181 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=19240)
 15   0.000191 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=20720)
 16   0.000201 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=22200)
 17   0.000211 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=23680)
 18   0.000221 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=25160)
 19   0.000230 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=26640)
 20   0.000240 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=28120)
 21   0.000250 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=29600)
 22   0.000259 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=31080)
 23   0.000269 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=32560)
 24   0.000278 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=34040)
 25   0.000288 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=35520)
 26   0.000298 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=37000)
 27   0.000308 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=38480)
 28   0.000318 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=39960)
 29   0.000327 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=41440)
 30   0.000337 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=42920)
 31   0.000352 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=44400)
 32   0.000361 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=45880)
 33   0.000372 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=47360)
 34   0.000384 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=48840)
 35   0.000394 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=50320)
 36   0.000403 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=51800)
 37   0.000411 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=53280)
 38   0.000419 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=54760)
 39   0.000428 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=56240)
 40   0.000437 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=57720)
 41   0.000446 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=59200)
 42   0.000455 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=60680)
 43   0.000466 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=62160)
 44   0.000477 24.102.60.3 -> 64.34.119.12 IP Fragmented IP protocol (proto=ICMP 0x01, off=63640)
 45   0.000486 24.102.60.3 -> 64.34.119.12 ICMP Echo (ping) request
 46   0.044402 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=0)
 47   0.044439 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=1480)
 48   0.044899 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=2960)
 49   0.044910 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=4440)
 50   0.044916 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=5920)
 51   0.045149 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=7400)
 52   0.045399 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=8880)
 53   0.045409 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=10360)
 54   0.045415 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=11840)
 55   0.045649 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=13320)
 56   0.045899 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=14800)
 57   0.045908 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=16280)
 58   0.045915 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=17760)
 59   0.046148 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=19240)
 60   0.046163 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=20720)
 61   0.046402 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=22200)
 62   0.046421 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=23680)
 63   0.046650 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=25160)
 64   0.046668 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=26640)
 65   0.046901 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=28120)
 66   0.046918 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=29600)
 67   0.047151 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=31080)
 68   0.047171 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=32560)
 69   0.047399 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=34040)
 70   0.047418 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=35520)
 71   0.047424 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=37000)
 72   0.047650 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=38480)
 73   0.047900 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=39960)
 74   0.048149 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=41440)
 75   0.048165 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=42920)
 76   0.048172 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=44400)
 77   0.048178 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=45880)
 78   0.048398 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=47360)
 79   0.048650 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=48840)
 80   0.048667 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=50320)
 81   0.048674 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=51800)
 82   0.048900 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=53280)
 83   0.048922 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=54760)
 84   0.049150 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=56240)
 85   0.049174 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=57720)
 86   0.049398 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=59200)
 87   0.049649 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=60680)
 88   0.049671 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=62160)
 89   0.049677 64.34.119.12 -> 24.102.60.3 IP Fragmented IP protocol (proto=ICMP 0x01, off=63640)
 90   0.049683 64.34.119.12 -> 24.102.60.3 ICMP Echo (ping) reply

Estoy completamente de acuerdo con usted en que hay algún problema con MTU. Lo que he hecho es probar pings de diferentes tamaños para encontrar dónde está el límite. Sin embargo, cuando configuro la MTU para eth0 ( ifconfig eth0 mtu 1232creo), no cambia el problema. Establecer una MTU mucho más baja que el límite tampoco lo hace. No me di cuenta de que tenía que configurar la MTU para el otro lado del enlace: ¿cómo hace Windows 7, que parece ajustar automáticamente su MTU?

1
@Tim, todavía no puedo responder a tu pregunta sobre Windows 7 ... hay algunas posibilidades ... 1) un técnico de isp o software de isp lo configuró. 2) Diferencias en cómo manejan Path MTU Discovery ... podría haber otras dinámicas en juego, pero obtengamos la salida de los pings y descubramos a dónde ir desde allí
Mike Pennington,

Claro, lo conseguiré esta noche.

@Tim, edite con los resultados de sus pings si todavía está interesado en la depuración.
Mike Pennington

@ Mike: Ciertamente. He agregado la salida. Windows y Linux tienen la misma IP. ¡Descubrí que la MTU que mencioné anteriormente fue causada por mi configuración de la MTU para eth0! Con ifconfig eth0 mtu 1500, el tamaño de ping parece limitado en 1468, que, con los encabezados, está muy cerca de 1500.
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.