[eside-ghost] Flag "Don't Fragment" de IP
Pablo Orduña
pablo en ordunya.com
Vie Mayo 16 20:27:51 CEST 2008
Yeup!
Estamos teniendo una rayada enviando por tftp un archivo (enano,
incluso de 1 byte :-D) desde linux (tanto ubuntu hardy como debian
etch).
El tema es que el servidor de tftp es un microntrolador PIC que
implementa un servidor tftp de serie. Hemos probado tanto desde linux
como desde windows (incluso en la misma máquina) y desde windows
funciona "siempre" y desde linux "nunca". El problema que da desde
linux es que da un timeout porque el servidor no contesta.
Hemos capturado los paquetes que se envían desde ambos, y hemos visto
que desde linux envía el paquete "write request" de TFTP, y a nivel
IP, tiene el flag DF (Don't Fragment) activado. Sin embargo, ese mismo
paquete enviado por el cliente de windows no lo tiene activado. Hemos
probado a coger el paquete enviado desde linux, modificar únicamente
ese flag, y enviarlo a través de un raw socket, y el servidor sí que
contesta.
Hemos probado con IPv6 desactivado y tal, pero finalmente hemos leído
que en linux todos los paquetes UDP (que es lo que usa TFTP) por
defecto lo tienen activado, ¿alguien sabe cómo podemos desactivarlo?
En Windows, con una captura entera de todo el envío del fichero en
ningún momento ni cliente ni servidor parecen tener que activar el bit
de marras.
Bfff... Nunca pensamos que un mísero bit pudiese dar tanto la lata... xDDDD
--
Pablo
Más información sobre la lista de distribución eside-ghost