昨夜から世界的にFacebookファミリーのサービスで不調が続いている。セキュリティ企業の一部は、大きな原因はBGP(ボーダー・ゲートウェイ・プロトコル)の「ルート・リーク」によるものだろうと推測している。
トラフィックを最適な経路で送受信するためのルーティングはこのBGPに大きく依存している。BGPはルーティング・ポリシーを共有する大規模なネットワーク(AS、自律システム)間でのトラフィックの経路を規定するプロトコルだ。これには不正または悪意があると認定されたアドレスが送信されないようにする機能がある。しかしときおりミスが起きるのは避けられない。不正なデータが混入するとルート・リーク(route leak)と呼ばれる状態が出現する。これはトラフィックを混乱させ、大規模なサービスのダウンを引き起こすことがある。
BGPルート・リークが起きるとルーティング宣言は不正なものとなり、パケットの送信者、中継者、受信者という経路のどこかで拒否されることになる。これがFacebookのダウンを起こしている原因だという。NETSCOUTのプリンシパル・エンジニア、Roland DobbinsはTechCrunchに対してメールで以下のように説明した。
2019年3月13日午後12時52分(東部標準時)ごろ、 ヨーロッパのISPの一つからメジャーISPにトラフィックを送信する際にBGPのルーティング・リークが起きたもようだ。この不正が順次下流に拡大し、アクセス待ち時間の増大などエンドユーザーにも認識できる問題が生じはじめた。
ただし専門家もすべて意見が一致しているわけではない。テュレーン大学の客員教授であるTom Thomas氏はBGPのルート・リークが原因だという考えに反対して次にように述べている。
ルート・リークは今回のFacebookのダウンの原因の一つではありえる。ルーターが「リーク」を起こして不正なデータを送出するようになるとその被害は甚大なものとなる。
ただし、BGPは基本的に静的なプロトコルだ。つまり一度セットアップされるとその後ほとんど書き換えらえることはない。むしろ原因はサービスの効率を高めるための各種のヘルスチェックを含む最適化プログラムのエラーにあるのではないか。あくまで推測だが、今日のダウンは高レベルでビジネスを制御するプログラムのコードのバグによるものだと思う。Facebookが所有するいくつものサービスにまたがって不調が起きているということは、多数のサービスの処理を効率化し、中央集権化しようとする試みの中に根本的な原因があることを推測させる。
Facebookファミリーで水曜日の大部分の時間ダウンしていた。
これまでのとこところはっきりした情報は出ていないがインターネットは(当然だが)大混乱に陥っている。
FacebookはTwitterで問題が起きていることを認めている。TechCrunchでは新たな展開があり次第アップデートする。
ソーシャルメディア管理ツールのNaytevもダウンを確認している。「Facebookは大規模な障害に直面しており、Facebookへの投稿、Naytevへのログインが困難になっている。われわれは全力を挙げて情報を収集している。Facebookがこの問題を一刻も早く解決することを強く期待する」とユーザー向けページで述べている。
ダウンが長引くにつれ、 FacebookではTwitterでネットに流れているいくつかの情報に回答し始めた。たとえば、Facebookは「ダウンの元原因はDDoS(分散サービス拒否)攻撃だ」という噂を根拠ないものとして否定している。
【編集部注】日本時間3月14日午前10時40分現在、デスクトップ・アプリではログインできるもののコンテンツが表示されないなど深刻な不具合が起きている。モバイルアプリではやや程度は軽いもののエラーが表示される状態が続いている。
(原文へ)
(翻訳:滑川海彦@Facebook Google+)