Nos ha pasado que al enviar emails grandes desde un equipo con CentOS Linux usando smtp-cli, el servidor SMTP terminaba dando timeout después de enviar el DATA.
Al ser una instalación que se está usando idéntica en muchos clientes, el problema era muy complicado porque con idénticas configuraciones los demás funcionaban bien. Además, el problema sólo pasaba con emails grandes, las pruebas de tamaño pequeño se enviaban sin problemas.
Tras probar todo tipo de cosas durante horas, finalmente hemos descubierto que se trata del parámetro MTU (Maximum Transfer Unit), configurado en la interface de red. Por defecto, el MTU de las interfaces de red es 1500 en Linux, como puede verse con:
ifconfig eth0
eth0 Link encap:Ethernet HWaddr f4:ce:47:99:83:84
inet addr:11.22.33.44 Bcast:11.22.33.255 Mask:255.255.255.192
inet6 addr: fe80::f6ce:47ff:fe99:8384/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:30132418 errors:0 dropped:0 overruns:0 frame:0
TX packets:6638761 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2552086732 (2.3 GiB) TX bytes:1094949032 (1.0 GiB)
Interrupt:17
Pero las ADSL que usan PPPoE tienen un MTU de 1492 bytes, lo que provoca la pérdida de paquetes cuando hay mucha información.
Para arreglarlo, basta con ejecutar este comando (cambiando ath0 por tu interface de red si es distinta):
ifconfig eth0 mtu 1492
Si funciona así, para fijarlo puedes editar el archivo /etc/network/interfaces y añadir debajo de los datos de la interface el parámetro, por ejemplo:
auto eth1
iface eth1 inet static
address 84.18.57.22
netmask 255.255.255.0
network 84.18.57.0
broadcast 84.18.57.255
gateway 84.18.57.254
mtu 1492
Deja una respuesta