- Le serveur de messagerie du département de statistique d’une université américaine a subi un phénomène étrange : il ne pouvait pas envoyer d’e-mails à plus de 500 miles de distance
- L’enquête a révélé qu’au cours d’une mise à jour de SunOS, la version de Sendmail avait été rétrogradée, rendant le fichier de configuration incompatible
- Comme Sendmail 5 ne reconnaissait pas les noms d’options longs du fichier de configuration prévu pour Sendmail 8, plusieurs valeurs par défaut ont été fixées à 0
- Parmi elles, le délai d’expiration de connexion SMTP était réglé à 0, ce qui faisait échouer toutes les connexions distantes prenant plus d’environ 3 millisecondes
- La latence réseau augmentant proportionnellement à la distance, cela a fini par bloquer l’envoi d’e-mails vers des serveurs situés à plus de 500 miles
Début du problème
- Le département de statistique a signalé qu’« il était impossible d’envoyer des e-mails à plus de 500 miles »
- Jusqu’à 520 miles, cela fonctionnait, mais au-delà l’envoi échouait
- Le directeur du département a même mobilisé un géostatisticien pour dresser une carte du rayon dans lequel les e-mails arrivaient, confirmant un rayon d’environ 500 miles
- L’administrateur système a reproduit le problème en envoyant des messages de test vers plusieurs régions
- Succès vers Princeton, à 400 miles, mais échec vers Memphis, à 600 miles
- New York (420 miles) fonctionnait, tandis que Providence (580 miles) échouait
Analyse de la cause
- Le fichier de configuration sendmail.cf du serveur paraissait normal ; il s’agissait d’un fichier conçu par son auteur pour Sendmail 8
- Mais en vérifiant la bannière du port SMTP, on a découvert que c’était SunOS Sendmail 5 qui tournait
- Lors du correctif appliqué au serveur, le système d’exploitation avait été mis à niveau et Sendmail avait été rétrogradé de la version 8 à la version 5
- L’ancien fichier de configuration était resté en place, mais Sendmail 5 ne reconnaissait pas les noms d’options longs de Sendmail 8
- Les options non reconnues ont été ignorées, et leurs valeurs ont été réinitialisées à 0
- En particulier, le timeout de connexion au serveur SMTP distant s’est retrouvé à 0, interrompant les tentatives de connexion après environ 3 millisecondes
Relation entre distance et vitesse
- À l’époque, le réseau du campus reposait sur une architecture 100 % commutée, avec quasiment aucune latence due aux routeurs
- Le temps de connexion était donc essentiellement déterminé par la distance physique (vitesse de la lumière)
- Les calculs montraient que 3 millisecondes correspondaient à environ 558 miles
- Ce résultat coïncidait avec le phénomène observé : « 500 miles, ou un peu plus »
Conclusion
- La cause profonde du problème était une erreur d’analyse de configuration due à un décalage de version de Sendmail
- Avec un timeout réglé à 0, un phénomène réseau donnant l’impression d’une limite de distance physique est apparu
- Cette histoire est restée comme une anecdote classique illustrant l’importance de la compatibilité des versions et de la validation des configurations en administration système
Aucun commentaire pour le moment.