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
ifconfig
afirma que la MTU está configurada correctamente.Respuestas:
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
DF
bit establecido en el encabezado IP ...Calculé el
-s
parámetro asumiendo que su MTU IP PPPoE es de 1300 bytes. Si ese ping tiene éxito, use-s 1472
y 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 1472
enviará una solicitud de eco de carga útil ethernet de 1500 bytes;-M do -s 1472
enví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)
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, con
ping -M do
Ejemplo positivo
ping -M do
proporciona 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 valorIP MTU
de 1500 bytes).Notas finales:
R. Sus pings se pueden completar como una serie de fragmentos de IP, porque de forma predeterminada
ping
permite 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. Utilizandoping -c 1 -s 65507 64.34.119.12
:fuente
ifconfig eth0 mtu 1232
creo), 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?ifconfig eth0 mtu 1500
, el tamaño de ping parece limitado en 1468, que, con los encabezados, está muy cerca de 1500.