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

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


参考资料:

  1. https://blog.csdn.net/techforward/article/details/131172230
  2. https://www.secrss.com/articles/79518
  3. https://status.aliyun.com/#/eventDetail?eventId=27
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值