#BGPを通してインターネットが何なのか理解しよう
####リンク
####インターネットってそもそも何?
インターネットの仕組みを知らない人に
インターネットってどんな仕組みなの?って言われたらなんて答えますか?
この答えをここで示したいなと思って書きました。
本記事では以下のような
「インターネットは世界中の誰とでも繋がることができるんだよ」
みたいな話はしません。
なるべく専門用語を少なくして、インターネットの仕組みを理解することを目的とします。
書籍では氷山の一角しか書かれないため非常に全体像が分かりにくくなっています。
そして専門用語が多すぎて途中で分からなくなってしまいます。
その部分を本記事で補完したいなと思います。
従って、専門用語に拘ったり、専門用語を見て理解できる方は別のサイトをみてください。
また、インターネットの全体像を説明するために必要な知識を順番に説明していますので
長くなってしまいました。長文がお好きではない方は別のサイトをみてください。
この記事は初心者向けになっています。
####書籍
詳しく知りたい方は以下の書籍が良いと思います。
####インターネットとは?の結論が先に欲しい・・・
忙しい方のために、先にまとめちゃいます。
インターネットとは、ISPや企業や学校法人が各々ネットワーク環境を持ち合わせていて
それをBGPという共通の通信ルールで各ネットワーク同士をつなげていることです。
インターネットって実態がないと思われがちなんですけど、
個々に分解して行ったら、ドコモ、アマゾン、マイクロソフト、IIJ、学校法人、etc・・・
が所有しているネットワークなんですよね。
そして共通の通信ルール(プロトコル)である
BGPという経路制御ルールを用いて各ネットワークを繋げてるんですね。
だからBGPが概要でも分からないとインターネットの仕組みが分からないんですよね。
インターネットがどういうものか、何ができるか、は誰でもわかりますけど。
#####専門用語を用いて言うと、、
通信事業者などAS番号というユニークな番号を割り当てられた団体が
自ネットワークのルータにBGPの設定を有効にします。
トランジットやピアで繋がった対向ルータとBGPのセッションを張り、
自ネットワークのルーティング情報を対向に送ったり、
相手のルーティング情報を受け取ったりします。
そのルーティング情報をみてどのネットワークに接続すれば良いか
BGPを有効にしたルータが自動的に判断しているんですね。
要は、WAN側のグローバルIPアドレスを用いたルーティングのプロトコルがBGPとなります。
インターネットとは、
各団体のネットワーク上に存在するルータがBGPのルールに沿って
ルーティングを制御することにより出来上がっている。
その各団体のネットワークを個々で見ると、通信事業者、企業、
学校法人等・・のネットワークである。
上記が私がこの記事で伝えたいこととなります。
####わかんなかった
インターネットを理解するには通信の前提知識が必要になってくるので厄介なんです。
その前提知識としてTCP/IPやネットワーク、LANとWAN、BGP等の全体像を理解する必要があります。
もしこれらの用語や説明でピンと来なかったら、下にお進みいただければと思います。
上の説明で理解できたら閉じて頂いて良いかと存じます。
####BGPを知らないとインターネットの仕組みは分からない
BGPはパソコンやスマホにインターネット環境を提供している最も重要なルール(プロトコル)の一つです。
普段スマホを使っている人、パソコンを使っている人であれば誰でもBGPの恩恵を受けています。
しかしBGPの仕組みについて今一つ理解していないのではないでしょうか。
ネットで調べてもよくわからないし、訳のわからない用語が出てくるし。。
ということで、専門的すぎて分かりにくいため、
BGPを初めて勉強する方に向けて体系的にまとめることにしました。
インターネットの仕組みを理解することを目的としますが、
それを理解するのにはBGPが不可欠なので説明していきます。
BGPが分かるとインターネットの本質が見えてくるので
業務で使用しなくても一般教養として是非覚えて欲しい概念です。
###この記事でわかること
・インターネットの仕組みの根幹
・BGPというインターネットを成り立たせている技術
・通信技術の根幹であるTCP/IP
・回線業者と通信業者の違い
・LANとWAN
・通信技術の基礎
・経路制御
###BGPって?
最初に一般的なBGPの説明を見てみましょう。
「Border Gateway Protocol」の略。現在のインターネットにおいて、ISPなどの相互接続時にお互いの経路情報をやり取りするために使われる経路制御プロトコルです。
相互接続されるネットワークは自律システム(Autonomous System:以下AS)と呼ばれ、それぞれのASが内部に持っているネットワークに関する経路情報は、それらを個別に扱わず、連続するネットワークブロックをひとかたまりにして他のASに広告されます。これを経路集成(あるいはアグリゲーション:aggregation)と呼びます。
引用元:BGPとは
Border Gateway Protocol?プロトコル?ISP?
AS番号?自立システム?
###ん?!わからん
BGPは、、、ざっくり言うと、、
インターネットサービスプロバイダーなどの通信事業者(ISP)同士が
各自身で持っているネットワーク環境を相互接続するために
策定された通信ルール(プロトコル)です。
####まだ、わからん
そう言われると思ったので、、必要となる概念を説明させていただいても宜しいでしょうか。
・TCP/IP
・LANとWAN
・回線事業者と通信事業者
・インターネット
・ネットワーク
上記がわかるようであればBGPのパートまで飛ばして下さい。
###TCP/IPを理解しよう
はじめに通信の根幹の概念としてTCP/IPを理解しましょう。
通信の基礎になるのですが
ほぼ全ての通信は、TCP/IPというルールで成り立っています。
ざっくり言うと
・ケーブルでポートなどを繋ぐ物理層
・IPアドレスで相手先の住所を特定するするインターネット層
・通信の種類の仕分け、通信の保証性の有無を判断するトランスポート層
・HTTPやSSHなどの各アプリケーションを区別するアプリケーション層
があります。
####TCP/IPの例
私たちが、PCでググった時に、そのテキストデータや画像データは
TCP/IPというルールでやり取りされています。
少しだけ具体的に言うと、、Wi-fi接続のPCの場合は物理層は電波です。
電波を受け取ったWi-fiがPCから受け取ったデータを見て住所を決めます。これがインターネット層です。
Wi-fiが光ファイバーを通って回線事業者や通信事業者のネットワークを通ります。
契約している通信事業者からBGPを使ってGoogleさんのネットワークにたどり着いたら
GoogleさんのサーバにHTTP向けの通信ですよと伝えます。これがトランスポート層です。
アプリケーション層であるHTTPが受け取った要求にデータを載せてPCに返します。
っと言う感じでTCP/IPの仕組みの上で通信が行われています。
厳密にはGoogle.comというドメイン名からGoogleさんのWebサーバの
住所を割り出すDNSとかいろいろ出てくるんですが
TCP/IPの説明はこの記事の2倍以上のボリュームとなるので・・割愛します。
####BGPはTCP/IPのインターネット層
前提として通信の根幹はTCP/IPというルールに沿って成り立っているということを覚えておいてください。
TCP/IPの中で相手先の住所を判断するインターネット層がありますが、
BGPはこのインターネット層に属しているルールなのです。
###LANとWAN
ここでもう一つ理解しておかなければならないのですが、
通信にはローカル環境に適用される通信ルールと
ワイドエリア環境に適用される通信ルールの2つがあります。
俗に言うLANとWANですね。LANがローカルでWANがワイドエリアです。
LANは物理的に同じ建物のネットワークでWANは物理的に別の建物のネットワークと思ってください。
BGPはWANで必要となる通信ルールなのです。
はじめての方はLANと言うと理解できます。
例えば家にWi-fi環境がある場合、Wi-fiから家の壁の側面の光コネクタに接続する部分までがLANです。
WANはその先でしょ?って思われる方はその通りでございます。
問題はLANのその先ってどうなってるか分からないことなのです。
###LANの先ってどうなってるの?
インターネットについて全てを理解できる方が少ない理由の一つが
責任分解点が多すぎるのが挙げられると思います。
家にフレッツ光を契約する時にNTT東と契約しているのか、NTTコミュニケーションズと契約ているのか
他のプロバイダーと契約しているのか意味不明と思ったことはありませんか?
その疑問は真っ当なご意見だと私は思います。
なぜならば、NTT東は回線事業者であり、NTTコミュニケーションズは通信事業者だからです。
家の光回線は2つの業者と契約しているので訳が分からなくなっているんですね。
###回線事業者と通信事業者
回線事業者とは、物理的な光回線の提供ですね。
通信事業者はインターネットサービスプロバイダーやISPともいって
回線事業者から提供された回線をインターネットに接続を提供するんですね。
###インターネットサービスプロバイダーのネットワークってなんぞや。
通信事業者は提供された物理的な回線を
インターネットに接続できるようにする業者です。
つまりはインターネットの門番のような役割をしています。
インターネットに通りたければ俺の許可を得てからな!と言われている訳です。
でも本質的に言えば、別にISPのネットワークを通らなくても行けるんですよ!インターネット!
それがBGPの技術なのです。
####家のWi-fiと通信事業者間の通信ルールってBGP?
ちょっと発展系なのですが、
家のWi-Fiで言うWANはインターネットサービスプロバイダー(通信事業者)のネットワークのことなんですよ。
通信事業者から見てもあなたの家のWi-FiもWANですよね。
あなたの家と通信事業者間でBGPが使用されているか?という疑問があったらめちゃめちゃ鋭いです。
BGPはWANで使われるルーティングプロトコル述べたからですね。
少し複雑なのですが、通信事業者から見たら、あなたの家のWi-Fiも通信事業者のネットワークなんですね。
確かにWANではあるのですが、WANにも色々なパターンがありまして(閉域網とか)、、
同じネットワーク内のWANではBGPは使用されません。
あくまで別ネットワーク間をつなげる時に使用します。
通信事業者とあなたの家を繋ぐ通信ルールは別にあり、「PPPoE」と「IPoE」と言ったりします。
稀に「PPPoE」と「IPoE」を使わず、通信事業者のDHCPで通信する方式もあります。
ここまで書いてやっと本題ですね。
###そもそもインターネットって抽象的すぎない?
そう!抽象的なんですよね。
インターネットって何?って言われても。。「ネットワークだよ!ネットワーク!」とか
「通信できるんだよ!」とか「スマホでLINE使えるようになるんだよ」みたいな説明が本当に多い。
なぜならインターネット自体が抽象的だから。この理由も上述したものと同じで責任分解点が多すぎて
訳わからんのです。
筆者ももちろん業務では一部しか経験したことないのでちゃんと
具体的に説明しろと言われたら難しいです。いや、無理です。
全てを理解できている人に今まであったことがないなあ。。
それだけ広い世界ですね。インターネットって。
###インターネットとは?
具体的に言うと、この記事のはじめに以下を記述しました。
インターネットとは、ISPや企業や学校法人が各々ネットワーク環境を持ち合わせていて
それをBGPという共通の通信ルールで各ネットワーク同士をつなげていることです。
はじめよりちょっと理解できていませんか?!
要は、複数の門番がいて、その門番同士が互いの街を管理して、
行き来し合っているだけなんです
これがインターネットの本質であり、
BGPは門番で言うと、
門番同士が相手の街に行くためにはどの経路を通ればたどり着けるか
道案内をしているんですね。
ちょっとわかりましたか?
もっと具体的にいいましょう。
NTTコミュニケーションズ、ドコモ、KDDI、ソフトバンク、IIJ、Amazon、Google、Microsoft・・・
と多くの門番達(BGP)が街(ネットワーク)を繋げているんです。
###そういえば・・ネットワークって・・?
ネットワークという言葉がたくさん出てきましたがここで振り返ります。
上記では街と表現しましたが、ネットワークというのは
あなたの家で言うとWi-fiで自分の家のネットワークを作っていると思います。
会社で言えば会社専用のネットワークを作っていると思います。
通信事業者であれば通信事業者専用ネットワークです。
スマホで言えば、キャリアのネットワークです。
一言で言えば、ネットワークとは仮想空間です。
その仮想空間がTCP/IPの技術で細かく区切られています。
家の単位から、会社の単位、通信事業者の単位とそれぞれ仮想空間が広くなっていきます。
もちろん家の仮想空間は通信事業者の仮想空間ですが、
ホテルの部屋ように通信事業者からは家の仮想空間を見ることはできません。
ただ、どの部屋番号にいるかは通信事業者が把握しています。
部屋の中であなたが何をしているかは分かりません(中国ではバレます・・)。
因みに、会社や通信事業者の単位のネットワークになると
データセンターというPCよりだいぶゴツイ機械が
たくさん格納されている物理的な専用の場所に仮想的な空間を作っています。
データセンターには
ラックという電話ボックスみたいな箱に、ゴツイ機械をたくさん入れておきます。
そのゴツイ機械はサーバだったりネットワーク機器だったりファイアウォールだったりします。
データセンターはセキュリティがガチガチで関係者以外は入れません。
##BGPの説明
インターネットってどのような仕組みで成り立っているのか
概要は掴んでいただいたかと思います。
インターネットとは、複数の門番がいて、その門番同士が互いの街を管理して、
行き来し合っているだけなんです
BGPは以下のイメージです。
BGPは門番で言うと、
門番同士が相手の街に行くためにはどの経路を通ればたどり着けるか
道案内をしているんですね。
上記の街と言っているのが、ドコモ、アマゾン、マイクロソフト、IIJ、学校法人、etc・・・
が所有しているネットワークなんですよね。
門番であるBGPについて
もう少しBGPを深掘ってみましょうか。
###BGPの役割
ここからBGPの役割を見ていきましょう。
なるべく専門用語を使わないようにしますね。
専門用語のサイトをみて理解できる方はそちらを参照ください。
専門用語を少なく理解されたい方が対象です。
BGP自体は通信ルールです。
先に専門用語で言うとTCP/IPの中のインターネット層に属していて
動的ルーティングプロトコルの一種です。
BGPはBorder Gateway Protocolの略でして
BorderやGatewayってまさに門番って言葉が個人的にしっくりきます。
BGPの役割とはずばり、経路制御です。
###経路制御とは
まず、ネットワーク(仮想空間)ってどのように実現しているのでしょうか。
ネットワークには様々な機器がケーブルや電波によって接続されています。
我々が接する部分では電波が多くなっていますが、その裏側はケーブルで接続されています。
光やメタルケーブルが大量の機器に接続されています。
その機器が経路制御をしています。
経路制御とは、
ある機器がある住所のデータを受け取ったら
どの機器にそのデータを渡すかリストを見て判断することです。
以下の構成を見てみましょう。
スマホA-機器A-機器B-スマホB
スマホAが機器Aにデータを送ります。
機器Aは機器B意外にも様々な機器と接続されていることとします。
その状況下で機器Aはどうやって機器Bにデータを送るのでしょうか。
機器Aと機器Bなど機器間で経路の情報を事前に交換しておきます。
経路情報をリスト化しておきます。
スマホAが機器に通信した時に機器Aはそのリストを見て宛先を決めて機器Bにデータを送ります。
機器BはスマホBにデータを送ります。
上記はあくまでL3レイヤーの話のみしています。
厳密にはL2レイヤーなるものが存在しますが複雑になるので省いています。
※L2レイヤーはMACアドレスの通信で、L3はIPアドレスの通信です。
経路制御の中身を見ていくと、
機器間で事前に経路情報をやり取りして、それらをリスト化していることが分かります。
機器は経路情報のリストをみて宛先を決めています。
仮に複数の経路があったらどのように経路を決めているのでしょうか。
その場合は、使用する経路制御ルールによって変わります。
それが通信プロトコル(ルール)といって色々な通信ルールの一つがBGPなのです。
通信ルールにも色々あって、LANに使うもの、キャリアが使うもの、WANで使うもの、
はたまた手動だったりと使い分けがされています。
その中でもインターネットを実現する通信ルールがBGPです。
###LANとWANの経路制御の違いは?
基本的な考え方は同じです。
機器間で事前に経路情報をやり取りして、それらをリスト化して
機器は経路情報のリストをみて宛先を決めている考え方です。
ただし、その中のルールが少し違ったりします。
プライベートIPアドレスとかグローバルIPアドレスとか聞いたことありませんか?
IPアドレスが流出した!とよくニュースになっています。
プライベートIPアドレスは基本的にその団体の中で使用されるアドレスなので
流出したところで、個人の特定は難しいのです。
グローバルIPアドレスについては、IPアドレスのレンジがネットで
公開されてたりしますが大体は企業です。
たまに通信事業者がグローバルIPアドレスを付与していますが例外です。
その場合、個人のアドレスが特定されてしまいます笑。
話が逸れましたが、BGPの経路情報はグローバルIPアドレスのリストです。
プライベートIPアドレスのリストはLAN側か閉域網のWANです。
※閉域網はちょっと難易度が高いのですが、、
要は企業って同じ建物だけでなく支店がありますよね。
その本社と支店を繋ぐ時にインターネットに繋がないで繋ぐことができるのです。
専門用語でIP-VPNと言ったりします。
すごい余談なのですが、BGPが持っている経路情報リストって今80万くらいあります。
インターネットの全ての経路は80万くらいあると言うことです。
細かい数字は多分ネットで調べたら出てくると思います。
###重要なキーワードである「AS番号」とは
BGPについて調べるとはじめにたどり着くキーワードがAS番号です。
AS番号ってなんなのでしょうか?
AS番号は、 統一された運用ポリシーによって管理されたネットワークの集まりを示し、 BGP(*1)による経路制御の単位となる、 自律システム(Autonomous System:AS)に対して与えられる番号を指します。 インターネットレジストリでは、 各ASに対して一意な番号の割り当てを行っています
引用:AS番号とは
わかりますか?
私にはわかりませんでした。特に初めてみた時に「自律システム?」と感じました。
なぜ難しく説明して参入障壁を挙げるのでしょうか。
一言で言うと、、
他の通信事業者のネットワーク(街)に接続する役割を持つ「門番」にユニークに割り振られた番号です。
それだけです。
語弊があるとよくないので説明しておきますが、別に門番は通信事業者でなくても良いです。
学校でも良いし、多分お金出せば個人でも大丈夫です。
調べたらJPNICという団体から申し込みができるみたいですね。
AS番号の申請について
あとAS番号を付与されている団体の一覧はこちらからみることができます。
AS番号リスト
インターネットはこのユニークな番号を付与された同士がお互いに接続しあっているんです。
その経路制御をBGPがやっているのですが、AS番号を用いて経路を決めています。
BGPの接続方式はトランジットとピアの2つがあります。
###トランジットとは
トランジットとは、インターネット環境を使うようになるために必要な門番と言いますか、
銀行で言うと日本銀行みたいな「銀行の銀行」みたいな存在です。
AS番号を付与されている他の通信事業者(団体)のネットワーク(街)に接続できることを門番と言いましたが、
当然複数の団体と繋がって網状(メッシュ状態)となっているわけです。
東京から埼玉しか行けないわけないですよね。東京から千葉にも行けるし千葉から埼玉も行けます。
色々な経路があります。
実際には、ドコモと繋がってる、KDDIとも繋がってる、IIJとも繋がってる
ということが起こりえます。
ここで例えですが、自分の街の西側にドコモ、自分の街の右側にKDDIが繋がっているとします。
ドコモとKDDIが仲が悪くて道が直接繋がっていないとします。
しかし当然ながらドコモとKDDI同士の街にいくことができない事態に
発生してはいけません(もちろん実際にはそんなことはないです)。
その場合、自分の街が中継してあげないとドコモとKDDIは通信できません。
この中継する役割のことをトランジットと言います。
###トランジット業者
トランジットとは、インターネット環境を使うようになるために必要な門番と言いますか、
銀行で言うと日本銀行みたいな「銀行の銀行」みたいな存在です。
上記のように書きました、
自分のネットワーク(街)を接続している全ての街と一個ずつ
接続するのって不可能ではないですけど効率悪すぎですよね。
そうしたら、全ての街に接続している街と一対一で接続したら
楽じゃないですか?
実際には前述したドコモとKDDIを中継するというような個別で中継するのではなく、
トランジット業者を使って、トランジット業者と一対一で接続したら、残りの全ての街と接続します。
「他の団体の街に繋げてあげますよー。使用料くださいねー。」という団体がトランジット業者です。
ありがたいことに新しくAS番号を付与された団体は
トランジット業者のネットワークに接続するだけで他のすべてのネットワークと接続できるようになります。
そしてトランジット業者が新しい仲間が増えたよーと他の団体に伝えてくれます。
もちろん伝えるのはBGPの役割の一つです。
BGPは定期的に経路情報を更新して他のネットワークと連絡し合っています。
トランジットの方式で接続されているネットワークがインターネットと言えるかもしれません。
##ピアとは
ピアは、言葉通り、対向などの意味があるのですが、
自身のネットワークと相手のネットワークが一対一で接続している状態です。
トランジットとの違いは、
全てのネットワークに繋がっているか、一つのネットワークに繋がっているかです。
トランジットに接続したら他のネットワーク全てに接続できたかと思います。
しかしピアは個別のネットワークと繋がるのでそれ以外のネットワークとは接続できません。
ピアはインターネットではないんですね。
ただし、ピアにもメリットがあります。
例えばトランジットであれば自身のネットワークからドコモのネットワークに接続したい時に
トランジット業者と接続することになります。トランジット業者は複数あるので複数のネットワークを
経由することになります。
そうすると間に介在することになるので通信が遅くなったり、他のネットワークに影響されたりします。
一方ピアに関して言うと直接他のネットワークに接続できるので
そのネットワークのみの接続ができたり、通信速度が速くなったりします。
ただし、ピアは個人が、Microsoftとは契約できません。
理由は、お互いにメリットがないとピアにする必要がないのでMicrosoftがNGを出します。
お互いに直接通信させた方が効率が良いよね!となったら互いに回線を引きピアを張ることになります。
###ピアにも2つの接続方法がある
ピアとは自身のネットワークと相手のネットワークで直接接続すること。
つまりは1対1で接続することです。
しかし少しだけ変化形があります。
IX(Internet Exchange)という仲介する業者が入ることがあります。
###IXって?
基本的な機能自体は通常のピアと同じで一対一のネットワーク接続を提供します。
それでは何が違うのでしょうか。
少しイメージして欲しいのですが、ピアを構築するためにネットワーク機器から物理的に1本回線を引きたいです。
すると回線業者にお願いして回線を1本引くことになると思います。
次に別のピアを構築したくなったとします。別のネットワークと個別に接続したい時ですね。
その時、またネットワーク機器から物理的に一本回線を引く必要が出てきます。
そして回線業者と契約する必要があります。この費用無駄ではありませんか?
そこで登場するのがIX事業者で物理的なビルにネットワーク機器を集約します(多分データセンター)。
このデータセンターにあらゆる個別の団体ネットワークの回線を集約します。
そうすると新たにピアを増築する時に物理的に追加費用がかからないんですね。
ネットワーク機器で仮想空間上の設定を変えるだけです。
ちなみにですが、ネットワーク機器によって宛先を制御できますので
物理的には同じネットワーク機器に接続されていても、論理的にはピアの接続にすることが可能です。
ネットワークにおいて、物理接続、論理接続は結構重要な概念です。
IXがいることにより物理的な追加費用がかからないというのがメリットです。
もちろん通常のピアとの機能は変わりません。
IXを用いたピアは一般的にパブリックピアと言われ
通常のピアはプライベートピアと呼ばれたりします。
###まとめるとトランジットに接続しているとインターネットってこと?
繰り返しになりますが重要なので。
トランジットに接続していると一般的にインターネットと言って良いと思います。
もちろん実際にはピアとトランジット両方使っている団体が多いと思います。
ピアの経路から通信できるものはピアから、その他はトランジットの経路から通信というように区別できます。
一方、ピアだけのネットワークであれば2拠点間の通信しか許容していないので
インターネットとは呼びません。
MicrosoftやAmazonとピア回線を引いていたらそのサービスは使えますけど、
他のサービスは使えないわけです。
###経路はどのようにして決めているのか
ネットワークというのは、LANでもWANでも基本的には、経路情報を自動的に取得して
その経路情報をリスト化してどの経路を通って通信するか判断しています。
※手動でも可能ですが大規模だと無理です。
それではBGPの通信経路の決め方を説明していきますが、
AS番号を覚えておりますでしょうか?
AS番号とは以下です。
他の通信事業者のネットワーク(街)に接続する役割を持つ「門番」にユニークに割り振られた番号です。
このAS番号を使って経路を決めています。
####具体的に言うと
経路の決定方法は
***「他のネットワークを何回経由したか経路情報で確認して、
他のネットワークの経由が少ない経路を通る」***となります。
ピアとトランジットの両方を持つネットワークAとネットワークBが存在するとします。
・ピアはネットワークAとネットワークBが直接接続されています。
・トランジットはネットワークAとトランジット業者とネットワークBが接続されています。
この場合、ピアの経路を通ることになります。
なぜならば経路が少ないからです。
###経路の決定を自動化とは
■登場人物
・ネットワークA
・ネットワークB
・ネットワークC
ネットワークA,ネットワークB、ネットワークCが存在するとします。
やりたいことはネットワークCからネットワークAに通信したいです。
ネットワークAでBGPのルールを有効にしてネットワークBと通信が確立した後、
お互いに自身の情報を相手に伝えます。
情報は、各ネットワークの住所と各ネットワークのAS番号を伝えます。
ネットワークBがトランジットであり、ネットワークAからもらった情報をBは保持して、
それをネットワークCに情報を渡します。
ここで、
ネットワークCがネットワークAとピア接続をしているとしたら
経路情報をネットワークAからも直接もらうことになりますよね。
するとネットワークCは、Bからも経路情報ももらってるし、
Aからも経路情報をもらってるのでどちらから接続すれば
良いかわからなくなります。
どうやってネットワークCはネットワークAへの通信経路を決めているのでしょうか。
ってところが重要なポイントとなります。
実はネットワークAが自身の情報を相手に渡す時に自分のAS番号を一緒に送っているのですが、
受け取ったネットワークBは自身のAS番号を追加で載せてネットワークCに渡しているのです。
■Bが持っているリスト
・1: Aの住所 AのAS番号
■Cが持っているリスト
・2: Aの住所 AのAS番号 BのAS番号(B経由)
・3: Aの住所 AのAS番号(Aと直接)
つまりは「AS番号の多さ=経由したネットワーク」とみなして、どの経路を通って通信するか決めているんです。
だから上記のリストをみて2ではなく、3が実際に通信する経路となるのです。
具体的にBGPのやっていることが見えてきましたでしょうか。
BGPのやっていることはここで大体全てとなります。
###AS番号の付与ルール
ここから発展になります。
基礎は上述までで良いと思います。
トランジットとピアでAS番号の付与のルールが少し違います。
整理したいのが比較対象は3点あります。
トランジット
・プライベートピア(直接接続)
・パブリックピア(IX経由)
■登場人物
・ネットワークA
・ネットワークB
・トランジット業者
・IX業者
●トランジット
ネットワークA-トランジット業者-ネットワークB
トランジットの場合、
ネットワークBから見たネットワークAの経路は、ネットワークAとトランジット業者のAS番号が付与されてます。
※ネットワークAの経路はネットワークA自身が情報を発信しているためネットワークAのAS番号もカウントされている
●プライベートピア(直接接続)
プライベートピアの場合、
ネットワークBから見たネットワークAの経路は、ネットワークAのみとなります。
※直接繋がっているので
●パブリックピア(IX経由)
パブリックピアの場合、ネットワークBから見たネットワークAの経路は、ネットワークAのみとなります。
※もちろんIXにもAS番号はあります。
####なぜIX経由だとAS番号が付与されない?
仕様みたいなのですが、IXの目的はあくまで論理的にはピアとの接続をするものですので
IXのAS番号はカウントをしないようです。
従ってプライベートピアと同じ経路数となります。
トランジットを経由するとAS番号が一つ多く付与されてるのでピアがあると経路に選ばれません。
まとめると、IXはあくまで仲介しているだけでAS番号は伝えないんですね。
このIXの仲介しているネットワーク機器をルートサーバと行ったりもします。
ルートサーバはあくまでピアの仲介であって自身のAS番号を送らないと覚えておきましょう。
###BGPは自動的に経路が決まるけど変えられないの?
BGPの経路は設定で変えられます。
AS Path Prependと言うのですが、
これは自身宛の経路に自分のAS番号を上乗せで追加できる機能です。
上述のプライベートピア(直接接続)で例を出したいのですが、
プライベートピアの場合、
ネットワークBから見たネットワークAの経路は、ネットワークAのみとなりますが、
AS Path PrependでAS番号を上乗せすると
ーー
■Bが持っているリスト
・1: Aの住所 AのAS番号
ーー
が
ーー
■Bが持っているリスト
・1: Aの住所 AのAS番号 AのAS番号
ーー
となります。
つまりは、AS番号が2つになったので経路が遠くなったと言うことです。
AS Path PrependはいくつAS番号を上乗せできるか決められるので2つ、3つと増やすことができます。
このAS Path PrependはネットワークAから見た時に、あくまでどこから受信するのかを決められる
技術であり、ネットワークAがどこから通信するかという発信に関しては決められないことに注意してください。
###冗長化
少しネットワークに詳しい方であれば、また感が鋭い方は、
トランジットは他のネットワークに接続できる、つまりはインターネットそのものだと思うが、
そのトランジット間(自身のネットワーク機器とトランジット業者の機器)が故障したらインターネット接続
できないよね?と思われると思います。
その通りでございます。
従って、通常であればトランジット回線は冗長化します。
冗長化というのはネットワークでは当たり前の概念の一つなのですが、
例で言うと家のWi-fiが一台あります。その1台が故障したらインターネットに接続できませんよね?
では2台あって連動していたら片方が故障してももう一台でインターネット接続できるよね。ということです。
それが冗長化という言葉の意味です。
もちろん門番も同じように冗長化しています。具体的に言うと1台の機器ではなくて2台にする。
もしくは回線を1本ではなく2本にする。もしくは両方やってしまうか。
一般的には冗長化というのは構造が二重となることが多いのでこの場合は、2台にして回線を2本にする
と言うことです。
そしてネットワーク機器でBGPの連動をします。一般的にはiBGPと言います。インターネット側はeBGPと言います。
#####つまりは、自身のネットワークの門番が1人しかいないので2人に増やして門も1つ追加しているのです。
すると片方の門が壊れたり、門番が1人になってももう一方がいるので影響はないと言うことです。
もちろん実際の現場では不安なので直ぐに直すのですが。
###冗長化したら経路情報はどのように決めるの?
iBGPで同じネットワーク内で機器を増やして回線を増やして冗長化できるお話をしましたが
連動はBGPの設定で簡単に可能です。
そしてどちらの門からインターネットに抜けるかというお話ですが、
BGPのリスト情報を他のネットワーク機器からもらっているのでそのリストを見ながら
振り分けをするのですが、リストはネットワーク機器間で共有しているので
門番2人いたらそのリストをみて「お前の門からの方が早いね」と理解したらその門番の門から
発
信します。
###Local-pref
Local-prefという技術もあるのですが、
こちらは自身ネットワーク内でネットワーク機器が冗長化している環境下で
ネットワークBに発信する時にどのネットワーク機器から発信するか決められる技術です。
通常ネットワークBに何か発信する際は、BGPのリストを見て経路が少ないネットワーク機器から
発信するのですが、設定を加えることによりどちらのネットワーク機器から発信するか決められます。
AS Path Prependは受信であるのに対し、Local Prefは発信の制御です。
注視して欲しいのですが、Local PrefはあくまでiBGP、つまりは自身のネットワーク内で完結する
設定です。そしてBGPリストにてAS番号が多い経路でもLocal prefの設定があれば(設定値が高ければ)
そちらのネットワーク機器が優先されます。
要は、ある人が門を通りたいですが門Aを通れと言われます。
門Bを通りたいのでLocal prefなるチケットを見せて門Bから通ることができます。というお話でした。
#BGPまとめ
BGPについてみなさまご理解できたでしょうか?
かなり具体的なお話までさせていただいたと思っています。
こちらの記事でインターネットとは何?と聞かれても
答えれらるのではないかなと思っております。
インターネットの根幹の技術って今のところはかなり普遍的なんです。
もちろん新しい技術が出てくることはあると思いますが、数年ー数十年単位で切り替わるのではないかなと思います。
それくらいレガシーな技術なのです。それだけ普遍性もあります。
一度概要を身に付けてしまったら、いろんなところで応用ができますし、今の社会の根幹にあたるので
是非通信について理解してみてください。
参考
ピアリングとトランジット – インターネットの相互接続について
相互接続とルーティング裏事情入門編
ルートサーバの現状と
マルチラテラルピアリングの可能性