DNSでR01レジストラーがクラッシュし、致命的な事故が発生する

今日、R01の最も古いレジストラの1つがDNSの障害を発表しました

この点で、私たちの会社をほとんど殺してしまったことについて、少し有益な話をしたいと思います。



本来、私たちはWeb向けのサース分析です。 主な武器は、統計を収集するjavascriptファイルです。 このファイルはユーザーの多くのサイトに配布されるため、その完璧な安定性を確保する必要があります。サイトのアクセス不能性がお客様のサイトに影響を与えてはなりません。 そして、完全な安定性を確保するために多大な努力を費やしました:スクリプトを優れた強力なCDNに入れ、このCDNを抽象化するようにドメインを作成しました(これにより、CDNが失敗または高すぎる場合はいつでも変更できます)。 しかし、DNSサーバーはレジストラにありました。



R01のDNSの障害は、すべてのドメインが1つの特定のIPアドレスに解決されたことで、HTTP要求の広告を含む通常のドメインパーキングページが表示されました。 または、何も表示されませんでした。なぜなら、このIPは、DNSをR01に保持している馴染みのあるサイトにアクセスしようとしたすべての人々からの自発的なDoS攻撃を生み出したからです。 しかし、私たちの場合ではありません。 サーバーは/somescript.jsリクエストにscriptで応答します 。 スクリプトだけでなく、次のように動的に生成されます。



var redir_url = 'http://運命のIPに解決されたドメイン/';

if(window!= top){

top.location.href = redir_url;

} else {

window.location = redir_url;

}



スクリプトは、リクエストパラメータを(まだサーバー上で)切断し、ベースドメインにリダイレクトします。 サイトのスクリプトではなく、分析に接続したすべてのユーザーが、サイトから左ページへのリダイレクトを実行する見知らぬ人を受け取りました。



部分的に、それは、そのIPに応答していたサーバーがほとんどの場合、そのIPへのリクエストの数のためにDDoSの下にあったことだけを節約しました。 、もちろん、他の人のサイトには一切影響しません)。 しかし、サーバーからの応答を「ラッキー」に受信した割合の一部は、リダイレクトを受信しました。



状況の致命的な組み合わせは、よくあることですが、プロジェクトに2年間かかっています。 使用できないDNS。 利用可能なDNS。リクエストを利用できないサーバーにルーティングします アクセス可能なDNS +利用可能なサーバー。ただし、スクリプトでスクリプトリクエストに応答しません。 以前のすべて、ただしリダイレクトしないスクリプト-これはすべて、ユーザーのサイトへの壊滅的な影響を回避するのに役立ちます。 私たちのサービスがこのように打撃を受けた後に外に出ることができるかどうかはわかりませんが、多くの顧客は、当然、不可解なリダイレクトに関するユーザーからの苦情に気付きました。 それを隠さずに、世界中のDNSキャッシュが更新されるまで、サービスを無効にするよう要求するメールをすぐに送信しました。



話の教訓は単純です。すべてを予見することは不可能であり、DNSサーバーのような信頼性が高く使い慣れたものでさえも信頼できません。



そのような状況を予見することは非常に困難でした。 もちろん、DNSプロバイダーを変更し、信頼性が高い場合はサーバーをセットアップします。 しかし、DNSとCDNは、何でも壊すことができます。 飛行する機会を最小限に抑えるためにできることは、システム内のすべてのポイントで、可能な限り最も信頼性の高いソリューションを使用することです。 DNSサーバーまたはレジストラの選択であっても。



All Articles