從阿里云域名解析異常事件看下域名解析過程

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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/83236.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/83236.shtml
英文地址,請注明出處:http://en.pswp.cn/web/83236.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

應用分享 | 精準生成和時序控制!AWG在確定性三量子比特糾纏光子源中的應用

在量子技術飛速發展的今天,實現高效穩定的量子態操控是推動量子計算、量子通信等領域邁向實用化的關鍵。任意波形發生器(AWG)作為精準信號控制的核心設備,在量子實驗中發揮著不可或缺的作用。丹麥哥本哈根大學的研究團隊基于單個量…

基于規則的自然語言處理

基于規則的自然語言處理 規則方法形態還原(針對英語、德語、法語等)中文分詞切分歧義分詞方法歧義字段消歧方法分詞帶來的問題 詞性標注命名實體分類機器翻譯規則方法的問題 規則方法 以規則形式表示語言知識,強調人對語言知識的理性整理&am…

Vue Fragment vs React Fragment

文章目錄 前言🧩 一、概念對比:Vue Fragment vs React Fragment📦 二、使用示例對比? Vue 3 中使用 Fragment? React 中使用 Fragment 🔍 三、差異解析1. **使用方式**2. **傳遞屬性(如 key)**3. **插槽系…

3D圖像渲染和threejs交互坐標系入門知識整理

1. Games101 b站上面就有,看到第9節課基本對于圖形渲染的原理和渲染過程有所了解。然后就可以使用openGL和GLSL。 點輸入->投影到二維(生成三角形面)->光柵化為像素->z-buffer深度緩存判斷層級->著色shading 2. openGL和GLSL 參…

跨平臺架構區別

文章目錄 重編譯時輕運行時(uniapp)輕編譯時重運行時(Taro) 重編譯時輕運行時(uniapp) 對 vue 語法直接進行編譯轉換成對應平臺代碼,再通過添加運行時代碼去補充能力,比如 nextTick…

windows系統MySQL安裝文檔

概覽:本文討論了MySQL的安裝、使用過程中涉及的解壓、配置、初始化、注冊服務、啟動、修改密碼、登錄、退出以及卸載等相關內容,為學習者提供全面的操作指導。關鍵要點包括: 解壓 :下載完成后解壓壓縮包,得到MySQL 8.…

macOS多出來了:Google云端硬盤、YouTube、表格、幻燈片、Gmail、Google文檔等應用

文章目錄 問題現象問題原因解決辦法 問題現象 macOS啟動臺(Launchpad)多出來了:Google云端硬盤、YouTube、表格、幻燈片、Gmail、Google文檔等應用。 問題原因 很明顯,都是Google家的辦公全家桶。這些應用并不是通過獨立安裝的…

HarmonyOS 應用開發學習記錄 - 從Windows開發者視角看鴻蒙開發

起始 2024年6月21日召開的華為開發者大會2024上宣布Harmony OS NEXT(即鴻蒙星河版)面向開發者啟動Beta版,這也被人們稱為“純血鴻蒙”,它基于鴻蒙內核,不再兼容安卓開發的APP應用。 時至今日近一年了,我也有…

MySQL 事務管理與鎖優化:確保數據一致性和并發性

在多用戶并發訪問的數據庫系統中,如何確保數據的**一致性(Consistency)和并發性(Concurrency)**是一個核心挑戰。**事務(Transaction)和鎖(Lock)**是 MySQL 應對這一挑戰的兩大利器。事務保證了操作的原子性、一致性、隔離性和持久性,而鎖機制則在并發環境下協調不同…

OpenPrompt 有沒有實現連續提示詞和提手動示詞一起優化的

OpenPrompt 有沒有實現連續提示詞和提手動示詞一起優化的 OpenPrompt 中連續提示詞與手動提示詞的混合優化 OpenPrompt 確實支持同時優化連續提示詞(Soft Prompt)和手動設計的離散提示詞(Manual Prompt)。這種混合優化策略可以結合兩者的優勢: 連續提示詞:通過梯度下降…

Android添加語言列表

方式一 frameworks\base\packages\SettingsProvider\src\com\android\providers\settings\DatabaseHelper.java Settings.System.putString(context.getContentResolver(),Settings.System.SYSTEM_LOCALES, "ru-RU,en-US"); 方式2 packages/apps/Settings/src/co…

解決uniapp開發app map組件最高層級 遮擋自定義解決底部tabbar方法

subNvue,是 vue 頁面的原生子窗體,把weex渲染的原生界面當做 vue 頁面的子窗體覆蓋在頁面上。它不是全屏頁面,它給App平臺vue頁面中的層級覆蓋和原生界面自定義提供了更強大和靈活的解決方案。它也不是組件,就是一個原生子窗體。 …

如何保障服務器的安全

如何保障服務器的安全 以下是保障服務器安全的核心措施及實施建議: 一、基礎設施層防護 物理安全 機房設置防火/防水/防雷系統,部署門禁監控設備。 服務器固定于抗震機架,避免物理損壞。 網絡防護 防火墻規則:僅開放業務必要端…

C語言 學習 C程序的內存模型 2025年6月10日08:55:13

堆棧與內存管理 堆棧(Stack) : 后進先出(LIFO) 線性數據結構 包含壓棧(Push) ,彈棧(Pop) 用途:臨時存儲數據(函數調用,局部變量) 管理:由系統自動分配和回收 速度快 ,容量有限! 堆棧代碼示例: //堆棧示例 :局部變量 void getText() {int text20;//儲存在堆棧中 } 內存管理…

CppCon 2015 學習:Implementing class properties effectively

這段內容講的是C中“屬性”(Property)的實現及其設計理念,并結合一個實際類Text來說明。中文理解如下: 關于“屬性”(Property) 屬性:介于類的字段(field)和方法&#…

[electron]預腳本不顯示內聯script

script-src self 是 Content Security Policy (CSP) 中的一個指令,它的作用是限制加載和執行 JavaScript 腳本的來源。 具體來說: self 表示 當前源。也就是說,只有來自當前網站或者當前頁面所在域名的 JavaScript 腳本才被允許執行。"…

基于安卓的文件管理器程序開發研究源碼數據庫文檔

摘 要 伴隨著現代科技的發展潮流,移動互聯網技術快速發展,各種基于通信技術的移動終端設備做的也越來越好了,現代智能手機大量的進入到了我們的生活中。電子產品的各種軟硬技術技術的發展,操作系統的不斷更新換代,谷歌…

MySQL主從復制實現指南

MySQL主從復制實現指南 一、主從復制原理 #mermaid-svg-i1zOswdD4OORQ35t {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-i1zOswdD4OORQ35t .error-icon{fill:#552222;}#mermaid-svg-i1zOswdD4OORQ35t .error-text…

spring jms使用

文章目錄 一、背景介紹二、注意點說明三、代碼pom.xmlmq.propertiesActiveMqConfigJmsSenderActiveMqInfoActivemqProtocolEnum生產者消費者 一、背景介紹 <dependency> 標簽中列出的 spring-jms 是 Spring Framework 提供的一個模塊&#xff0c;用于簡化 Java Message …

筆記——學習HTTP協議

HTTP協議 文章目錄 HTTP協議一、統一資源定位符&#xff08;url&#xff09;&#xff1a;URL編碼格式&#xff1a; 二、HTTP報文結構&#xff1a;三、HTTP請求方法&#xff1a;四、HTTP常見請求頭&#xff1a;五、HTTP狀態碼&#xff1a;六、HTTP常見響應頭&#xff1a;七、HTT…