4月2日に発生したMicrosoftのサービス障害、原因はDNSクエリの異常な急増とDNS Edgeキャッシュの効率を低下させるコードの不具合
日本時間4月2日朝に発生したAzure DNSの可用性に関する問題について、Microsoftが原因と対策を公表している(Azure の状態の履歴、 The Registerの記事、 Neowinの記事)。
問題が発生したのは日本時間2日6時21分から7時の間で、Azureがホストしているドメインを対象にしたAzure DNSサーバーへのDNSクエリが異常に急増したのだが、特定の一連のイベントでDNS Edgeキャッシュの効率を低下させるコードの不具合が露呈したという。これによりDNSサービスが過負荷の状態になり、DNSクライアントのリトライも増加してさらに負荷が上昇した。
クライアントからのリトライは正規のDNSトラフィックであることから、トラフィック急増緩和システムによる間引きも行われず、DNSサービスの可用性低下につながったとのこと。これにより、顧客はドメイン名の解決ができなくなり、AzureやMicrosoftのサービスが使用できないという事態になった。
サービスの可用性低下は監視システムを始動させ、DNSサービスは7時までに自動で復旧した。しかし、この復旧時間は設計目標よりも長い時間を要しており、Microsoftのエンジニアはさらなる対応が必要な場合に備えて容量とDNSクエリへの応答能力追加を準備。大半のサービスは7時30分までに復旧したという。インシデント発生直後、過度のリトライからDNSサービスを保護するため、トラフィック量急増緩和システムのロジックを更新したとのこと。
Microsoftでは次のステップとして、すべてのリクエストがキャッシュ内で効率よく処理できるようコードの不具合を修正すること、異常なトラフィックパターンの自動的な検出と緩和を改善することを挙げている。
4月2日に発生したMicrosoftのサービス障害、原因はDNSクエリの異常な急増とDNS Edgeキャッシュの効率を低下させるコードの不具合 More ログイン