近日阿里云核心域名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