← 記事一覧

最大の AS は存在しない

BGP テーブルの順位づけには二通りある。どちらも筋が通っていて、上位 12 位に共通の顔は一つもない。

Michel Wijnberg

BGP テーブルのビューは、どこかで必ずリストを必要とします。私が測ったテーブルには 79,168 の AS があり、画面に収まるのはせいぜい十数個です。つまり、どの十数個かを何かが決めなければ なりません。

このコントロールは些細に見えます。ビュー全体でいちばん影響の大きいものです。選んだ順位づけ は答えを並べ替えるだけでは済まないからです。それは運用者がどのネットワークを重要だと信じる かを変え、しかも擁護可能な二つの選択が 共通項ゼロ のリストを生みます。


当たり前の軸と、それが失敗する理由

各 AS が起点とするプレフィックスの数で並べる。多い順。ほとんどのツールがそうしており、 GROUP BY 一つで済み、そして二つの別々の意味で誤りです。

収束しません。

起点プレフィックス数で順位づけテーブルの被覆率
上位 128.3%
上位 1,00052.9%

テーブルの半分を説明するのに 1,000 のネットワーク。これは順位づけではなく、行の並びを変えた だけのテーブルです。この軸の先頭に、何かを説明する十数個は存在しません。分布に頭と呼べるもの がないからです。

しかも分割広告に報酬を与えます。

プレフィックス数が測っているのは広告であって、アドレス空間ではありません。両者の関係は緩い ものです。数字が一つでそれを示します。各ネットワークの広告プレフィックス数を、それが実際に 覆う連続アドレスブロックの数で割ると、このフィードのテーブル全体平均は 1 ブロックあたり 1.64 プレフィックス です。上位 12 の平均は 3.4。測定された最も極端な例、AS18403 は 26 ブロックにわたって 4,611 プレフィックス、実に 177 倍 です。AS9808 は 86 倍、 AS4538 は 66 倍。

つまりこのランキングは、自分の空間を最も細かく刻んだ者に報います。きれいな /16 を一つ広告する ネットワークは、同じ /16 を 256 個の /24 として広告するネットワークの下に沈み、後者のほうが インターネット市民としては議論の余地なく劣ります。プレフィックス数で並べるとは、発話量で 並べることです。

同じテーブルを 重複しないアドレス空間 で並べ替えると (合計 3,121,065,344 アドレス)、 リストはシャッフルされません。分解します。

ASプレフィックス順位アドレス空間順位
AS1650912
AS9808212
AS8151332
AS12479471
AS75455141
AS398918308

広告数で 8 位が、アドレス空間では 308 位。一方、空間で実際に 1 位のネットワーク AS749 は 3,133 プレフィックスでその総量の 7.17% を保持し、AS4134 は 729 で 3 位に入ります。 大きなブロックを丸ごと広告しているネットワーク、つまり望ましいあり方であり、プレフィックス数 はそれを埋もれさせます。

途中に罠が一つ。間違えやすく、しかも静かだからです。これは 和集合 でなければならず、 決して 総和 ではありません。重なり合うプレフィックスにわたって 2^(32 − マスク長) を 足し合わせると、覆っている集約分をすべて二重に数えることになり、テーブル全体で 1.269 倍 と測定されました。順序を変えるには十分すぎる差です。順位づけや描画の前に、プレフィックスを 重なりのない範囲へ併合しなければなりません。私たちは最初に総和版を出荷しました。落ちません でしたし、合計はもっともらしく、生成された順序も十分に信じられるもので、レビューが見にいく まで誰も疑いませんでした。計測において恐れるべき故障はこれです。名乗りを上げる誤答ではなく、 信じられる答えのほうです。


収束する軸

別の問いを立てます。「誰が最も多く広告しているか」ではなく「誰が消えたら到達性を最も失うか」。 貪欲に、最も多くのオリジン AS に届く AS を選び、そのオリジンを母集団から取り除き、残りに対して 繰り返します。自分が直接つながっている上流は除外します。そうしないと、最初の数手はテーブルに ついての何かではなく、視点そのものに支配されてしまうからです。

手AS到達したオリジン AS の累積シェア
1AS251638%
2AS757560%
3AS249782%
4AS693990%
5AS122194%

5 つのネットワークが、この視点から見えるオリジン AS の 94% に届きます。 同じテーブルで、 もう一方の軸は 53% に届くのに 1,000 を要しました。

これがアーキテクトの欲しい答えです。この 5 つはこの視点が乗っているトランジットの基盤であり、 そのうち一つを失うことは、最もプレフィックスが多いネットワークを失うのとは別の種類の事象です。

DN42 のフィードで同じコントロールをトランジット・スパイン軸に切り替えたところ。3 つの AS が名前つきで強調され、形の帯には spine 3: 96% と出ている
DN42 のフィードで同じコントロールをトランジット・スパイン軸に切り替えたところ。3 つの AS が名前つきで強調され、形の帯には spine 3: 96% と出ている

上の絵は、別の、そしてはるかに小さいフィードでの同じコントロールです。答えは 5 つで 94% では なく、3 つで 96% になります。項目数そのものは論点ではなく、移し替えもできません。移し替えられる のは、この軸にはそもそも頭があるということ、そして画面上の行が話の大半なのか百分の一なのかを 読者に推測させず、帯がその被覆率を隣に明記しているということです。

一つ但し書きが要ります。前回が勝ち取った但し書きです。 到達数は 支配木 上の錐として計算されます。各 AS を最重量の先行者に帰属させ、その下の 部分木を合計するのです。それは、私が一本まるごと使って木ではないと示したグラフの木射影であり、 その誤差は仮想のものではありません。最重量の親を通らないエッジ質量 17.5% がそれです。つまり この数は非木の上の木和であり、だから製品はそれを到達性として提示せず、そのようにラベルします。 順位づけには十分で、依存性の保証として引用するには不十分です。

この数が幸運ではなく堅いと確信できた理由は二つ。同じコレクタからの 1:10 標本、10 個に 1 個の オリジンをそのプレフィックス・経路・先行者ごと持ち越したもの (11,136 AS、7,854 オリジン、 106,900 プレフィックス) が、同じ 5 つの AS を同じ順序で 34/62/76/86/88% として再現します。 仕組みも謎ではなく、そこが二つの軸の違いのすべてです。プレフィックス数は、各ネットワークが 自分だけで何を持っているかを問います。どのプレフィックスも一つのオリジンに属し、共有はなく、 だから順位づけは独立した寄与のロングテールになります。トランジット到達は、各ネットワークに何が 依存しているかを問い、依存は大きく重なります。一手ごとに次の一手が主張しえたものの大半を吸収 するので、5 項目で問いが尽き、プレフィックス数の 1,000 項目では尽きないのです。


コントロールを書き直させた部分

ここからが予想外だった発見です。同じテーブルから、同じ 1 時間のうちに作った上位 12 の二つの リストは、共通項がゼロ でした。

「ほとんど違う」ではありません。重なりが一切ありません。

これはタイブレークの問題ではなく、良いデフォルトで解決する類のものでもありません。つまり、 このコントロールはソート順ではないということです。これは 問いのセレクタ であり、二つの 問いはこうです。

  • 誰が最も多くのプレフィックスを広告しているか。 答え: 上の分割広告の表にあるネットワーク。
  • このテーブルは何の上に乗っているか。 答え: まったく別の集合であり、その一つも最初のリスト に現れません。

どちらの答えも正しい。どちらも「最大の AS」ではありません。この言い回しは何も指しておらず、 だから単一の順位づけを提示してそれを重要度と呼ぶビューは、支えきれない主張をしていることに なります。

そこで Osprey のコントロールは、ソート方向ではなく明示的にラベルされた二つの軸になっており、 隣の閾値がどちらの役割で働いているかを示します。N を超えたら畳む はレイアウト操作、 上位 N に名前をつける はラベリング操作で、同じ数に対して行う二つの別々のことです。これを 取り違えていたことが、自分たちのビルドに対するレビュー指摘の一つでした。


これが読み手に負わせるもの

収束しない順位づけには、運用の文脈で特有の故障モードがあり、自明ではないので名前をつけて おく価値があります。

上位 12 が 8.3% しか覆っていないなら、画面上の 12 行は残り 91.7% を代表しておらず、画面は そのことを示しません。そこから推論する運用者は、誰も意図して選んでいない性質によって選ばれた 標本から推論していることになります。重要なネットワークのように見えます。実際には、いちばん 細かく刻んで広告しているネットワークです。

トランジット到達の軸は逆の性質を持ちます。5 行で 94% を覆うということは、画面が構造のほぼ 全部を見せており、見えていないものは本当に周縁だということです。それがリストと説明の違いです。


限界

トランジット到達は あなたの テーブルから計算されるので、あなたの視点の性質をすべて受け継ぎ ます。これはインターネットの構造の計測ではありません。あなたのフィードがそれをどこまで見られる かの計測であり、その二つがどれほど離れているかが次回の主題です。

さらに、上流が何を送ると決めたかにも依存します。あなたに届く前にフィルタされた経路はランキング に現れず、どんな計算でも取り戻せません。したがって到達の数値は依存性の下限です。挙がっている ものはすべて実在し、フィルタの向こうに実在しない扱いになった構造があるかもしれません。

それを言うのはただですし、計画に使える数字と、あなたに恥をかかせる数字との差はそこにあります。


要点

運用者が見る 12 行を決めるコントロールは、表示上の細部ではありません。このテーブルでは、 どちらも擁護可能で、一方は収束し他方は収束しない、互いに素な二つの答えのあいだを決めています。

「最大の AS」は事実を名指しているように聞こえます。実際に名指しているのは、既定のソートが たまたま符号化した問いのほうで、ほとんどのツールはそれがどちらだったかを決して教えません。

そしてこれが、この記事が本当に扱っている設計原則です。運用者が何を見るかを決めるコントロール は、自分が答えている問いを露わにしなければなりません。「並べ替え: 重要度」は利便ではありま せん。それはドロップダウンを書いた人が下したモデル上の選択であり、それが起きたことを決して 知らされない誰かの代わりに下されています。


次回: あの 5 つのトランジットはアジア太平洋のネットワークであり、それはインターネットについて の事実ではありません。 あなたのバックボーンはインターネットのバックボーンではない。

Osprey は自社運用型のネットワーク可視化・エンジニアリング基盤です。32 台まで無料でお試しいただけます。他の記事を読むこともできます。