CS四方山話(第9話)AS、BGP、インターネット上のルーティングの仕組みを知る!
CS四方山話、10月28日18:00からLIVE放送にご参加の皆さま、本当にありがとうございました。
第9話は、予告通りルーティング(routing)に関して深掘りします。第8話では、Internet に繋がっているルータまでの経路に関して解説しました。その先のInternet を経由して、世界の 何処か まで、どうやって辿り着くのか? というお話です。
- IPの4つの主な特徴を押さえておこう!
IP = Internet Protocol の 特徴は、次の4つだと言われています。
・パケット交換(パケット通信):データを分割し、1つの伝送路で多数の通信を扱える
・分散処理:複数のネットワークを連接して大規模化。直接伝送がNGでも通信可能
・End to End での通信:相手(=IP Addresss)が特定できれば通信可能
・Best Effort:帯域を保証しないことで自由度を確保(パケット交換、分散処理)
こうした特徴のおかげでネットワークは急速に世界中に広がり、半世紀程度の短い期間で、インターネットが重要な社会基盤となるまでに広がった(蔓延った)ということになります。
このような一節があります (*1)。
<企業のネットが星を被い
電子や光が駆け巡っても
国家や民族が消えてなくなるほど
情報化されていない近未来——>
1995年に公開された映画の冒頭で流れる文言で2029年を表現していますが、私達の現実がこの世界に近付いているということでしょう。
この星の上に張り巡らされたネットワーク上で、自分が送ったパケットが相手に届くための仕組みが「ルーティング(routing)」です。
- いかにデータが届けられるか? ルータまでの流れ
前回(第8話)までの おさらい で、ルータまでの流れを復習しましょう。
あなたのPCのネットワークアドレスは192.168.1.2/24 で、接続先は google.com だとします。
まず、DNS で ドメイン名(google.com)を IPアドレス(216.58.220.110)に 変換してもらいます。 216.58.220.110 は 、自分の家の中(LAN内)のネットワークアドレス(192.168.1.0/24)ではないので、直接送れないことが分かります。あなたのPCは、ルータ(192.168.1.1/24)がデフォルトゲートウェイだと知っている(設定されている)ので、直接送れないパケットはルータに送って、あとは任せることにします。
- ネットワーク越えをするためのルーティングの仕組み
あなたのPC からのパケットはルータまでは届きました。
次は、いよいよ 216.58.220.110 に送ったパケットが、最終的にどうやって相手までパケットが届くかというインターネット上のルーティングの話です。
インターネットは、複数のネットワークの集合体です。数多のネットワークが連接することで、巨大なインターネットという網を構成しています。そして、それぞれのネットワークは、他のネットワークと繋がるポイントをを持っています。このポイントを、ここでは「ゲートウェイ=GW」と呼ぶことにします。
ルーティングの仕組みは、それほど複雑ではありません。前回PCのルーティングテーブルについて触れましたが、それはインターネット上でも同様です。 デフォルトゲートウェイ(デフォルトルート)も含めて「このネットワーク宛のパケットはここに送る」という道標(みちしるべ)が記載されているメモがルーティングテーブルです。そのルーティングテーブルを、インターネット上に点在するGWそれぞれが持っているということになります。

ルーティングで大事なことは「整合」と「効率」です。
整合性が取れていないと、パケットが同じところグルグルと回る「ループ」が発生する場合があります。ループで無限にパケットの伝送が続くと、ネットワークがパンクしてしまいます(輻輳です)。そこで、パケットのIPヘッダにはTTL ( Time To Live) というフィールドがあります(第6話のフレームの図を参照)。この TTL は、GWを経由(HOP)する度に 1 減ります。そして、TTL が 0 になったパケットは次に送られることはなく、GW で破棄されます。たとえば、TTL = 64 で送り出されたパケットは、64回まで HOP できますが、それ以上は HOP できないということになります。結果的に、目的地まで届かないということになります。
また、目的地まで辿り着けたとしても、大きな迂回をしてしまうと、時間も掛かりますし、途中経路のネットワークに余分な負荷を掛けることにもなります。


- 情報を交換しながら変化に対応するダイナミックルーティング
整合と効率を兼ね備えたルーティングを設定することは簡単ではありません。
PC などに設定するルーティング情報は、スタティックルーティングです。その名前の通り、固定的にルーティング情報を設定する形です。たとえば、自宅の中やオフィスの中の「狭い」ネットワークであればスタティックルーティングで充分です。
しかし、インターネットのように巨大なネットワークでは、それは困難です。日々新しいネットワークが出来たり消えたり、接続方法も変わったり。変化が激しすぎるため、インターネット全体で固定的に整合性のあるルーティング情報を設定することは難しいです。そこで登場するのが「ダイナミックルーティング」です。ダイナミックルーティングでは、お互いにルーティング情報を交換しながらパケットの制御を行います。
インターネットには「AS」 (Autonomous System) = 自律システム という概念があります(ここを掘り下げていくと深みにはまる = とても1話では終わらないことになりますので、簡単に説明します)。
AS は、1つの ISP(Internet Service Provider = インターネット事業者)などネットワークの管理単位だと考えてください。AS には IPアドレス と同様、AS番号 があり、申請によって取得します(一般の利用者が目にすることはないので、あまり知られていませんが)。
AS内では 「IGP」(Interior Gateway Protocol)、AS間では「EGP」(Exterior Gateway Protocol)というプロトコルを用いて GW がルーティング情報の交換を行います。EGP には「BGP」(Border Gateway Protocol)というプロトコルが採用されています。
インターネットの階層、Tire1, Tire2, Tire3の役割と?
インターネットの世界は、みんな平等というイメージがあるかも知れません。しかし、実際には、階層構造を持っています。最上位のネットワークは Tire-1 と呼ばれます。
2008年 時点で Tire-1 は全9社といわれています(公表はされないので、厳密には分かりません)。
AT&T、AOL、Sprint、Verizon など 米国が 7社
アジアは NTTコミュニケーションズ 1社
欧州はスウェーデンのテリアソネラ 1社
2018年 時点では Tire-1 は全16社ということです。
米5社、欧州7社、インド = TATA 1社、中国 = PCCW 1社、
日本 = NTTコミュニケーションズ、SoftBank 2社
また日本国内の、Tire2(国内 Tire1)は OCN、KDDI、IIJ などです。
Tire-1 は、Tire-1 同士で相互接続を行い、「フルトランジット」と呼ばれるインターネット全体の経路情報を交換しています。そして、Tire-2 から接続料(トランジット料)を徴収し、代わりに接続サービスを提供し、フルルート情報(場合によっては、パーシャルルート情報)を提供します。この形態を「トランジット接続」と呼びます。
Tire-2 同士でも、Tire-1 同士と同様、相互接続を行うこともあります。これを「ピア接続」と呼びます。
Tire-2 が Tire-3 に対してトランジット接続を行うということで、階層構造が形成されます。
GAMFA は Tire-1 ではないの?という疑問ももっともです。彼らは、Tire-1 事業者と同等、あるいはそれ以上のネットワークを持っています。しかし、彼らは IPトランジットサービス は行っていません(故にTire-1 ではありません)。多くの AS と ピア接続 することで接続性を確保しています。

- 実際のルーティングの様子をPCから確認しよう!
Windowsのコマンドプロンプト から、traceroute コマンドを入力すると、実際のルーティングを確認することができます。
下記は、traceroute コマンドの出力(一部加筆)です。
↓自宅のPC
- 192.168.xx.xx (192.168.xx.xx) 0.834 ms 0.340 ms 0.262 ms
↓自宅のルータ
2 118.23.xx.xx (118.23.xx.xx) 4.779 ms 4.648 ms 4.663 ms
↓OCN の ネットワーク
3 118.23.32.25 (118.23.32.25) 4.848 ms 4.887 ms 4.828 ms
4 118.23.30.49 (118.23.30.49) 6.437 ms 5.812 ms 6.216 ms
5 153.146.171.69 (153.146.171.69) 6.118 ms 6.208 ms 8.087 ms
6 122.1.245.213 (122.1.245.213) 9.990 ms 7.043 ms
7 60.37.54.110 (60.37.54.110) 7.295 ms
8 61.199.130.6 (61.199.130.6) 10.321 ms
↓local IP(多分、OCN と Google のネットワーク間の peer 接続)
9 10.23.198.158 (10.23.198.158) 9.788 ms *
10.252.61.254 (10.252.61.254) 20.687 ms
↓Google の ネットワーク
10 108.170.242.193 (108.170.242.193) 11.924 ms 8.264 ms 9.218 ms
11 108.170.242.176 (108.170.242.176) 10.306 ms
syd10s01-in-f110.1e100.net (216.58.220.110) 10.476 ms
108.170.242.208 (108.170.242.208) 16.312 ms
まとめ
さて、今回が1桁「話」の最後になります(連載が終わるわけではありません)。
次回から2桁「話」になりますので、より具体的な「サイバーアタック」「サイバーセキュリティ」に関してお話ししたいと思います(仕組みももっと知ってもらいたいのですが、難しいネタが多いと、読者の方々に嫌われ、打ち切りの危機に晒される可能性が上がりますので..)。
攻撃と防御ですので、攻撃の方法を知ることは重要です。しかしながら、攻撃の方法を詳細に説明することは、サイバーアタックをどのように行うかの指南になってしまいます。まずは、高度な攻撃方法は避けて通ることにして、「こういう事が欠けていると危ないよ」と言った辺りをご説明して行ければという方向で考えています。
- 補足 (*1)
◆GHOST IN THE SHELL/攻殻機動隊 の 冒頭
企業のネットが星を被い
電子や光が駆け巡っても
国家や民族が消えてなくなるほど
情報化されていない近未来——
作品は 1995年に公開され、描いている世界は 2029年
◆攻殻機動隊 S.A.C (Stand-Alone Complex) の 冒頭
あらゆるネットが眼根を巡らせ
光や電子となった意思を
ある一方向に向かわせたとしても
“孤人”が複合体としての”個”になる程には
情報化されていない時代……
作品は 1995年に公開され、描いている世界は 2030年
※眼根(げんこん)は仏教用語です。
五感の「感」は、感じ方、すなわち「認識」の領域です。
これに対して五根は、感覚器官 = センサ・デバイス の領域です。
「現根」は、視覚センサが世界をどう捉えるかということになります。
◆攻殻機動隊 SAC_2045
全ての国家を震撼させる経済災害「全世界同時デフォルト」の発生と、
AIの爆発的な進化により、
世界は計画的且つ持続可能な戦争“サスティナブル・ウォー”へと突入した。
だが人々が、AIによる人類滅亡への危機を日常レベルで実感できるまでには
衰退の進んでいない近未来――
作品は 2020年に公開され、描いている世界は 2045年
CS四方山話の過去の記事はこちら(合わせてお読みください)
第1話 セキュリティ対策事始め
第2話 実際にサイバー攻撃を観測してみると……
第3話 サイバー攻撃をどうやって防ぐのか?
第4話 多段防壁とパケットフィルタリングの仕組みをヒモ解く
第5話 WAF、IPS/IDS、UTMの違いを理解しよう!
第6話 サイバーセキュリティを考える上で、知っておきたいネットワークの仕組み
第7話 サイバーセキュリティを考える上で、知っておきたいネットワークの仕組み、その2
第8話 デフォルトゲートウェイを起点にルーティングの話
サイバーセキュリティ四方山話は、メールマガジンにてご案内致します。是非JAPANSecuritySummit Updateのメールマガジンにご登録ください。
メールマガジンの登録はこちらからお願いします。

中村 健 (Ken Nakamura)
株式会社SYNCHRO 取締役 CTO
機械屋だったはずだが、いつの間にかソフト屋になっていた。
以前は計測制御、知識工学が専門分野で、日本版スペースシャトルの
飛行実験に関わったり、アクアラインを掘ったりしていた。
VoIPに関わったことで通信も専門分野に加わり、最近はネットワーク
セキュリティに注力している。
https://www.udc-synchro.co.jp/