从阿里云域名解析异常事件看下域名解析过程

近日阿里云核心域名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.comwww.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约束,确保及时更新。


参考资料:

  1. https://blog.csdn.net/techforward/article/details/131172230
  2. https://www.secrss.com/articles/79518
  3. https://status.aliyun.com/#/eventDetail?eventId=27
相关推荐
齐 飞19 小时前
使用阿里云的MaxCompute查询sql时报错:DruidPooledPreparedStatement: getMaxFieldSize error
sql·阿里云·odps
China_Yanhy20 小时前
AWS EKS三种类别,如何选择
云计算·aws
xybDIY21 小时前
亚马逊云 Organizations 组织 Link 账号关联与解绑自动化解决方案
运维·自动化·云计算·aws
倪某某21 小时前
阿里云无影GPU部署WAN2.2模型
阿里云·云计算
阿里云通信1 天前
WhatsApp 账号被封怎么办?日常“养号”、防封、解封实践
阿里云·whatsapp·whatsapp 封号
倪某某1 天前
阿里云ECS GPU部署WAN2.2
人工智能·阿里云·云计算
风吹落叶花飘荡1 天前
将mysql数据库的内容备份至阿里云 oss归档存储
数据库·mysql·阿里云
小白考证进阶中1 天前
阿里云ACA认证常见问题答疑
阿里云·大模型·云计算·阿里云aca证书·阿里云aca·aca认证·入门证书
可爱又迷人的反派角色“yang”1 天前
k8s(四)
linux·网络·云原生·容器·kubernetes·云计算
可爱又迷人的反派角色“yang”1 天前
k8s(二)
linux·运维·docker·云原生·容器·kubernetes·云计算