orangeitems’s diary

クラウドで働くインフラエンジニアの日々の感想です(ほぼ毎日更新)。

大規模サービス障害、BGPプロトコル絡みがち説

f:id:orangeitems:20211011163210j:plain

 

大規模サービス障害とよく絡むBGPプロトコルの話題

インターネットサービスは最近はちょっと止まっただけでも世界的大ニュースになるから大変ですよね。中の人たちもメンタル保つのが大変だと思います。

今月はFackbookやインスタの件がクローズアップされましたが、このニュースの中でもBGPというプロトコルが話題に出てきて、なんかよく耳にするなと思ったのでBGPの絡む件を見繕ってみることとしました。

ちなみに、BGPプロトコルのことを知りたければとっかかりとして以下の記事をおすすめします。

 

www.nic.ad.jp

 

 

BGPが絡んだサービス障害

以下、紹介していきます。

 

2021/10 Facebook

japan.zdnet.com

「日常的に実施している保守作業の1つとして、グローバルなバックボーン容量の可用性を評価するためのあるコマンドを実行したところ、バックボーンネットワークのすべての接続が意図せず切断され、実質的にFacebookのデータセンター群が世界的な規模で切り離されることになった」

(中略)

「われわれのDNSサーバーは信頼性の高い運用を保証するために、当社のデータセンターと通信できない場合、BGPの広告を無効化するようになっている。こういった状況はネットワーク接続が健全ではないことの表れであるためだ」と説明している。

 「今回の障害において、バックボーン全体が運用から除去された結果、これらのロケーションが自らを不健全な状態であると判断し、BGP広告を停止することになった。結果的に、当社のDNSサーバーは動作していたとしても到達不能になった。これにより、インターネットのほかの部分が当社のサーバーを見つけられなくなった」

 

2020/8 大規模ネットワーク障害

gigazine.net

今回の障害の根本的な原因は、「不適切な(PDF)BGP Flowspec」だとCloudflareは推測。BGP Flowspecとは、BGPのUPDATEメッセージにパケットの条件である「Flow Type」とパケットに対するアクションである「Action Rule」をのせて送信できる仕組み。BGPを用いてネットワーク全体にファイアウォールルールを簡単に適用することができるので、DDoS攻撃対策などに利用されるとのこと。

 

2020/7 CloudFlare 

gigazine.net

今回の障害は、アトランタのルーターがBGPでバックボーン内のルーターに不正な経路情報を通知したのが原因。アトランタのデータセンターで発生した混雑を回避するため、アトランタのルーターへ流入するバックボーンの一部トラフィックを除外しようと、ルーティングを設定するためのプレフィックスリスト「6-SITE-LOCAL」を無効化したとのこと。

 

2020/6 IBM Cloud

www.bleepingcomputer.com

The announcement continued, "A detailed root cause analysis is underway. An investigation shows an external network provider flooded the IBM Cloud network with incorrect routing, resulting in severe congestion of traffic and impacting IBM Cloud services and our data centers. Mitigation steps have been taken to prevent a [recurrence]. Root cause analysis has not identified any data loss or cybersecurity issues."

 

2018/11 Google

www.itmedia.co.jp

原因は、MainOneとChina Telecomの間のBGPピアリング関係にあった。MainOneはラゴスのIXPN経由でGoogleとピアリング関係にあって、Googleとの直接的なルートを持っており、それをChina Telecomにリークさせていたことが分かったという。

 MainOneはTwitterを通じ、「予定されていたネットワークアップグレードの際に、BGPフィルタの設定を誤る手違いがあった。問題は74分以内に修正され、再発防止策を講じた」と発表した。

(中略)

「MainOneが誤って、自社が保有していない範囲のIPアドレスを宣言した手違いによるもので、悪意のあるハイジャックではない」

 

2017/8 Google

internet.watch.impress.co.jp

経路制御(BGP:Border Gateway Protocol)の情報の設定を誤ったことによるものだが、この誤設定を8分以内に正しい情報に修正したとしている。

 経路ハイジャックなどBGPの経路監視サービスを提供している米BGPmonは同社公式ブログにおいて、障害の原因について、Googleによる大量の経路情報の誤発信に加え、それを受け取ったVerizonが、経路情報をフィルタリングすることなく、さらに拡散してしまったことと結論付けている。

 

 

所感

世の中に出てきている障害情報は上記の通りですが、話題になっていないだけで、BGPの問題でサービス障害、の事例はたくさんありそうな気がしています。全ての事業者が原因を公開しているわけではないですからね。

2017/8に発生した件について、下記の記事がわかりやすくBGP設定ミスが引き起こすシナリオを説明していますので紹介しておきます。

 

atmarkit.itmedia.co.jp

 本連載では、ツールによる可視化を通じ、WANの世界を垣間見てみます。本記事では、インターネット接続を支える役割を果たしているものの、脆弱性が指摘されるBGPプロトコルを扱います。

 

全ての障害がBGPハイジャックによるものではないにしろ、とりあえずシステム単位ではなく、グローバルな規模でサービス障害が発生したら「BGPかな」と言う発想を持つのは良いかと思います。サービス障害が起こった事業者は被害者である場合もあります。

BGPまで絡むような部分まで手を付ける技術者はインフラエンジニアでも限られるので、インターネットサービスがこれだけインフラ化している現在、基礎知識としては持っておいた方がいいのかもしれません。