近日阿里云核心域名aliyuncs.com解析异常,涉及众多依赖阿里云服务的网站和应用,故障从发现到修复耗时5个多小时。本文简要分析下整个事件的过程,并分析域名解析的过程,了解根域名服务器在其中的作用,以了解。
1、aliyuncs.com域名解析异常
2025年6月6日,阿里云核心域名 aliyuncs.com 被劫持并重定向至 sinkhole.shadowserver.org,导致其对象存储服务(OSS)、内容分发网络(CDN)以及云解析DNS等多项核心云服务出现大范围故障,波及众多依赖阿里云服务的网站和应用。从发现故障到完成修复,耗时5小时43分。
1.1 事件背景
1)被劫持域名
aliyuncs.com是阿里云核心服务的关键域名,其子域名承载了对象存储(OSS)、内容分发网络(CDN)、容器镜像服务(ACR)等核心功能。
2)劫持目标
域名被指向sinkhole.shadowserver.org——这是非营利安全组织Shadowserver用于接管恶意流量的“安全黑洞”地址,通常用于隔离僵尸网络、钓鱼网站等威胁。
3)技术操作
劫持是通过修改域名的NS记录(权威域名服务器)实现的。原本指向阿里云自有DNS服务器(如 ns3.aliyun.com)的记录被改为Shadowserver的服务器,导致全球DNS递归查询均被导向安全黑洞。
1.2 事件原因
关于事件的原因,目前还没有官方的澄清,主流观点集中在两种:
1)安全合规性接管论
Shadowserver是一个网络安全机构,长期配合FBI等机构打击网络犯罪,曾接管勒索软件域名。此次可能因aliyuncs.com下某子域名涉及恶意活动(如托管病毒、钓鱼页面、违规内容等),被认定为“高危域名”。因此,Shadowserver向域名注册商 VeriSign(.com域名管理者)提交证据,VeriSign依据ICANN条款紧急修改NS记录,然后将域名控制权移交Shadowserver。但是阿里云作为主流云服务商,若因个别子域名违规遭整体接管,显得“过度执法”,缺乏分级响应机制。具体原因尚未得到阿里云或Shadowserver的官方证实。
2)地缘政治干预论
美国注册商VeriSign可基于本国司法命令快速冻结域名(如“紧急接管条款”)。结合中美科技竞争背景,不排除政治动机操作。不过事件未伴随任何政府声明,且修复需与VeriSign协商,而阿里云很快完成了修复,这种可能性不大。
1.3 事件影响
由于aliyuncs.com是阿里云核心服务的基础域名,解析异常导致大量依赖阿里云基础设施的网站和应用无法正常运行,包括cnblog博客园等知名平台因此受到波及。此次事件暴露域名系统在安全管理上的潜在风险:核心业务域名若受制于国际注册商(如VeriSign),可能因政策、司法或安全干预瞬间崩坏。因此需要有相应的应对措施,比如域名去国际化、建立根域名服务器镜像、使用备用域名避免单一依赖等。
面对IPv4时代根域名服务器的被动局面,国内早已采取了“双轨并行”的战略:首先是在国内部署镜像根服务器,通过专用硬件设备实时同步全球域名数据,一旦国际链路中断,国内镜像服务器可在5秒内完成切换,保障基础网络服务;另外在2015年,中国联合日本、美国等16国发起全球IPv6根服务器部署计划,截至2025年全球已架设25台IPv6根服务器,其中4台部署在中国(1台主根、3台辅根)。
2、域名解析过程
2.1 什么是根域名服务器
互联网的底层逻辑始终围绕着根域名服务器(Root Server)展开。在IPv4体系下,全球仅13组根服务器构成了互联网的“中枢神经”,其中1个为主根域名服务器在美国,其余12个均为辅根域名服务器,其中9个放置在美国,欧洲2个位于英国和瑞典,亚洲1个位于日本,而国内是没有IPv4根域名服务器的。
这13组根服务器对应的是13个IP地址,对应了A-M共13个编号(如a.root-servers.net到m.root-servers.net)。其背后使用了任播(Anycast)技术,任播最初由RFC1546提出,主要用在DNS根服务器上,具体的解释如下:
任播是指在IP网络上通过一个IP地址标识一组提供特定服务的主机,服务访问方并不关心提供服务具体是哪一台主机提供的,访问该地址的报文可以被IP网络路由到“最近”的一个(最好也只是一个,别送到多个)服务器上。这里“最近”可以是指路由器跳数、服务器负载、服务器吞吐量、客户和服务器之间的往返时间(RTT,round trip time)、链路的可用带宽等特征值。
这意味着在全球范围内部署了数百台物理服务器,它们共享这13个IP地址。当向其中一个IP发送查询时,网络路由会将你的请求引导到离你地理位置最近、网络状况最好的一个物理服务器实例上。这种部署极大地提高了根服务器的性能、可靠性和抗攻击能力。
1)根域名服务器作用
- DNS查询的起点: 当本地DNS解析器不知道某个域名的权威服务器在哪里时,它首先会查询根域名服务器。
- 提供顶级域(TLD)服务器的指引:根服务器本身通常不存储具体域名(如 www.aliyun.com)的IP地址信息。它们存储的是所有顶级域(Top-Level Domains, TLDs)的权威服务器信息。这些顶级域包括:通用顶级域(gTLD):如.com, .net, .org, .edu, .gov, .mil, .int, 以及后来的 .info, .biz, .name, .xyz 等新gTLD;国家和地区代码顶级域(ccTLD):如 .cn, .uk, .jp, .de 等。
- 引导解析器:根服务器在收到查询后,会告诉解析器:“你要找的域名属于.com 这个顶级域,负责.com域的权威服务器的地址是这些”。解析器接着就去查询.com的权威服务器。
2.2 域名和DNS区别
域名是人类可读、便于记忆的互联网地址标识符。它是一个层次化的字符串,用于唯一标识一台服务器、服务或网络资源在互联网上的位置。例如:www.aliyun.com、www.baidu.com。
DNS是一个分布式数据库系统和一个服务协议,它会将人类可读的域名转换成机器可用的IP地址 。DNS采用树状层级结构,根服务器在顶端,下面是顶级域(TLD)服务器,再下面是二级域(如 aliyun.com)的权威服务器,依此类推。同时DNS中定义了客户端(解析器)如何向服务器查询信息,以及服务器如何响应的规则。
2.3 域名解析过程
当从客户端输入某个域名地址如www.aliyun.com,整个域名解析过程如下所示:
1)用户输入与本地缓存检查
用户在浏览器中输入https://www.aliyun.com并回车。浏览器首先检查自己的缓存中是否有www.aliyun.com对应的IP地址,并且该记录是否未过期(TTL未超时)。如果有且有效,则直接使用该IP建立连接,跳过后续所有DNS查询步骤。
2)操作系统缓存检查
如果浏览器缓存没有,浏览器会询问操作系统的DNS缓存。操作系统缓存可能保存着之前其他程序查询过的结果。如果找到有效记录,则返回给浏览器使用。
3)本地Hosts文件检查
如果操作系统缓存也没有,操作系统会检查本地的hosts文件(如Linux的/etc/hosts)。这个文件可以手动配置域名到IP的映射。如果找到匹配项,则使用该IP。
4)查询本地DNS解析器
如果以上缓存和hosts文件都没有所需记录,操作系统会将DNS查询请求发送给配置的本地DNS解析器。这个解析器通常是路由器(192.168.x.x)、ISP 提供的DNS服务器(如 8.8.8.8, 114.114.114.114),或者公共 DNS(如 8.8.8.8, 1.1.1.1)。
5)本地DNS解析器的缓存检查
本地DNS解析器首先检查自己的缓存中是否有www.aliyun.com的记录且未过期。如果有,则直接返回结果给客户端操作系统,操作系统再给浏览器。
6)递归查询开始(向根域名服务器)
如果本地DNS解析器的缓存里没有www.aliyun.com的记录,它必须开始一个递归查询过程来找到答案。首先解析器知道根域名服务器的IP地址列表(这些地址通常是硬编码在解析器软件中或通过配置获得),然后解析器向13组根域名服务器中的某一个(通常是随机选择一个,或者根据网络状况选择最快的)发送一个DNS查询请求,询问 www.aliyun.com 的A记录。
注意: 根服务器只负责顶级域(TLD)的信息,它不知道aliyun.com或www.aliyun.com的具体地址。
7)根域名服务器的响应
根服务器收到查询后,查看请求的域名www.aliyun.com。它识别出这个域名的顶级域(TLD)是 .com,它不会给出www.aliyun.com的IP,而是给出一个 “引荐”(Referral)响应。这个响应包含:负责.co这个顶级域的权威域名服务器(TLD Nameservers)的域名列表以及这些域名对应的IP地址列表。通常响应里会直接包含这些TLD服务器的IP地址(称为“胶水记录” Glue Records),以避免解析器再去查询这些TLD服务器域名的IP。
8)查询 TLD(.com)权威服务器
本地DNS解析器收到根服务器的引荐响应后,选择其中一个.com TLD权威服务器的IP地址(如192.xx.xx.xx-a.gtld-servers.net)。解析器向这个.com TLD权威服务器发送查询请求,同样询问www.aliyun.com的A记录。
9)TLD(.com)权威服务器的响应
.com TLD 权威服务器收到查询后,查看请求的域名www.aliyun.com。它识别出这个域名的二级域(Second-Level Domain)是aliyun.com。TLD服务器也不知道www.aliyun.com的具体地址,但它知道负责aliyun.com这个域的权威域名服务器(Authoritative Nameservers)的域名列表(如 dns9.hichina.com, dns10.hichina.com)。TLD服务器返回一个引荐响应给本地DNS解析器,包含 aliyun.com 的权威服务器的域名列表,通常也会包含这些权威服务器的IP地址(胶水记录)。
10)查询 aliyun.com 的权威服务器
本地DNS解析器收到TLD服务器的引荐响应后,选择其中一个aliyun.com权威服务器的IP地址。解析器向这个aliyun.com的权威服务器(例如 dns9.hichina.com)发送查询请求,询问www.aliyun.com的A记录。
11)aliyun.com 权威服务器的响应
aliyun.com 的权威服务器是最终掌握 aliyun.com 及其子域名(如 www.aliyun.com)真实记录的服务器。它查找自己的区域文件(Zone File),找到 www.aliyun.com 对应的A记录(IP地址)。它将该IP地址(如 203.xx.xx.xx)作为 “权威应答”(Authoritative Answer)返回给本地DNS解析器。
12)本地DNS解析器缓存并返回结果
本地DNS解析器终于获得了www.aliyun.com的IP地址。解析器将这个结果以及相关的TTL(生存时间)值缓存到自己的内存中,以便后续相同的查询能快速响应。最后将这个最终的IP地址返回给发起查询的客户端操作系统。
13)客户端建立连接
客户端操作系统将IP地址交给浏览器。浏览器使用这个IP地址(203.xx.xx.xx)向阿里云的Web服务器发起TCP连接,开始传输网页内容。
2.4 DNS中几个概念
1)递归与迭代查询
客户端到本地DNS解析器为递归查询(解析器负责完整结果)。本地DNS解析器向根/TLD/权威服务器为迭代查询(逐步获取引荐)
2)胶水记录(Glue Records)
根/TLD服务器在响应中直接提供下一级服务器的IP,避免额外查询 。
3)TTL控制缓存
所有缓存均受TTL约束,确保及时更新。
参考资料:
- https://blog.csdn.net/techforward/article/details/131172230
- https://www.secrss.com/articles/79518
- https://status.aliyun.com/#/eventDetail?eventId=27