BGPとは
BGP(Border Gateway Protocol、境界ゲートウェイプロトコル)は、家庭や社内ネットワークで使われるルーティング方式とは異なり、別々の組織が運用するネットワーク同士が経路情報をやり取りするために設計されたプロトコルです。インターネットは実際にはひとつの巨大なネットワークではなく、通信事業者、クラウド事業者、大学、企業などが運用する無数の個別ネットワークが、BGPによって互いにつながった「ネットワークのネットワーク」です。
自律システム(AS)とは
通信事業者、大手クラウド事業者、大学、大企業はそれぞれ1つ以上の自律システム(AS)を運用しており、国際的なインターネットレジストリから世界で重複しない固有のAS番号(ASN)を割り当てられています。厳密に言えば、BGPは個々のIPアドレス同士ではなく「ASとASの間」で、どのIP帯域への経路があるかを広告・交換するプロトコルです。
経路広告と最適経路の選択
あるASが自分の管理するIP帯域を隣接ASに広告すると、それを受け取った隣接ASは自身の経路テーブルに記録し、さらに別の隣接ASへ伝えていきます。この繰り返しにより世界中のルーターは、ある宛先にたどり着くためにどのASを経由すればよいか(ASパス)を知るようになり、複数の経路候補がある場合は、経由するAS数が少ない経路を優先するなど、決められた基準にもとづいて1つを選択します。
ピアリングとトランジットの関係
規模の近い大手通信事業者やコンテンツ事業者同士は、インターネットエクスチェンジポイント(IXP)で直接接続し、互いのトラフィックを無料で交換する「ピアリング」関係を結ぶことがあります。一方、自前の広域回線網を持たない中小規模のネットワークは、上位の通信事業者に料金を支払い、インターネット全体への経路を提供してもらう「トランジット」契約を利用します。
BGPハイジャックとは
BGPハイジャックとは、自分が管理していないIP帯域を誤って、あるいは意図的に広告することで、本来別のネットワークへ向かうはずのトラフィックを誤った経路に引き込んでしまう現象です。BGPは基本的に「隣接ネットワークが広告する情報は正しい」と信頼する構造で設計されているため、あるASが設定ミスや悪意によって自分の所有でないIP帯域を広告すると、その帯域宛のトラフィックの一部が誤った経路に流れてしまうことがあります。実際に、ある通信事業者の設定ミス1つが、大手サービスへ向かうトラフィックを世界規模で麻痺させた事例も複数報告されています。
BGPが「信頼」を前提に設計された理由
BGPが誕生したのは1980年代末、インターネットに接続している組織がまだ比較的少なく、互いにある程度信頼し合える環境でした。そのため、「この広告が本当にそのIP帯域の正当な所有者から出されたものか」を暗号学的に検証する仕組みは、もともとの設計には含まれておらず、これが今日まで続く構造的なセキュリティ上の弱点として指摘されています。
RPKIによる経路検証の仕組み
RPKI(Resource Public Key Infrastructure)は、あるASがどのIP帯域を広告する資格を持っているかを、あらかじめ暗号学的な証明書として登録しておく仕組みです。RPKIを導入したネットワークは、受信したBGP広告をこの証明書と照合し、権限のない発信元からの誤った広告を自動的にフィルタリングできます。ただし世界中のすべてのネットワークが導入しているわけではなく、普及率を高め続けることがインターネットセキュリティコミュニティの課題として残っています。
些細な設定ミスが世界規模の障害につながる理由
あるASが誤って自分が本来持つよりもはるかに広いIP帯域を一度に広告したり、誤った経路情報を流したりすると、隣接ASがそれをそのまま受け入れて再び広告するため、誤りが数分のうちにインターネット全体へ急速に広がることがあります。大手インターネットサービスやクラウド事業者の障害のニュースで「設定ミスによるBGPルーティングの問題」が原因として頻繁に挙げられるのはこのためです。