Meta世界障害(2021)— BGPが消えた6時間
容量監査の1コマンドがFacebookを地球から6時間消した。正しく動いたDNSヘルスチェックが障害を増幅する逆説から、相関障害への設計と管理経路分離を学べる。
- 2021年10月4日、バックボーン容量の空きを監査するコマンドが誤って全バックボーン接続を切断し、Metaの全データセンターが相互にもインターネットからも孤立。事前監査ツールはバグで実行を止められなかった。
- データセンターへ到達できなくなった権威DNSサーバーは、設計どおり自身のBGP広告を取り下げた。全エッジ拠点が同時に自己申告した結果、facebook.com等は世界中のリゾルバで解決不能(SERVFAIL)になった。
- 社内ツール・リモートアクセスも同一基盤で共倒れし、復旧は現地作業依存で約6時間に及んだ。教訓は管理経路のアウトオブバンド化、ヘルスチェックの相関障害耐性、全依存の同一基盤集約リスクの直視。
何が起きたか(日時・影響範囲)
2021年10月4日 15:39 UTC頃、Facebook(現Meta)のFacebook・Instagram・WhatsApp・Messenger・Oculusなど月間35億人規模のサービス群が世界同時に停止し、復旧まで約6時間を要しました。外部の経路観測では、同社のBGP経路——とりわけ権威DNSサーバーへの経路——がインターネットの経路表から一斉に消えたことが確認され、facebook.comは世界中のリゾルバで解決不能になりました。公式ポストモーテム(engineering.fb.com)によれば、原因は攻撃ではなく、定期メンテナンス中に発行された1本のコマンドでした。
.com側の委任情報(NSレコード)は残っていたため、返答は「ドメイン不存在(NXDOMAIN)」ではなく、権威サーバーに到達できないリゾルバがタイムアウト後に返すSERVFAILでした。アプリの積極的な再試行も重なり、Cloudflareは自社リゾルバへの関連クエリが平常の約30倍に達したと報告しています。負荷は無関係のDNS基盤にまで波及しました。
タイムライン
Meta公式は分単位の時系列を公表していないため、時刻は外部の経路観測(Cloudflare等)に基づく概数です(すべてUTC)。
| 時刻(UTC) | 出来事 |
|---|---|
| 15:39頃 | バックボーン容量の空きを監査するコマンドが、誤って全バックボーン接続を切断(公式)。BGP経路取り下げの急増が外部で観測される |
| 直後 | データセンターへ到達できなくなった権威DNSサーバーが、設計どおり自身のBGP広告を取り下げ。世界中で名前解決が停止 |
| 障害中 | 社内ツールと通常のリモートアクセスも喪失。現地派遣に切り替えるが、物理・システム両面のセキュリティ設計により作業開始まで時間を要した(公式)。報道では入館バッジ認証の不調も伝えられた |
| 21:00頃 | バックボーン復旧。BGP経路の再広告が観測され始め、21:17頃にピーク |
| 21:20頃 | facebook.comの名前解決が回復。21:28頃にはFacebookのインターネット再接続が外部から確認され、以後は突入負荷を抑えながら段階的にサービス復旧 |
根本原因の技術解説
Metaのネットワークは、大規模データセンター群、ユーザーに近い小規模エッジ拠点(PoP)、両者を結ぶ自社バックボーンで構成されます。権威DNSサーバーはエッジ側に置かれ、周知のIPアドレスをBGPで(Anycastとして)世界へ広告します。
引き金は、グローバルバックボーンの容量余裕を評価する意図で発行されたコマンドです。これが誤って全バックボーン接続を落とし、全データセンターが相互にも、インターネットからも切断されました。この種のコマンドを事前検査する監査ツールはありましたが、ツール自体のバグにより実行を止められませんでした。
そこへ第二の故障が重なります。Metaの権威DNSサーバーは「自分からデータセンターへ到達できなければ、自分が不健全」とみなしてBGP広告を取り下げる設計でした。局所障害であれば、壊れた拠点だけが経路から抜け、トラフィックは健全な拠点へ逃げる合理的なフェイルアウトです。しかし今回はバックボーン全体が消えたため、全エッジ拠点が同時に「自分が不健全」と判定し、権威DNSの経路が地球上から消えました。サーバーは稼働したまま、到達経路だけが失われたのです。この判定が依拠する暗黙の前提——自分以外のどこかは健全——を、相関障害が同時に破壊した構図です。
さらにDNSの全喪失は、障害調査・復旧に使う社内ツール群を巻き込みました。通常手段でデータセンターに入れず現地対応へ切り替えましたが、施設は物理・システム両面で強固に防御されており、正規の緊急アクセス手順の発動にも余分な時間を要しました。
なぜ防げなかったか
横にスクロール
| 設計判断 | 平時・局所障害での効果 | 全断時に裏目に出た点 |
|---|---|---|
| ヘルスチェック連動のBGP取り下げ | 不健全な拠点を自動排除し健全側へ誘導 | 全拠点が同時撤退し、権威DNSごと世界から消滅 |
| コマンドの事前監査ツール | 危険な変更を実行前にブロック | 監査ツール自体のバグで素通し。防護柵がこの1枚だった |
| 社内ツール・アクセスの自社基盤集約 | 運用効率とセキュリティの一元化 | 調査・復旧の道具が障害と共倒れ |
| 物理・システムセキュリティの強化 | 不正アクセスの防止 | 正規の復旧作業まで遅延(公式が認めたトレードオフ) |
個々の設計は単体では合理的で、テストでも正しく動作します。敗因は、全バックボーン喪失という相関障害が、各設計の暗黙の前提(故障は部分的・脅威は外部・ツールは正しい)を同時に無効化したことです。公式はセキュリティ強化が復旧を遅らせた事実を認めた上で、日常の防御力との交換条件として妥当だったと総括しています。
教訓(原則として一般化)
- コントロールプレーンとデータプレーンの分離: 名前解決・監視・管理ツールを、守るべきサービスと運命共同体にしない。「復旧の道具は壊れた系に依存しない」ことを依存グラフで検証する。
- アウトオブバンド管理経路: 本番ネットワークから独立した管理経路・コンソールを常備し、緊急アクセス手順を平時から演習しておく。
- ヘルスチェックの相関障害耐性: 「不健全なら自分を外す」には、全体同時撤退への歯止め(撤退数の上限、最後の広告を維持するfail-static等)を組み込む。
- ガードレールの多層化: 監査ツールも故障する。ドライラン・段階適用・複数人承認を重ね、ガード自体をテスト対象にする。
- 復帰時の突入負荷管理: 全断からの一斉復帰は電力やキャッシュに突入負荷を生む(各データセンターで数十MW規模の変動)。Metaは拠点全停止を模擬するstorm演習の経験で段階復旧を成立させた。
BGP・DNSなど経路制御と名前解決の原理はネットワーク、変更管理やインシデント対応の設計はDevOpsの各トピックも参照してください。
障害事例の記事ガイド
Meta世界障害(2021)— BGPが消えた6時間を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
Meta
比較で見る軸
難易度: advanced / カテゴリ: 障害事例 / タグ数: 6
導入後に効く点
データセンターへ到達できなくなった権威DNSサーバーは、設計どおり自身のBGP広告を取り下げた。全エッジ拠点が同時に自己申告した結果、facebook.com等は世界中のリゾルバで解決不能(SERVFAIL)になった。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- advanced
- カテゴリ
- 障害事例
- タグ数
- 6
判断チェックリスト
- 自社の用途が「Meta / BGP」に近いか確認する。
- 強みである「2021年10月4日、バックボーン容量の空きを監査するコマンドが誤って全バックボーン接続を切断し、Metaの全データセンターが相互にもインターネットからも孤立。事前監査ツールはバグで実行を止められなかった。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。