2 Punkte von GN⁺ 2023-09-20 | 1 Kommentare | Auf WhatsApp teilen
  • Auf dem Mailserver eines Universitätsinstituts konnten ab einem bestimmten Zeitpunkt keine E-Mails mehr an Ziele gesendet werden, die weiter als etwa 500–520 Meilen entfernt waren, und das Problem ließ sich anhand eines geografischen Radius reproduzieren
  • Der Institutsleiter sammelte über mehrere Tage Daten und ließ sie von einem Geostatistiker analysieren, der den erreichbaren Radius sowie Ausnahmen innerhalb dieses Radius auf einer Karte eintrug
  • Tests des Administrators zeigten, dass aus dem Research Triangle in North Carolina Richmond, Atlanta, Washington, Princeton und New York erreichbar waren, Memphis, Boston, Detroit und Providence jedoch nicht — damit wurde klar, dass nicht der Standort des Empfängers, sondern der Standort des Mailservers ausschlaggebend war
  • Ursache war, dass bei einem Server-Patch SunOS aktualisiert wurde und es dabei faktisch zu einem Downgrade von Sendmail 8 auf Sendmail 5 kam; die langen Konfigurationsnamen aus der bestehenden sendmail.cf für Sendmail 8 wurden von Sendmail 5 ignoriert
  • Dadurch wurde der Verbindungs-Timeout auf 0 gesetzt; auf der betreffenden Maschine wurde die Verbindung nach etwa 3 Millisekunden abgebrochen, was laut units zu einem beobachteten Wert von ungefähr 559 Meilen passte

Meldung: „E-Mails gehen nicht weiter als 500 Meilen“

  • Beim Betrieb des Campus-E-Mail-Systems meldete sich der Leiter des Statistik-Instituts mit dem Hinweis, es gebe „ein Problem beim Versenden von E-Mails außerhalb des Instituts“
  • Der Kern des Problems war, dass sich von dort aus keine E-Mails an Orte senden ließen, die weiter als 500 Meilen entfernt waren; der Institutsleiter ergänzte, die tatsächliche Grenze liege „etwas weiter, bei etwa 520 Meilen
  • Der Administrator antwortete, dass E-Mail normalerweise nicht auf diese Weise funktioniere, aber der Institutsleiter hatte sich erst gemeldet, nachdem er über mehrere Tage ausreichend Daten gesammelt hatte
  • Das Statistik-Institut ließ die Sache von einem Geostatistiker prüfen, der eine Karte erstellte, auf der der Bereich markiert war, in den E-Mails gesendet werden konnten — ein Radius etwas größer als 500 Meilen
    • Selbst innerhalb dieses Radius gab es Ziele, die nicht oder nur sporadisch erreichbar waren
    • Außerhalb des Radius wurden E-Mails niemals zugestellt
  • Zur gleichen Zeit hatte ein Consultant den Server gepatcht und neu gestartet, erklärte jedoch, das Mailsystem nicht angerührt zu haben

Reproduktionstest und geografische Grenze

  • Der Administrator meldete sich auf dem Institutsserver an und verschickte Testmails; das Problem ließ sich tatsächlich reproduzieren
  • Der Standort war damals das Research Triangle in North Carolina, und nahe Ziele funktionierten wie erwartet
    • Eine Testmail an das eigene Konto wurde korrekt zugestellt
    • Auch E-Mails nach Richmond, Atlanta und Washington waren erfolgreich
    • Der Test nach Princeton in rund 400 Meilen Entfernung bestand ebenfalls
  • Bei weiter entfernten Zielen traten durchgehend Fehlschläge auf
    • Memphis, etwa 600 Meilen, fehlgeschlagen
    • Boston fehlgeschlagen
    • Detroit fehlgeschlagen
    • New York, etwa 420 Meilen, erfolgreich
    • Providence, etwa 580 Meilen, fehlgeschlagen
  • Eine E-Mail an das Konto eines Freundes in North Carolina schlug fehl, weil dessen ISP in Seattle saß
    • Damit war klar, dass das Problem nicht mit dem tatsächlichen Aufenthaltsort der Person zusammenhing, sondern mit der geografischen Position des Mailservers

Eine Sendmail-Konfiguration, die normal aussah

  • Die Datei sendmail.cf sah größtenteils unauffällig aus und entsprach der Datei, die der Administrator früher selbst erstellt hatte
  • Der Administrator war sicher, nie eine Option wie FAIL_MAIL_OVER_500_MILES aktiviert zu haben
  • Bei einer Verbindung zum SMTP-Port per telnet gab der Server einen SunOS-Sendmail-Banner zurück
  • Sun lieferte damals Sendmail 5 mit dem Betriebssystem aus, obwohl Sendmail 8 bereits ausgereift war
  • Der Administrator hatte seine Systeme auf Sendmail 8 standardisiert und dafür eine sendmail.cf geschrieben, die die langen, selbsterklärenden Options- und Variablennamen von Sendmail 8 verwendete
    • Sendmail 5 nutzte stattdessen ältere, kryptische, stark satzzeichenbasierte Konfigurationscodes

Ein Upgrade, das ein Downgrade verursachte

  • Beim „Patchen“ des Servers erhöhte der Consultant die SunOS-Version, wodurch Sendmail auf Sendmail 5 zurückfiel
  • Das Betriebssystem-Upgrade ließ die bestehende sendmail.cf unangetastet, aber sie passte nun nicht mehr zur tatsächlich laufenden Sendmail-Version
  • Die von Sun ausgelieferte Sendmail-5-Version konnte viele Regeln aus einer sendmail.cf für Sendmail 8 weiterhin verarbeiten
    • Die meisten Regeln hatten sich damals noch nicht stark verändert
  • Das Problem betraf die langen Konfigurationsoptionen von Sendmail 8, die Sendmail 5 als Müll behandelte und übersprang
  • In das Sendmail-Binary waren für diese Optionen meist keine Standardwerte einkompiliert; da auch in der Konfigurationsdatei keine gültigen Werte gefunden wurden, landeten sie effektiv bei 0

3 Millisekunden Timeout und 558 Meilen

  • Einer der auf 0 gesetzten Werte war der Verbindungs-Timeout beim Aufbau einer Verbindung zu einem entfernten SMTP-Server
  • Experimente zeigten, dass auf der betreffenden Maschine und unter normaler Last ein Timeout von 0 einen connect-Aufruf nach etwas mehr als 3 Millisekunden abbrach
  • Das Campus-Netz war damals vollständig geswitcht
    • Ausgehende Pakete erfuhren keine Router-Verzögerung, bis sie den POP erreichten und dem Router auf der anderen Seite begegneten
    • Bei Verbindungen zu wenig ausgelasteten entfernten Hosts in nahen Netzen wurde die Verbindungszeit stärker von der durch die Lichtgeschwindigkeit bedingten Entfernung beeinflusst als von zusätzlichen Router-Verzögerungen
  • Als der Administrator in units 3 millilightseconds in miles umrechnete, erhielt er 558.84719 Meilen
  • Damit passte die Beobachtung des Institutsleiters — „500 Meilen, oder etwas mehr“ — erstaunlich gut zum berechneten Ergebnis

1 Kommentare

 
GN⁺ 2023-09-20
Hacker-News-Kommentare
  • Als ich 1998 bei einer kleinen australischen Firma im IT-Support arbeitete, rief ein Mitarbeiter aus einer Außenstelle an und sagte, „der Bildschirmschoner sei vom Monitor gefallen, habe eine Taste auf der Tastatur gedrückt und das Terminal gesperrt“
    Zuerst dachte ich, das könne nicht stimmen, aber wie sich herausstellte, meinte er mit „Bildschirmschoner“ einen damals üblichen physischen Blendschutzfilter für CRTs; der war heruntergefallen und hatte Scroll Lock gedrückt gehalten
    https://dylbs6e8mhm2w.cloudfront.net/productimages/500x500/E...

  • Ich mag solche Geschichten. Es gibt diesen Moment, in dem man erkennt, dass ein Phänomen, von dem man sicher war, es könne unmöglich auftreten, tatsächlich durch physikalische Gesetze wie die Lichtgeschwindigkeit verursacht wird
    In einem meiner ersten Jobs hatte ich ein Problem mit einem CRT-Monitor, der leicht flimmerte; selbst nachdem Monitor, Kabel, Stromkabel und Computer ausgetauscht waren, blieb es bestehen
    Am Ende stellten wir Computer und Monitor auf einen Rollwagen und schoben sie auf den Flur, und das Problem verschwand. Die Ursache war eine mangelhafte elektrische Abschirmung in diesem Büro

    • Ein Commodore 64 fing an, von selbst zu „tippen“, und wurde zweimal zur Reparatur geschickt, funktionierte in der Werkstatt aber immer einwandfrei
      Später stellte sich heraus, dass ein größerer Fernseher angeschafft und zu nah aufgestellt worden war, wodurch sich statische Elektrizität aufbaute und diesen Effekt verursachte. Bis er in der Werkstatt ankam, war er offenbar ausreichend entladen und lief eine Weile normal
    • Ich erinnere mich an einen „verfluchten“ Nutzer, dem ich Mitte der 90er half
      Wir hatten ihm einen Computer verkauft, aber er bekam bei der Nutzung Bluescreens; wenn wir ihn zum Testen mitnahmen, gab es keinerlei Probleme, und auch als wir ihn im Büro 30 Minuten lang gemeinsam benutzten, war alles in Ordnung
      Doch in dem Moment, in dem diese Person die Maus berührte, zeigte der Computer einen Bluescreen an; ein Austausch der Maus ließ das Problem verschwinden
    • In einem Labor hatte jeder Computer einen Spannungsstabilisator, deren Qualität so schlecht war, dass sie vermutlich eher schadeten
      Wenn jemand einen Stabilisator einschaltete, verzerrten und flimmerten die CRT-Monitore in der Nähe kurz, und die Farben wurden schlechter. Die Plätze an der Wand waren weniger betroffen, aber die Kopfschmerzen waren schlimm; ich hielt es in dieser Firma nur sechs Monate aus
    • Das erinnert an den „magischen“ Schalter des MIT AI Lab: http://www.catb.org/jargon/html/magic-story.html
  • Das Beste an dieser Geschichte ist, dass der Berater, der den Server gepatcht hat, auf Hacker News ist
    Er hat seinen Teil hier in einem Kommentar beschrieben: https://news.ycombinator.com/item?id=23775404

    • Das hatte ich vergessen. Der relevante Teil dieses Threads beginnt hier: https://news.ycombinator.com/item?id=23777700
      Für alle, die es interessieren könnte, habe ich es auch in /highlights aufgenommen: https://news.ycombinator.com/highlights
    • Im Text heißt es, der Berater habe den Server gepatcht und neu gestartet, aber das Mailsystem nicht angerührt; im Kommentar steht dagegen: „Da ein Neuaufsetzen und anschließendes Neuinstallieren nicht akzeptiert wurde, habe ich natürlich ein sendmail-Update gemacht“
      Vermutlich ist das die Stelle, an der „die Geschichte leicht verändert wurde, um die Schuldigen zu schützen“
  • Alle paar Jahre taucht diese Geschichte wieder auf, und jedes Mal bringt sie mich zum Lächeln

    • Mir fällt dazu immer auch die Geschichte ein, dass das Auto nicht anspringt, nachdem man Vanilleeis gekauft hat
    • Ich glaube, diese Geschichte wäre besser gewesen, wenn sie die tatsächlichen Zahlen beibehalten hätte. Es wirkt, als seien später erfundene Zahlen ergänzt worden; vielleicht wurden sie nicht notiert oder die echten Zahlen vergessen
      Die 3 Millilichtsekunden am Ende können nicht stimmen, weil das die einfache Strecke ist
    • Wahrscheinlich könnte jemand einfach jedes Jahr eine Erinnerung setzen, das hier posten und Karma sammeln. Vielleicht macht das sogar schon jemand
    • Offenbar ist wieder der Moment gekommen, diese Geschichte der nächsten Generation zu erzählen
  • Als ich 2007 bei einem großen ISP als Second-Level-Support-Techniker für mehrere Dienste arbeitete, war ADSL noch weit verbreitet und hatte als kupferbasierte Technik eine maximale Entfernung, über die es zuverlässig funktionieren konnte
    Einige Kunden nutzten einen speziellen Tarif, der diese Entfernung um etwa 2–3 km erweitern sollte, aber in der Praxis war das ziemlich instabil und reichte gerade so für ein bisschen Web-Browsing
    In einem Sommer meldete ein Kunde, dass sein IPTV tagsüber seit fast einem Monat ausfiel und das Internet zeitweise gletscherlangsam war. Messungen zeigten, dass er sehr weit von der nächsten Vermittlungsstelle entfernt war, und wir kamen zu dem Schluss, dass sich die Leitung an heißen Tagen ausdehnte, dadurch die Entfernungsgrenze knapp überschritt und instabil wurde
    Helfen konnten wir kaum, und das Kupfernetz vermisse ich nicht

    • Was wäre gewesen, wenn man die Leitung vom Telefonmast zum Haus besser isoliert hätte?
  • Vor etwa 15 bis 20 Jahren, als ich in einer Reparaturwerkstatt arbeitete, brachte jemand einen Fernseher vorbei, der angeblich jeden Tag um 17 Uhr auf Spanisch umschaltete
    Er sah terrestrisches Fernsehen, und in den TV-Einstellungen gab es nur die Menüsprache, aber tatsächlich wechselte der Ton des Fernsehers um 17 Uhr auf Spanisch. Als wir ein paar weitere Sender prüften, waren bis auf ein oder zwei alle auf Spanisch
    Es stellte sich heraus, dass einige Sender Audio in mehreren Sprachen ausstrahlen und manche Fernseher eine bevorzugte Sprache einstellen können. Leider stammte der gebrauchte Fernseher, den er gekauft hatte, aus einem spanischsprachigen Land, und es gab keine Möglichkeit, diese Voreinstellung zu ändern

    • Mein Bluetooth-Lautsprecher ist nach ein paar Jahren Nutzung auf Chinesisch umgesprungen. Ich weiß weder, wie das passiert ist, noch wie ich es zurückstelle, und in der Anleitung steht auch nichts dazu
      Vor ein paar Tagen habe ich einen in China hergestellten und gekauften Saugroboter ins Haus geholt; direkt beim ersten Einschalten fuhr er gegen den Server und zog den Stecker
      Daher kann ich auch einen staatlich unterstützten Cyberangriff nicht ausschließen
    • Was war wohl die Ursache dafür, dass es um 17 Uhr umschaltete?
  • Ein Paradebeispiel, quasi die Mutter aller leaky abstractions
    In dem Moment, in dem man eine E-Mail senden wollte, trat das tatsächliche unterliegende Übertragungsprotokoll des relativistischen Universums zutage

  • Ausgerechnet heute Mittag habe ich über Sendmail gesprochen, und ich kann versichern, dass das ziemlich selten vorkommt
    Ich erinnerte mich daran, wie ich 1991 oder 1992 zum ersten Mal Sendmail einrichtete und mir mit dem bat book eine Woche lang fast die Haare raufte, bis die erste Konfiguration endlich lief
    Später verstand ich die m4-Konfiguration und lernte sie bis zu einem gewissen Grad zu schätzen, aber nachdem ich Mitte der 90er zu qmail und postfix gewechselt war, blickte ich nie wieder zurück

  • Solche Beiträge sollten wohl nicht als 2002, sondern als 1997 gekennzeichnet werden. Allerdings scheint Trey selbst sich auch nicht daran zu erinnern: https://www.ibiblio.org/harris/500milemail-faq.html

  • Verwandte Beiträge. Gibt es noch mehr?
    The case of the 500-mile email (2002) - https://news.ycombinator.com/item?id=29213064 - Nov 2021 (93 Kommentare)
    We can't send email more than 500 miles (2002) - https://news.ycombinator.com/item?id=23775404 - Juli 2020 (135 Kommentare)
    500 miles (2002) - https://news.ycombinator.com/item?id=18675375 - Dez 2018 (32 Kommentare)
    The case of the 500-mile email (2002) - https://news.ycombinator.com/item?id=14676835 - Juli 2017 (56 Kommentare)
    The 500-mile email (2002) - https://news.ycombinator.com/item?id=9338708 - April 2015 (139 Kommentare)
    The case of the 500-mile email - https://news.ycombinator.com/item?id=2701063 - Juni 2011 (18 Kommentare)
    The case of the 500-mile email - https://news.ycombinator.com/item?id=1293652 - April 2010 (24 Kommentare)
    The case of the 500-mile email - https://news.ycombinator.com/item?id=385068 - Dez 2008 (28 Kommentare)
    The case of the 500-mile email - https://news.ycombinator.com/item?id=123489 - Feb 2008 (7 Kommentare)

    • Werden Einreichungen mit demselben Link nach etwa einem Jahr nicht mehr miteinander „verknüpft“?
    • Gibt es ein Skript, das solche Arbeit übernimmt?