← Alle Beiträge

Das größte AS gibt es nicht

Zwei Wege, eine BGP-Tabelle zu ranken, beide vernünftig, mit null gemeinsamen Einträgen in den Top zwölf

Michel Wijnberg

Jede Sicht auf eine BGP-Tabelle braucht irgendwann eine Liste. In der, die ich gemessen habe, stehen 79.168 ASe, und auf einen Bildschirm passen vielleicht ein Dutzend, also muss irgendetwas entscheiden, welches Dutzend.

Dieses Bedienelement wirkt trivial. Es ist das folgenreichste in der ganzen Ansicht, denn das gewählte Ranking sortiert die Antwort nicht bloß um. Es verändert, welche Netze die Betreiberin für wichtig hält, und zwei vertretbare Entscheidungen erzeugen Listen mit null Gemeinsamkeiten.


Die naheliegende Achse, und warum sie scheitert

Nach der Zahl der Präfixe ranken, die jedes AS originiert. Größtes zuerst. Fast alles macht es so, es ist ein GROUP BY, und es ist auf zwei getrennte Arten falsch.

Es konvergiert nicht.

Nach Origin-Präfixanzahl geranktAbdeckung der Tabelle
Top 128,3 %
Top 1.00052,9 %

Tausend Netze für die Hälfte der Tabelle. Das ist kein Ranking, das ist die Tabelle noch einmal, mit den Zeilen in anderer Reihenfolge. An der Spitze dieser Achse gibt es kein Dutzend, das irgendetwas erklärt, weil die Verteilung praktisch keinen Kopf hat.

Und sie belohnt Deaggregation.

Präfixanzahl misst Ankündigungen, nicht Adressraum, und die beiden hängen nur lose zusammen. Eine Zahl sagt es: Teilen Sie die angekündigten Präfixe jedes Netzes durch die Zahl der zusammenhängenden Adressblöcke, die sie tatsächlich abdecken, und tabellenweit kommt dieser Feed auf 1,64 Präfixe pro Block. Die Top zwölf liegen im Schnitt bei 3,4. Der extremste gemessene Fall, AS18403, kündigt 4.611 Präfixe über 26 Blöcke an, ein Faktor von 177. AS9808 liegt beim 86-Fachen, AS4538 beim 66-Fachen.

Die Rangliste belohnt also, wer seinen Raum am feinsten zerhackt. Ein Netz, das ein sauberes /16 ankündigt, sinkt unter ein Netz, das dasselbe /16 als 256 /24 ankündigt, und das zweite ist wohl der schlechtere Internetbürger. Nach Präfixanzahl zu sortieren heißt, nach Redemenge zu sortieren.

Ranken Sie dieselbe Tabelle stattdessen nach eindeutigem Adressraum (insgesamt 3.121.065.344 Adressen), und die Liste mischt sich nicht. Sie fällt auseinander:

ASRang nach PräfixenRang nach Adressraum
AS1650912
AS9808212
AS8151332
AS12479471
AS75455141
AS398918308

Nummer acht nach Ankündigungen ist Nummer 308 nach Adressraum. Das Netz, das beim Raum tatsächlich Erstes ist, AS749, hält 7,17 % dieser Summe aus 3.133 Präfixen, und AS4134 kommt Dritter mit 729. Das sind Netze, die große Blöcke am Stück ankündigen, also genau das, was man sich wünscht, und die Präfixanzahl begräbt sie.

Eine Falle unterwegs, denn sie zu übersehen ist leicht und lautlos: Das muss eine Vereinigung sein, niemals eine Summe. 2^(32 − Maskenlänge) über überlappende Präfixe zu addieren zählt jedes überdeckende Aggregat doppelt, tabellenweit gemessen 1,269×, und das reicht mehr als aus, um die Reihenfolge zu ändern. Die Präfixe müssen zu überschneidungsfreien Bereichen verschmolzen werden, bevor irgendetwas gerankt oder gezeichnet wird. Wir haben zuerst die summierende Variante ausgeliefert. Sie ist nicht abgestürzt, die Summen sahen plausibel aus, und die erzeugte Reihenfolge war glaubwürdig genug, dass niemand sie hinterfragte, bis eine Review nachsah. Das ist der Fehlermodus, den man bei einer Messung fürchten sollte: nicht eine falsche Antwort, die sich zu erkennen gibt, sondern eine glaubwürdige.


Die Achse, die konvergiert

Stellen Sie eine andere Frage. Nicht “wer kündigt am meisten an”, sondern “wessen Verschwinden würde mich am meisten Erreichbarkeit kosten”. Gierig: Nehmen Sie das AS, das die meisten Origin-ASe erreicht, entfernen Sie diese Origins aus dem Topf und wiederholen Sie es mit dem Rest. Unsere eigenen direkt angebundenen Upstreams sind ausgenommen, sonst werden die ersten Plätze vom Blickpunkt selbst dominiert statt von irgendetwas an der Tabelle.

SchrittASKumulierter Anteil erreichter Origin-ASe
1AS251638 %
2AS757560 %
3AS249782 %
4AS693990 %
5AS122194 %

Fünf Netze erreichen 94 % der von diesem Blickpunkt sichtbaren Origin-ASe. Dieselbe Tabelle brauchte auf der anderen Achse tausend für 53 %.

Das ist die Antwort, die eine Architektin will: Diese fünf sind das Transit-Substrat, auf dem dieser Blickpunkt ruht, und eines davon zu verlieren ist eine andere Klasse von Ereignis als das Netz mit den meisten Präfixen zu verlieren.

Dasselbe Bedienelement auf dem DN42-Feed, umgeschaltet auf die Transit-Spine-Achse. Drei ASe sind benannt und hervorgehoben, und die Formleiste liest sich als Spine 3 bei 96 %
Dasselbe Bedienelement auf dem DN42-Feed, umgeschaltet auf die Transit-Spine-Achse. Drei ASe sind benannt und hervorgehoben, und die Formleiste liest sich als Spine 3 bei 96 %

Das Bild oben ist dasselbe Bedienelement auf einem anderen und viel kleineren Feed, wo die Antwort drei Netze mit 96 % lautet statt fünf mit 94 %. Die Zahl der Einträge ist nicht der Punkt und überträgt sich nicht. Was sich überträgt, ist, dass diese Achse überhaupt einen Kopf hat, und dass die Leiste ihre Abdeckung daneben nennt, statt Sie rätseln zu lassen, ob die Zeilen auf dem Bildschirm der größte Teil der Geschichte sind oder ein Hundertstel davon.

Es braucht eine Einschränkung, und zwar die, die der vorige Beitrag verdient hat. Reichweite wird als Kegel über dem dominanten Baum berechnet: Jedes AS wird seinem schwersten Vorgänger zugeordnet, und der Teilbaum darunter wird aufsummiert. Das ist eine Baumprojektion eines Graphen, von dem ich gerade einen ganzen Artikel lang gezeigt habe, dass er kein Baum ist, und der Fehler ist nicht hypothetisch, er sind die 17,5 % Kantenmasse, die nicht über den schwersten Vorgänger ankommen. Die Zahl ist also eine Baumsumme über einen Nicht-Baum, weshalb das Produkt sie auch so etikettiert, statt sie als Erreichbarkeit auszugeben. Sie taugt zum Ranken und nicht als Abhängigkeitsgarantie.

Zwei Dinge haben mich überzeugt, dass die Zahl solide und nicht bloß Glück war. Eine 1:10-Stichprobe desselben Collectors, jedes zehnte Origin mit all seinen Präfixen, Pfaden und Vorgängern übernommen (11.136 ASe, 7.854 Origins, 106.900 Präfixe), reproduziert die identischen fünf ASe in derselben Reihenfolge bei 34/62/76/86/88 %. Auch der Mechanismus ist kein Rätsel, und er ist der ganze Unterschied zwischen den beiden Achsen. Präfixanzahl fragt, was jedes Netz für sich besitzt: Jedes Präfix gehört zu einem Origin, nichts wird geteilt, also ist das Ranking ein langer Schwanz unabhängiger Beiträge. Transit-Reichweite fragt, was von jedem Netz abhängt, und Abhängigkeiten überlappen stark. Jede Auswahl schluckt das meiste von dem, was die nächste hätte beanspruchen können, weshalb fünf Einträge die Frage erschöpfen und tausend Präfixanzahl-Einträge nicht.


Der Teil, der mich das Bedienelement neu schreiben ließ

Hier der Befund, den ich nicht erwartet hatte. Die beiden Top-zwölf-Listen, aus derselben Tabelle, in derselben Stunde, teilen sich null Einträge.

Nicht “größtenteils verschieden”. Gar keine Überschneidung.

Das ist kein Gleichstandsproblem, und es ist nichts, was ein guter Default löst. Es bedeutet, dass das Bedienelement keine Sortierreihenfolge ist. Es ist ein Fragenwähler, und die beiden Fragen lauten:

  • Wer kündigt die meisten Präfixe an? Antwort: die Netze aus der Deaggregationstabelle oben.
  • Worauf ruht diese Tabelle? Antwort: eine völlig andere Menge, von der keines in der ersten vorkommt.

Beide Antworten sind richtig. Keine davon ist “das größte AS”. Der Ausdruck bezeichnet nichts, weshalb eine Ansicht, die ein einziges Ranking anbietet und es Wichtigkeit nennt, eine Aussage macht, die sie nicht stützen kann.

Also besteht das Bedienelement in Osprey aus zwei ausdrücklich benannten Achsen statt aus einer Sortierrichtung, und der Schwellwert daneben sagt, welche Rolle er gerade spielt: jenseits N falten ist eine Layout-Operation, Top N benennen ist eine Beschriftungsoperation, und das sind zwei verschiedene Dinge, die man mit derselben Zahl tut. Das zu verwechseln war einer der Review-Befunde gegen unseren eigenen Build.


Was das die Leserin kostet

Ein Ranking, das nicht konvergiert, hat im Betriebskontext einen bestimmten Fehlermodus, und es lohnt, ihn zu benennen, weil er nicht offensichtlich ist.

Wenn die Top zwölf 8,3 % abdecken, dann sind die zwölf Zeilen auf dem Bildschirm für die übrigen 91,7 % unrepräsentativ, ohne dass der Bildschirm das signalisiert. Wer daraus schließt, schließt aus einer Stichprobe, die nach einer Eigenschaft ausgewählt wurde, die niemand bewusst gewählt hat. Es sieht aus wie die wichtigen Netze. Es sind die, die in den kleinsten Stücken ankündigen.

Die Transit-Reichweiten-Achse hat die gegenteilige Eigenschaft. Fünf Zeilen für 94 % heißt, der Bildschirm zeigt Ihnen nahezu die ganze Struktur, und was Sie nicht sehen, ist wirklich marginal. Das ist der Unterschied zwischen einer Liste und einer Erklärung.


Die Grenze

Transit-Reichweite wird aus Ihrer Tabelle berechnet, erbt also jede Eigenschaft Ihres Blickpunkts. Sie ist keine Messung der Struktur des Internets. Sie ist eine Messung dessen, was Ihr Feed davon sehen kann, und im nächsten Beitrag geht es darum, wie weit diese beiden Dinge auseinanderliegen.

Sie hängt außerdem davon ab, was Ihre Upstreams Ihnen zu senden beschlossen haben. Ein Pfad, der gefiltert wurde, bevor er Sie erreichte, taucht im Ranking nicht auf, und keine Berechnung holt ihn zurück. Die Reichweitenzahlen sind daher eine Untergrenze der Abhängigkeit: Alles Gelistete ist real, und hinter dem Filter kann Struktur liegen, die es nicht ist.

Das zu sagen kostet nichts, und es ist der Unterschied zwischen einer Zahl, mit der Sie planen können, und einer, die Sie blamieren wird.


Der Punkt

Das Bedienelement, das entscheidet, welche zwölf Zeilen eine Betreiberin sieht, ist kein Darstellungsdetail. Auf dieser Tabelle entscheidet es zwischen zwei disjunkten Antworten, beide vertretbar, von denen eine konvergiert und die andere nicht.

“Das größte AS” klingt, als benenne es eine Tatsache. Es benennt, welche Frage die Standardsortierung zufällig kodiert hat, und die meisten Werkzeuge sagen Ihnen nie, welche das war.

Das ist die Entwurfsregel, um die es in diesem Beitrag eigentlich geht: Ein Bedienelement, das entscheidet, was eine Betreiberin ansieht, muss die Frage offenlegen, die es beantwortet. “Sortieren nach: Wichtigkeit” ist keine Bequemlichkeit. Es ist eine Modellentscheidung, getroffen von dem, der das Dropdown geschrieben hat, im Namen von jemandem, dem nie gesagt wird, dass sie stattgefunden hat.


Als Nächstes: Diese fünf Transitnetze liegen im asiatisch-pazifischen Raum, und das ist keine Tatsache über das Internet. Ihr Backbone ist nicht das des Internets.