ホーム » 技術 » ASから見たインターネット

ASから見たインターネット

IPアドレスだけを頼りにデータが届くというインターネットの仕組みは、ちょっと考えてみると不思議に思える。IPv4アドレスは(枯渇が問題になっているとはいえ)42億9千万個にも及ぶ組み合わせがあり得るわけで、その一つ一つの宛先に正確にデータを送り届けているのだから、すんごい仕組みで動いてるのだろうなあと想像する人も多いのではないだろうか。本稿はそれを説明してみたい。

インターネットへの繋ぎ方を考える

インターネットとの接続を説明するとき、このような簡略図がしばしば登場する。

よく見かける「インターネットとの接続図」

さて、ここで「インターネット」と書かれている部分に注目しよう。インターネットは、実際には様々な組織(プロバイダやデータセンターなど)が運営するネットワークが相互に接続されてできたものだ。接続されたネットワークの数は描き切れないほど多数だが、これを簡略化してみるとこんな感じになる。

インターネットの内情

最初の図を書き改めてみるとこんな感じだ。

実際の接続

サーバはルータを介して、赤いネットワーク運営組織、例えばプロバイダに接続されている状態と言える。

このような接続形態をシングルホームという。インターネットに対して1つの接続点を持っているからだ。このようなネットワークは、インターネットでは「自律していない」と見なされる。そしてシングルホームサイトは上位のネットワーク、ここでは赤で示したプロバイダの一部として扱うのが妥当とされる。つまりインターネットでは自律したシステムではなく、プロバイダの一部と見なされ、そのようにサービスされることになる。

シングルホームサイトは「自律していない」

サーバの管理をしているユーザの立場でみると、

  • IPアドレスはプロバイダが決め、それがユーザに通知される
  • ユーザはそのIPアドレスを利用する。それ以外は使えない
  • ユーザはルータにデフォルトゲートウェイを設定するだけでよい
  • プロバイダは後のことをすべてやってくれる

この「後のこと」というのが厄介なのだが、それを説明していこう。

ASとは

さて、では自律したネットワークとはどんなものなのだろうか。本来の定義は少々難しいので、詳しく知りたい方は参考文献に示すRFCを読んでいただきたい。本稿では概要だけ示す。

ASとして認められるには、インターネットに対して2つ以上の接続を持つマルチホームサイトとしての要件を満たす必要がある。

マルチホーム(複数の接続を持つ)

そのうえで、接続相手のASと経路の交換を行う。経路の交換とは

  • 相手が持っているネットワーク情報を貰う
  • 自分が持っているネットワーク情報を渡す
  • これにより互いにルーティングテーブルを持ち、パケットを交換することができるようになる

というわけである。

経路の交換とトラフィックの流れ

このような経路交換を2つ以上のASと行うことのほかに、「全経路を持つASと経路交換を行うこと」が重要だ。というのもインターネット全体と接続するためには、インターネットのすべてのIPアドレスのネットワーク情報が分からなければ、全世界すみずみまでルーティングできないからだ。

たとえばXというASの配下にあるIPアドレスにパケットを届けたいとしよう。自身はAS-A、AS-Bから全経路を受け取っている。図に示すとこのような状態だ。

AS-Xに届けたいときの経路選択

ASは「伝統的な定義によれば単一の技術的管理の下にある一組のルータ」ということだから、ようするにパケットをフォワーディングしてくれる大きなルータのようなものだ。したがってA、Bどちらにパケットを投げてもXに届けられると期待できる。しかしできれば効率の良い方、品質の良い方に送りたい。例えばホップ数が少ない方に送りたいと思えば「A→X」の方が近く、「B→C→X」や「B→D→X」が遠くに見える。事実、多くのケースでは確かに「ASのホップ数」がそのまま品質に比例する。だが、実は「Xから見てAとの接続回線よりCとの回線の方が品質がよかった」というようなことはあり得る。ASは自律しており、どのような状況で運用されているかは外部からは見えない。本当の品質がどのようになっているかは外部からコントロールできず、計測してみないと分からないなどということが起こってしまう。さらに別のケースでは、AS-A内のルータの数がBやCに比べて大変多く、総ホップ数がA経由の方がB→Cに比べて超えてしまう、というようなことも起こり得る。こういうときにどうするか、というのは話が脱線してしまうのでやめておくが、気になる方はトラフィック・エンジニアリングとBGPについて調べてみていただきたい。

さて、IPアドレスは42億9千万個におよぶ。CIDRは経路をある程度圧縮するが、全経路情報というのはいったいどれほどの量になるのだろうか。ちょっとググって見たところ、最近は82万経路ぐらいになっているそうだ。ひえー。

IXとは

Internet eXchangeを縮めてIXと呼ぶのだが、これについて解説しておきたい。

AS同士の経路交換は、接続回線を引きルータ同士をつないで行う。その理由は経路交換だけでなくトラフィックも交換することになるため、大容量回線が不可欠だからだ。冗長性の確保のためにも多くのASとの経路交換は必要不可欠だが、AS同士が接続するたびに回線をつないでいくと、そのうち回線の数が爆発的に増えてしまう。1つのASは安定的な回線運用のために多数の接続を行うので、物理的にフルメッシュの回線を敷設していたらあっという間にその数は爆発してしまう。

全部つなぐと回線数が大変なことになる

これを解消するために相互接続点というアイディアが生まれた。これは巨大なバックプレーン(大きな交換帯域能力)を持つスイッチを中心に置き、そこにASがルータを持ち寄って、互いに経路交換協定を結ぶ場所を作ろうというものだ。元はWIDEプロジェクトの一環として始まり、現在は商用サービスとしてJPIXやJPNAPなど多数のサービスがある。

IX経由ならば設備が簡略化できる

ただこのようなIXは物理的に一か所に集まっているように見えるが、論理的にはあくまでもAS同士の経路交換・トラフィック交換であり、本質的にはインターネットにほかならない。

IPアドレスのこと

ほとんどの読者のみなさんは、IPアドレスの割当はプロバイダやデータセンターから受け取っているはずだ。JPNIC(やさらに上位の組織)から直接割当を受けているという方はほとんどおられないと思う。そういう割当を受けるのはAS運用をしている組織だけだからだ。ASはCIDR単位でIPアドレスの割当を受け、これをさらに分割してユーザに割当を行い、適切なルーティングをしてインターネット接続サービスを行っているのだ。

これはすなわち、IPアドレスとASは一対一で対応づけられているということを意味している。この対応付けは、割り当てを行ったJPNICやその他の機関がデータベースとして保持しており一般に公開していて、誰でも閲覧できるようになっている。IPアドレスは公共の資源だからだ。正確な時刻が分かれば、誰がそのIPアドレスを使っていたかが分かるという主張はこれに基づく。

同時にIPアドレスの物理的な位置は、ルータの位置にある程度縛られているということも分かってくる。一般の方はGeoIPの情報を頼りにIPアドレスの位置を調べるが、実はあれはIPアドレスからASを調べ、その管理者の登録情報から事務所所在地などを示しているに過ぎない。肝心なのはAS管理者がIPアドレスをどの機材に割り当てたか、その機材は物理的にどこにあるのかなのだが、もちろんそれは管理者にしかわからないので、本当はどこなのかは分からないはずなのだ。たとえばさくらの場合、明らかに石狩にあるサーバなのに本社の大阪を示していたりする。まあ事業者としてはデータセンターの位置を正確に示されると困るので、そのままそっとしておくわけであるのだが。

ASからインターネットを見ると

ASについて知るようになると、インターネットとは「AS同士が繋がったネットワーク」に見えるようになる。インターネットはもともと膨大な数の機器をつないだ巨大で複雑に思えるが、AS単位で見ると少し見通しがよくなる。それにAS運営者は比較的顔が見えるので馴染みやすい。これは複雑な世の中をある程度抽象的/具体的に見るのに役立つ。

とはいえ最近はASも驚くほど多数になっている。これまたちょっとググってみたら101011個になっていた。欠番も多数含まれているのでアレなのだが、BGPもこの先どうなってしまうのかなと思わざるを得ない状況である。

参考リンク