ルーティング(OSPF / BGP) — 地図を持つか、うわさを信じるか
パケットには宛先のIPアドレスしか書かれていません。「どの道を通るか」は、途中のルーターが交差点ごとに決めています。この道選びがルーティングです。
ルーターはカーナビに似ています。地図を持ち、いちばん早く着く道を計算し、通行止めがあれば引き直す。図1の道路をクリックして、渋滞させたり通行止めにしたりしてみてください。パケットの通り道が勝手に切り替わるはずです。
OSPF — 全員が同じ地図を持つ
図1のような1つの組織の中で使われる代表が OSPF です。各ルーターは「自分の隣には誰がいて、そこまでのコストはいくつか」を全員に配ります。集まった情報をつなぎ合わせると、全員の手元に同じ地図ができあがります。
あとは各自がその地図の上で最短経路を計算するだけです(ダイクストラ法)。道路が1本切れれば、その知らせが全員に届き、全員が一斉に地図を描き直します。図1で通行止めにした瞬間に経路が切り替わるのはこれです。
ここでのコストは距離ではなく、管理者が決める「通りにくさ」です。回線が細いほど大きな値にするのが一般的で、ホップ数が少ない道が勝つとは限りません。図1で A→D の直通路(コスト6)が選ばれにくいのもそのためです。
BGP — 地図ではなく「うわさ」で道を選ぶ
インターネット全体となると、全員で1枚の地図を持つのは無理です。そこで組織(AS:自律システム)どうしは、「この住所ならうちを通れば行けます。途中でこのASを経由します」という広告を隣に伝え合います。これが BGP です。
受け取った側は、届いた広告の中から経由するASが少ないものを選ぶのが基本です。便利ですが、弱点があります。広告の中身が本当かどうかを、元々は誰も確かめていないのです。図2で、偽の標識を立ててみてください。
BGPハイジャックは実際に起きている
図2の「ハイジャック」は、他人の住所を自分のものとして広告するだけで成立します。受け取った側に悪意はなく、いつも通り近い道を選んだだけ。それでも宛先のトラフィックがごっそり別の組織へ流れます。設定ミスで起きることも多く、大手サービスが数時間まるごと見えなくなった事例が何度もあります。
対策の柱が RPKI です。「この住所ブロックを広告してよいのはこのAS」という持ち主の証明書(ROA)を登録しておき、受け取った広告と照合します。持ち主と違うASからの広告は捨てる。図2の「RPKIで検証」を押すと、偽の標識が無視されて本物の道に戻ります。
- ルーティング
- 宛先に応じて、次にどのルーターへ渡すかを決めること。
- OSPF
- 組織内で使う経路制御。全員で地図を共有し、各自が最短路を計算する。
- コスト
- リンクの通りにくさ。合計が小さい経路ほど優先される。
- AS
- 自律システム。ISPや大企業など、1つの方針で運用されるネットワークの単位。
- BGP
- AS同士が「この住所ならこちらへ」と広告し合う、インターネットの経路制御。
- RPKI / ROA
- 住所ブロックの正しい持ち主を証明し、偽の広告を見分ける仕組み。
まとめ
ルーティングは交差点ごとの道案内です。組織の中では OSPF が全員に同じ地図を配り、通行止めが出れば一斉に引き直す。組織の外では BGP が隣同士のうわさで道を選ぶので速く広がる反面、偽の標識にも素直に従ってしまう。図1と図2を行き来すると、「地図を持つ」と「うわさを信じる」の違いがそのまま見えます。