2005-12-29 21:19 +0100, Iñaki <[EMAIL PROTECTED]>: > Hola, hoy he tenido el supongo que clásico problema de poder acceder desde > ordenadores en una LAN a ciertas webs y no a otras.
Clásico problema con interesantes posibilidades. ¿Cuántas webs dan problemas? Quizás la pregunta te permita acotar de primeras la fuente del problema. > Después de comprobar los DNS's y demás se me ha ocurrido probar a reducir el > MTU del interfaz LAN de 1500 a 1492 y ya funciona. > > El caso es que el router es una Debian con ADLS por ppp0 con MTU 1492 (lo > típico), y la LAN es eth1 con MTU 1500 (lo típico también). Pensaba que nunca > habría ningún problema pues que yo sepa, si una máquina envía un paquete de > un tamaño mayor al MTU de un tramo de la red, es el router correspondiente el > que se encarga de fragmentar el paquete. Eso es al menos lo que hecho en > muchos ejercicios teóricos en la universidad. Correcto en cuanto a la teoría, pero en la práctica una máquina puede estar mal configurada. Supón que una de las webs esté detrás de un cortafuegos que sólo debe dejar pasar tráfico TCP dirigido al puerto 80. Una traducción de dicha regla que no tenga en cuenta la fragmentación en una máquina basada en iptables de Linux llevaría a descartar todos los fragmentos, por no llevar cabecera TCP (como se explica en el packet-filtering-HOWTO. Esto también es aplicable a tu router, sobre todo en las respuestas, y puede no ser por error sino por eficiencia (con algo de mala uva si no se responde con un ICMP "Destination Unreachable" con causa "4 = fragmentation needed and DF set"). Supongo que puede haber más casos, pero antes de buscarlos convendría intentar definir las causas. Si el problema está en la fragmentación y se ve durante la navegación web, puedes intentar de nuevo buscar al culpable. El tráfico web es mayoritariamente unidireccional, con lo que el culpable parecería ser tu máquina. En las páginas que fallan, ¿se cumple esta regla? Por otro lado, una captura de paquetes de las páginas que se ven debería establecer si los paquetes que recibes superan o no los 1492 de MTU. > Pero lo que yo me pregunto es porqué razón no lo hace el router > automáticamente sin decirle nada, ¿acaso no fragmenta los paquetes IP de > tamaño superior transparentemente sin que la máquina origen se entere? pues > anda que no lo he hecho veces en papel... Debería fragmentarlos, pero habría que comprobarlo. No tengo equipo para hacerlo, pero quizás el comparar el resultado de lanzar "traceroute -M want" y "traceroute -M dont" te ayude a ver dónde está el problema. Si no, quizás puedas mirar como funciona "tracepath" y ver si es posible enviar un UDP de 1500 pero que la respuesta sea pequeña, para así tratar de reducir la problemática del MTU sólo a la ida (si no importase la vuelta, la serie "ping", "ping -s 1486" y "ping -s 1500" debería dar la respuesta). > Supongo que al hacer "ifconfig eth0 mtu 1492" estoy obligando a que los > equipos de la LAN envíen tramas de tamaño máximo 1492, pero la cosa es que no > debería ser así, ¿Deber? No es algo necesario en IPv4, pero es una labor social que retira trabajo a todos los equipos que tienen que manejar los fragmentos (y de paso aumenta tu rendimiento visible) y que no está de más aplicar. De hecho, la fragmentación es tan enojosa como para que IPv6 no la soporte. > la máquina de la LAN envía a 1500 porque la red que usa es > una Ethernet, y luego el router (Debian) debería fragmentar la trama sin que > el ordenador local se entere. ¿No es así? Sí, así debería ser. > En caso de que no esté equivocado, ¿qué hay que hacer para habilitar la > fragmentación de paquetes en el router Debian? ¿algún módulo? No creo que el problema sea el ejecutar la fragmentación, sino el trato del paquete fragmentado por tu máquina o por máquinas ajenas. A ver qué descubres. -- Gonzalo HIGUERA DÍAZ <[EMAIL PROTECTED]>