
先日発生した1.1.1.1 Resolverのサービス停止は、サイバー攻撃やBGPハイジャックによるものではないかとの憶測を打ち消すため、Cloudflareは事後調査の中で、この事故は内部の設定ミスが原因であったと説明している。
この障害は7月14日に発生し、世界中のほとんどのサービス利用者に影響を与え、多くの場合インターネットサービスが利用できなくなった。
「根本的な原因は内部の設定ミスであり、攻撃やBGPハイジャックの結果ではありません」とCloudflareは発表の中で述べている。
この声明は、停電がBGPハイジャックによって引き起こされたとソーシャルメディアで報告された後のものである。
グローバルな障害発生
Cloudflareの1.1.1.1パブリックDNSリゾルバは、世界中のユーザーにプライベートで高速なインターネット接続サービスを約束するもので、2018年にサービスを開始した。
同社は今回の障害の背景について、6月6日に行われた将来のDLS(Data Localization Suite)の設定変更により、1.1.1.1リゾルバのIPプレフィックスが誤って非本番のDLSサービスにリンクされたためと説明している。
7月14日21:48 UTCに新しい更新が行われ、非稼働中のDLSサービスにテストロケーションが追加され、ネットワーク構成がグローバルに更新され、誤った構成が適用されました。
これにより、Cloudflareの本番データセンターから1.1.1.1リゾルバのプレフィックスが削除され、単一のオフラインロケーションにルーティングされ、サービスはグローバルに到達不能になりました。
それから4分も経たないうちに、1.1.1.1リゾルバへのDNSトラフィックが減少し始めました。22:01 UTCまでにCloudflareはこのインシデントを検知し、一般に公開した。
22:20UTCに誤設定は元に戻され、Cloudflareは撤回されたBGPプレフィックスの再広告を開始しました。最終的に、22:54 UTCにすべてのロケーションで完全なサービス復旧が達成されました。
この障害は、1.1.1.1(メインパブリックDNSリゾルバ)、1.0.0.1(セカンダリパブリックDNSリゾルバ)、2606:4700:4700::1111および2606:4700:4700::1001(メインおよびセカンダリIPv6 DNSリゾルバ、Cloudflareインフラストラクチャ内のルーティングをサポートする複数のIP範囲を含む複数のIP範囲に影響を与えました。

ソースはこちら:クラウドフレア
プロトコルへの影響については、上記アドレスへのUDP、TCP、DNS-over-TLS(DoT)クエリの量は大幅に減少したが、DNS-over-HTTPS(DoH)トラフィックはcloudflare-dns.comを経由する別のルーティングに従うため、ほとんど影響を受けなかった。

ソースはこちら:クラウドフレア
次のステップ
Cloudflareがプログレッシブ・ロールアウトを実行するシステムを使用していれば、この設定ミスは修正された可能性がある。
このため、レガシーシステムを廃止し、静的なIPバインディングの代わりに抽象的なサービストポロジーを利用し、段階的な展開、各段階での健全性監視、問題が発生した場合の迅速なロールバックを可能にする、より新しい設定システムへの移行を加速させる予定である。
Cloudflareはまた、サービス・トポロジーとルーティングの動作に関する社内文書が不十分であったため、この設定ミスがピアレビューを通過し、発見されなかったと指摘している。
.ia_ad { background-color:#width: 95%; max-width: 800px; margin: 15px auto; border-radius: 8px; border:1px solid #d6ddee; display: flex; align-items: stretch; padding: 0; overflow: hidden; }:0; overflow: hidden; } .ia_lef { flex: 1; max-width: 200px; height: auto; display: flex; align-items: stretch; } .ia_lef a { display: flex; width: 100%; height: 100%; } .ia_lef a img { width: 100%; height: 100%; object-fit: cover; border-radius: 8px 0 0 8px; margin: 0; display: block; } .ia_rig { flex: 2; padding:display: flex; flex-direction: column; justify-content: center; } .ia_rig h2 { font-size: 17px !important; font-weight: 700; color:#line-height: 1.4; font-family:margin: 0 0 14px 0; } .ia_rig p { font-weight: bold; font-size: 14px; margin: 0 0 clamp(6px, 2vw, 14px) 0; } .ia_button { background-color:#border:1px solid #3b59aa; color: black; text-align: center; text-decoration: none; border-radius: 8px; display: inline-block; font-size: 16px; font-weight: bold; cursor: pointer; padding:10px 20px; width: fit-content; } .ia_button a { text-decoration: none; color: inherit; display: block; } @media (max-width: 600px) { .ia_ad { flex-direction: column; align-items: center; text-align: center; } .ia_lef { max-width: 100%; } .ia_lef a img { border-radius: 8px 8px 0 0; } .ia_rig { padding:15px;
width: 100%;
}
.ia_button {
width: 100%;
margin: 0px auto;
}
}




Comments