微軟披露本月初Azure宕機原因:DNS請求激增和代碼缺陷
針對本月初的Azure服務宕機大約1小時,微軟近日披露原因是因為域名系統(DNS)請求激增加上代碼缺陷造成的。用戶報告稱在北京時間4月2日3點21分至4點期間,Azure Portal、Azure Services、Dynamics 365和Xbox Live均無法訪問。微軟表示大部分服務已經在4點30分前恢復。
雖然微軟很快就確認了此次故障與其DNS 功能有關,但該公司4 月4 日公佈的最終根源分析更多地揭示了原因是其DNS 服務中一個之前未被發現的代碼缺陷,該缺陷是由DNS 客戶端過度重試引發的。微軟表示:“Azure DNS 服務器經歷了來自全球各地針對Azure 上託管的一組域的DNS 查詢的異常激增”。
微軟表示:“通常情況下,Azure的層層緩存和流量整形會減輕這種激增。在這次事件中,一個特定的事件序列暴露了我們的DNS服務中的代碼缺陷,降低了我們DNS Edge緩存的效率”。
由於DNS客戶端重試請求,微軟的DNS服務被淹沒,這進一步增加了服務的壓力。微軟指出,DNS客戶端重試被認為是合法的DNS流量,因此這些流量並沒有被微軟的體積緩解系統丟棄,進而降低了其DNS服務在多個地區的可用性。微軟表示,它通過更新體積尖峰緩解系統的邏輯來緩解這一問題,以保護DNS服務免受過度的客戶端重試。