AICon 深圳站聚焦 Agent 技术、应用与生态,大咖分享实战干货 了解详情
写点什么

Azure 全球中断三小时:微软回复称 DNS 更新故障

  • 2019-05-05
  • 本文字数:1386 字

    阅读完需:约 5 分钟

Azure全球中断三小时:微软回复称DNS更新故障

5 月 2 日 19:29 到 22:35 UTC 之间,微软 Azure 发生了三小时左右中断,导致 Azure、Microsoft 365、Dynamics 和 DevOps 等多项服务出现连接问题。


根据最新消息,本次事故发生在 DNS 迁移期间,具体时间为 5 月 2 日 19:29 到 22:35 UTC 之间,大多数服务在 UTC 时间 21:40 恢复,其余服务在 22:35 UTC 恢复。根据微软方面的回复,造成该事故的根本原因如下:


作为计划维护活动的一部分,微软工程师执行了配置更改,以更新用于访问多个微软服务(包括 Azure 存储和 Azure SQL 数据库)的 DNS 区域名称服务器(name server)之一。更改过程失败导致这些区域的四个名称服务器(name server)之一指向没有数据的 DNS 服务器并返回否定响应。结果是,这些服务使用的域(例如database.windows.net)中大约 25%的查询产生了错误结果,并且这些服务的可访问性降低。因此,依赖于这些核心服务的多个其他 Azure 和 Microsoft 服务受到不同程度的影响。


该事件对 Azure 计算、存储、App Service、Azure AD 身份服务和 SQL 数据库产生了连锁反应。根据外媒 The Register 此前的报道,本次受影响的服务包括 SharePoint Online,OneDrive for Business,Microsoft Teams,Stream,Power BI,Planner,Forms,PowerApps,Dynamics 365,Intune 和 Office Licensing。



微软方面表示,此事件源于两个独立的错误和一些巧合,这两个错误本身其实不会产生影响:


1、微软工程师执行了名称服务器(name server)委派更改以更新多个区域的名称服务器,包括 Azure 存储和 Azure SQL 数据库。其中,每个区域有四个名称服务器用于冗余,并且在此维护期间仅对一个名称服务器进行更新。用于进行更改的自动化参数配置错误导致名称服务器委派错误。


2、作为先前自动化工作的一部分,空区域文件存在于非指定委托的预期目标服务器上。这本身并不是问题,因为名称服务器没有为相关区域提供服务。


但是,由于此实例中更改自动化出现配置错误,被委派的目标名称服务器是空副本。因此,此名称服务器对区域中所有查询给出了否定(nxdomain)答案。由于该区域的四个名称服务器记录中只有一个是不正确的,因此受影响区域大约四分之一的查询收到不正确的否定响应。



为解决此问题,微软工程师通过将名称服务器值还原为先前的设置来更正委派问题。工程师验证所有响应都是正确的,DNS 解析器开始在 5 分钟内返回正确结果。某些访问错误值并缓存结果的应用程序和服务可能需要更长的恢复时间,直到错误的缓存信息到期为止。在事件发生期间,微软多次更新页面,并逐渐恢复服务。该公司向客户保证,DNS 记录在活动期间没有受到影响,并且 Azure DNS 本身仍然存在。


对此,微软方面建议用户可以执行以下操作(包括但不限于):


  • 执行名称服务器更新代码中的附加检查,以防止意外更改(正在进行)。

  • 预执行建模,以准确预测变更结果,并在执行[正在进行]之前检测潜在问题。

  • 改进每个区域,每个名称服务器监视器,立即检测导致一个名称服务器偏离其他名称服务器(正在进行)的更改。

  • 改进 DNS 命名空间设计,以更好地允许分阶段推出更改,同时降低增量影响(进行中)。


根据了解,这不是微软 Azure 第一次发生服务中断。1月份,全球Azure中断影响了 Office 365,Azure 和 Dynamics 365 服务,原因也与 DNS 有关,微软方面表示是 Level 3 托管 DNS 服务出现问题。去年底,Azure AD 多因素身份验证中断使全球的 Office 365 用户无法登录其帐户。


2019-05-05 19:505750
用户头像
赵钰莹 极客邦科技 总编辑

发布了 897 篇内容, 共 689.5 次阅读, 收获喜欢 2698 次。

关注

评论 1 条评论

发布
用户头像
宕机年年有啊
2019-05-05 19:52
回复
没有更多了
发现更多内容

给你讲懂 MVCC 续篇

Nick

MySQL 源码 MVCC 6月月更 深入解析

自动化测试

IT蜗壳-Tango

6月月更

波卡生态发展不设限的奥义——多维解读平行链

One Block Community

区块链 科技

TSDB在民机行业中的应用

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

netty系列之:在netty中使用tls协议请求DNS服务器

程序那些事

Java Netty 程序那些事 6月月更

探索C语言程序奥秘——C语言程序编译与预处理

未见花闻

6月月更

java定义属性错误_错误处理

工程师日月

6月月更

“阿里健康”们的逻辑早就变了

科技新知

Redis 那些事

Damon

6月月更

谈谈飞书对开发工作的优势 | 社区征文

武师叔

初夏征文

由点到面贯穿整个Java泛型理解

知识浅谈

Java泛型

Smartctl 打开设备遇到 Permission denied 问题排查过程记录

耳东@Erdong

Linux smart 6月月更 Permission denied

疫情防控,居家办公,网上授课之心得 | 社区征文

sky

初夏征文

面向对象开发

Jason199

面向对象 js 6月月更

一文搞懂php中的(DI)依赖注入

乌龟哥哥

6月月更

非凸联合创始人李佐凡:将量化作为自己的终身事业

非凸科技

人工智能 机器学习 rust 量化交易 算法交易

Sumati GameFi生态纵览,神奇世界中的元素设计

鳄鱼视界

Java Core 「17」ThreadLocal

Samson

学习笔记 Java core 6月月更

如何抓手机的包进行分析,Fiddler神器或许能帮到您!

wljslmz

抓包 fiddler 6月月更

jwt

卢卡多多

JWT 6月月更

Android 硬布局item的高级写法

yechaoa

android layout 6月月更

你真的需要自动化测试吗?

老张

软件测试 自动化测试

Java基础:异常处理机制

百思不得小赵

异常 javase 6月月更

论一个优秀红队人员的自我修养

穿过生命散发芬芳

6月月更 攻防演练 自我修养

实战攻防演练中的四大特点

穿过生命散发芬芳

6月月更 攻防演练

MCN机构遍地开花:博主和作者要谨慎签约、行业水很深

石头IT视角

ERROR日志格式与注意点

zarmnosaj

6月月更

GitHub 高赞的 Flutter 状态管理插件BLoC 简介

岛上码农

flutter ios 安卓开发 跨平台开发 6月月更

被疫情偷走的时间都去哪了 | 社区征文

宇宙之一粟

时间管理 居家办公 6月月更 初夏征文

Azure全球中断三小时:微软回复称DNS更新故障_服务革新_赵钰莹_InfoQ精选文章