Kombination aus Bedienfehler und Cisco-Bug legte beinahe das Internet lahm

Ein unvorsichtiger Admin schickte versehentlich Routing-Announcements ins Netz, die einen bis dahin unbekannten Fehler in Cisco-IOS auslösten.

In Pocket speichern vorlesen Druckansicht 285 Kommentare lesen
Lesezeit: 2 Min.

Wie heise Security berichtete, verursachte ein tschechischer Provider kürzlich weltweite Routing-Probleme im Internet. Wie sich im Nachhinein herausstellte, beruhte das Ganze auf einer so skurrilen Verkettung eines Bedienfehlers mit Fehlern in Router-Software, dass man es fast nicht glauben mag.

Es ist durchaus üblich, einen unerwünschten Pfad zum eigenen Netz künstlich zu verlängern, indem man seine eigene Netzwerknummer mehrfach anhängt – typischerweise drei bis vier Mal. Ein Cisco-Admin ruft dazu etwas wie set as-path prepend 47868 47868 47868 47868 auf. Der wahrscheinlich Cisco-geschulte Admin des tschechischen Providers hatte jedoch anscheinend einen Mikrotik-Router vor sich. Und der kennt einen ähnlichen Befehl, nämlich bgp-prepend. Nur dass hier die Entwickler laut Handbuch den Parameter als achtbittige Anzahl interpretieren, wie oft die eigene AS-Nummer angehängt werden soll.

Softwarefehler Nummer eins war, dass der Mikrotik-Router den Überlauf beim Aufruf von bgp-prepend 47868 offenbar nicht abfing, sondern lediglich das niederwertige Byte der Zahl nahm und den Befehl also mit 47868 modulo 256 gleich 252 zusätzlichen Hops ausführte. Als sich diese neue Route dann im Internet ausbreitete, löste sie dort einen weiteren, bis dato unbekannten Fehler in Cisco IOS aus – und zwar massenhaft.

Wie Rodney Dunn von Cisco erklärt, kommt es zu Problemen, wenn ein Cisco-Router durch das Einfügen zusätzlicher Routing-Stationen die Grenze von 255 Hops überschreitet. Das führt dann dazu, dass der Router ungültige BGP-Informationen verschickt und somit einen Abbruch der BGP-Verbindung provoziert. Dieser Fehler betrifft offenbar alle Cisco-Router. Es sind also nicht, wie zunächst angenommen, nur die veralteten und an ihrer Lastgrenze operierenden Systeme an den Routing-Problemen schuld.

Im Übrigen war es offenbar nur eine Frage der Zeit, bis jemand auf diesen Cisco-Bug stieß. Im Forum der North American Network Operators Group berichtet Giuliano Peritore, dass er als Folge des gleichen Mikrotik-Problems bereits versehentlich eine Route mit 176 Anhängseln auf den Weg geschickt hatte. Ein BGP-Monitor hat im Februar bereits eine Reihe weiterer überlanger Routing-Einträge beobachtet.

Bis Cisco ein Update veröffentlicht, das den Fehler behebt, können Admins die Zahl der erlaubten Hops mit dem Befehl bgp maxas-limit begrenzen. Cisco-Experte Dunn schlägt einen Maximalwert von 21 vor, der keine negativen Begleiterscheinungen haben sollte. (ju)