インターネットの特徴の一つは障害に強いことである。一部のルーターや回線に障害が発生して通信できなくなった場合でも、自動的に他の経路に切り替わって通信を続けられる。それを実現している仕組みが「ダイナミックルーティング」だ。

 ルーティングは、パケットを転送する経路を決めることを指す。スタティックルーティングとダイナミックルーティングの2種類がある。

インターネットの通信を支えるダイナミックルーティング
[画像のクリックで拡大表示]

 スタティックルーティングでは管理者が固定した経路をあらかじめルーターに設定する。このため、経路に障害が起こってもその経路を使い続けようとするため、パケットが届かなくなってしまう。

 一方、ダイナミックルーティングでは、障害が起こっても別の経路を自動的に選択してパケットを届ける。ダイナミックルーティングを実現する仕組みがルーティングプロトコルだ。現在では、単に「ルーティング」と言った場合はダイナミックルーティングを指す場合が多い。

AS単位で経路を決めるBGP

 インターネットはAS(Autonomous System)と呼ばれるネットワークの単位で構成されている。ASはISPの場合が多いが、大企業、大学、研究機関、データセンター事業者などがASになる場合もある。

 ルーティングプロトコルは大きくASの内部で使われるIGPとAS間で使われるEGPに分かれる。EGPはBGPの前身になったプロトコルの名称でもあるが、現在はBGPを代表とするAS間ルーティングプロトコルの総称になっている。

AS内のIGPとAS間のEGP
[画像のクリックで拡大表示]

 IGPにはRIPやOSPFなどがあり、EGPの代表的なものがBGPだ。IGPとEGPの2階層に分けてルーティングを行うことで、個々のルーターの負荷を軽減している。

 IGPはルーター単位でルーティングを行う。これに対し、BGPはAS単位でルーティングを行う。BGPのルーティングを行うのが、ASごとに設置するBGPルーターである。

 BGPでは、個々のASが持つAS番号を利用する。IPアドレスと同様にRIRがASごとに割り振る固有の番号だ。それぞれのBGPルーターは、あるASにアクセスする場合にどのASを経由するかを示す「BGPテーブル」という表を持っている。BGPルーターは、基本的に経由するASの数が少なくなる経路をBGPテーブルの中から選択し、ルーティングテーブルに書き込む。

経由するASが少ない経路を選ぶ
[画像のクリックで拡大表示]

 例えば上図の例では、AS1からAS5にアクセスする場合、AS3経由よりもAS2経由のほうが通るASが少ない。そこで、AS2経由の経路を選択している。

 それに加え、実際には様々なパラメーターにより、どの経路を選択するかを制御している。

 最近のデータセンターなどの大規模ネットワークでは、AS内であってもBGPを利用するケースが増えてきた。こうした場合は、外部に公開しないプライベートAS番号を利用する。

 このような使い方をするBGPをiBGPと呼ぶ。AS間で使うBGPは、iBGPと区別する場合にはeBGPと呼ぶ。