- En el servidor de correo del departamento de estadística de una universidad de EE. UU. ocurrió un fenómeno extraño: no podía enviar correos a destinos ubicados a más de 500 millas
- La investigación reveló que, durante una actualización de SunOS, la versión de Sendmail fue degradada, y el archivo de configuración dejó de ser compatible
- Como Sendmail 5 no podía reconocer los nombres largos de opciones del archivo de configuración de Sendmail 8, varios valores predeterminados quedaron en 0
- Entre ellos, el timeout de conexión SMTP quedó establecido en 0, por lo que todas las conexiones remotas que tomaban más de unos 3 milisegundos fallaban
- Como la latencia de red aumentaba en proporción a la distancia, el resultado fue que se bloqueaba el envío de correo a servidores ubicados a más de 500 millas
El inicio del problema
- En el departamento de estadística se recibió un reporte: “no se puede enviar correo a lugares que estén a más de 500 millas”
- Hasta 520 millas funcionaba, pero más allá fallaba
- El director del departamento incluso recurrió a un geoestadístico para elaborar un mapa del radio de alcance del correo, y se confirmó que el radio era de unas 500 millas
- El administrador de sistemas reprodujo el problema enviando correos de prueba a varias regiones
- Princeton, a 400 millas, funcionaba; Memphis, a 600 millas, fallaba
- New York (420 millas) funcionaba; Providence (580 millas) fallaba
Análisis de la causa
- El archivo de configuración
sendmail.cf del servidor parecía estar bien, y de hecho había sido creado por su autor para Sendmail 8
- Sin embargo, al revisar el banner del puerto SMTP, se descubrió que estaba corriendo SunOS Sendmail 5
- Durante el proceso de aplicar parches al servidor, el sistema operativo se actualizó y Sendmail fue degradado de la versión 8 a la 5
- El archivo de configuración existente permaneció igual, pero Sendmail 5 no podía interpretar los nombres largos de opciones de Sendmail 8
- Las opciones no reconocidas fueron ignoradas, y los valores predeterminados de esos campos se reiniciaron a 0
- En particular, el valor de timeout para conectarse a servidores SMTP remotos quedó en 0, así que los intentos de conexión se abortaban tras unos 3 milisegundos
La relación entre distancia y velocidad
- En ese momento, la red del campus tenía una arquitectura 100% basada en switches, con casi nada de latencia introducida por routers
- Por eso, el tiempo de conexión estaba determinado principalmente por la distancia física (la velocidad de la luz)
- Según el cálculo, 3 milisegundos correspondían a una distancia de aproximadamente 558 millas
- Eso coincidía con el comportamiento reportado de “500 millas o apenas un poco más”
Conclusión
- La causa raíz del problema fue un error de análisis de configuración debido a una incompatibilidad de versiones de Sendmail
- Al quedar el timeout en 0, apareció un fenómeno de red que daba la impresión de existir un límite físico de distancia
- El caso quedó como una anécdota clásica que muestra la importancia de la compatibilidad de versiones y de validar la configuración en la administración de sistemas
1 comentarios
Comentarios de Hacker News
A mediados de los 90, había un problema extraño: las PCs de la oficina no arrancaban por la mañana
Resultó que cada invierno un ratoncito entraba por la ranura del disco duro para mantenerse caliente y orinaba, provocando un cortocircuito en los circuitos
Después de que la computadora llevaba un rato encendida y se calentaba, se secaba y entonces sí podía arrancar
Más tarde compraron una bandeja vacía para cubrir el hueco y el problema desapareció por completo
Más allá de si pasó de verdad o no, es fascinante el proceso de ir rastreando este tipo de problemas
Enlace relacionado
Una vez incluso tuve un murciélago colgando de mi cable CAT
Si dejas la ventana abierta por la noche, a lo mejor hasta afecta el ancho de banda
Como desarrollador, hay que estar preparado hasta para situaciones absurdas como un error de "Frog on Keyboard"
Artículo relacionado
Siento que en el texto original no se valora lo suficiente que el presidente reunió la información necesaria para resolver el problema
Sin esos datos, el autor habría pasado mucho tiempo buscando un problema de servidor totalmente equivocado
Si solo dices “el email no funciona así”, la próxima vez nadie te va a dar datos o va a empezar a hacer suposiciones erróneas
Este texto es un post clásico que se ha vuelto popular una y otra vez en HN durante muchos años
Volvió a aparecer en distintos momentos, como 2023, 2020 y 2015
Versión de 2023, versión de 2020, versión de 2015
Qué bueno no habérmelo perdido esta vez. Te deja la lección de no perder la humildad
En HN, después de como un año, un repost está bien, y está bueno que los clásicos vuelvan a aparecer para los usuarios nuevos
Ver HN FAQ
También reuní enlaces a varias versiones relacionadas
En ese momento quizá podamos reírnos depurando errores de IA
Anoche puse un episodio de TV en VLC y como a los 30 segundos se apagó la energía
Pasó tres veces justo en el mismo punto, así que me pareció rarísimo. Pensé si el video mismo podría ser la causa
Me acordé del caso en que un video de Janet Jackson dañaba discos duros
Además, el episodio era Black Mirror S7E01, así que se sintió todavía más extraño
Enlace de referencia
Si es lo segundo, es muy probable que sea un problema térmico
La carga de decodificación varía según el códec, así que cierta parte puede sobrecalentar el sistema
Recomiendo probar reproduciendo desde otra posición o saltándote ese segmento
Conviene cambiar la fuente o convertir el códec
O también podría ser un archivo modificado con mala intención, así que habría que revisar su origen
Esta historia se siente como una versión hacker de la anécdota de comprobación de velocidad del SR-71 Blackbird
Es uno de esos clásicos que vuelves a leer cada vez que lo ves
Enlace relacionado
Me recordó el clásico de “el auto arranca si compras helado de vainilla, pero no si compras de fresa”
Enlace a la historia
Enlace relacionado
Historias como “Stalking the Wiley Hacker” fueron las que me llevaron al mundo de la computación
Pero me da pena que, después de trabajar en la industria, se haya perdido parte de aquella diversión pura
Enlace al original
Dio una charla en una asociación de quilting, y aunque el tema no tenía nada que ver, era una persona realmente apasionada y encantadora
Quedé totalmente cautivado por su energía y curiosidad
Me hizo pensar en el chiste de “vamos a intentar enviar el correo 500 millas más lejos”
Me dio risa la frase “You had me at EHLO”
En esa época me sabía todos los comandos de memoria, pero ahora ya no estoy tan seguro
Hace tiempo tuve una computadora que se apagaba cuando yo me levantaba del asiento
Resultó que el problema era el piso de madera flojo de un edificio viejo
La vibración al ponerme de pie hacía cortocircuito en una fuente de poder averiada
Leí el texto y enseguida ejecuté
apt install units. Qué herramienta tan buenaSi usas el comando
units, el resultado del cálculo sale al revésEjemplo: 1 mile → 1.609 km está bien, pero si haces 1 unit → 1.609 units, el cálculo sale invertido