Cloudflareでネットワークの50%がダウンする大規模障害、DiscordやFeedlyなどの大型サイトに影響
太平洋時間7月17日の午後、ルーターの設定ミスによりCloudflareのネットワークの50%が停止する大規模な障害が発生しました。この障害により、DiscordやFeedlyといった大型サイトが一時利用不可能になったと報じられています。
Cloudflare outage on July 17, 2020
https://blog.cloudflare.com/cloudflare-outage-on-july-17-2020/
Cloudflare DNS outage impacts Feedly, Tumblr, Discord, and more - DCD
https://www.datacenterdynamics.com/en/news/cloudflare-dns-outage-impacts-feedly-tumblr-discord-and-more/
Cloudflareは自身のデータセンター間を接続するために、専用線による単一のバックボーンを構築しています。専用線を敷設することで、インターネットを通過せずデータセンター間を接続することができるので、高速で信頼性の高い通信を実現することができると説明されています。
今回障害が発生したのはこのバックボーンにおける通信です。最初に異常が検知されたのは太平洋時間の7月17日20時25分で、ニューアークとシカゴのデータセンター間を接続する回線に問題が発生し、アトランタとワシントンD.Cのデータセンター間でバックボーンの混雑が発生したとのこと。この問題を解決するため、21時12分にアトランタのデータセンターでルーターの設定変更が行われましたが、その変更により27分間ネットワークがダウン。21時39分にアトランタのルーターをバックボーンから除外することでサービスは復旧したものの、21時47分から22時10分にかけてログやメトリクスを収集するデータセンターで混雑が発生。ネットワークが完全に復旧したのは22時10分でした。
ネットワークがダウンした27分の間、DiscordやFeedlyなどの一部サイトは利用不可能に。DiscordのTwitterアカウントは「インターネット上流における障害により、Discordの接続に問題が発生しています」と投稿しています。
Users are currently having trouble disconnecting to Discord due to an upstream internet issue. We've got all engineers on deck investigating the issue pic.twitter.com/GvtxKanokl
— Discord (@discord) July 17, 2020
Cloudflareが内部で使用している監視ツールが障害発生時に示した、ルーターのCPU利用率のグラフィックも公開されています。アトランタのデータセンターに設置されたルーターを指す最上部の「atl01」の利用率が赤色や黄色で表示されており、非常に高い負荷がかかってたことが示されています。それに対し、他の一部のデータセンターに設置されたルーターのCPU利用率は、まったくCPUに負荷がかかっていないことを表す白色で表示されており、アトランタのルーターに他のルーターに流れるべきトラフィックが集中していたことがわかります。
今回の障害は、アトランタのルーターがBGPでバックボーン内のルーターに不正な経路情報を通知したのが原因。アトランタのデータセンターで発生した混雑を回避するため、アトランタのルーターへ流入するバックボーンの一部トラフィックを除外しようと、ルーティングを設定するためのプレフィックスリスト「6-SITE-LOCAL」を無効化したとのこと。
プレフィックスリスト「6-SITE-LOCAL」に対して行われていた設定内容が以下。プレフィックスリストに一致するルートに対し、ルーターの優先度に関する項目であるlocal-preference値を200に設定し、いくつかのコミュニティを追加し、ルーティングを受け入れるという設定になっていました。
上記の設定が有効のままプレフィックスリストのみ無効化してしまったことにより、アトランタのルーターはすべてのルーターに対して自身のlocal-preference値が200であることを送信してしまいました。正しい設定はプレフィックスリストの無効化ではなく、プレフィックスリストに対して設定されていた各経路設定を無効にすることだったとのこと。他のルーターのlocal-preference値は100であり、local-preference値が高い経路が優先されるため、アトランタのルーターにバックボーンのトラフィックが集中してしまう障害が発生してしまったと説明されています。
今回の障害を受け、CloudflareはバックボーンのBGPセッションに最大プレフィクス長の制限を導入し、local-preferenceのデフォルト値を変更するとのこと。Cloudflareは「停止中にインターネットにアクセスできなかったすべてのユーザーに対し、ご迷惑をおかけして申し訳ありませんでした」とコメントしています。
・関連記事
Slackが2020年5月に起こした大規模障害の原因は何だったのか? - GIGAZINE
AWSが2.3TbpsものDDoS攻撃を受けていたことが判明 - GIGAZINE
ある日突然大量のウェブサイトにブロックされてしまった理由とは? - GIGAZINE
ついにFirefoxがDNSとの通信を暗号化する「DNS over HTTPS」をデフォルトで有効にすると発表 - GIGAZINE
自分の通信が安全にインターネットを通過しているか確認できるウェブサイト「Is BGP safe yet?」をCloudflareが公開 - GIGAZINE
・関連コンテンツ