DNS基本概念
域名 如在瀏覽器地址欄輸入的www.baidu.com,www.hao123.com等我們稱之為域名,域名即網站名稱。 如果說互聯網的本質是連接一切,域名則為“一切”提供了身份標識功能,而IP為“一切”提供了尋址功能。域名和IP的關系可類比每個人的姓名與住址。
根域、頂級域、二級域、子域 域名采用層次化的方式進行組織,每一個點代表一個層級。一個域名完整的格式為www.baidu.com. 最末尾的點代表根域,常常省略;com即頂級域(TLD);baidu.com即二級域。 依次類推,還有三級域、四級域等等。子域是一個相對的概念,baidu.com是com的子域,www.baidu.com是baidu.com的子域。
域名系統 即DNS(Domain Name System)。DNS主要解決兩方面的問題:域名本身的增刪改查以及域名到IP如何映射。
正向解析 查找域名對應IP的過程。
反向解析 查找IP對應域名的過程。
解析器 即resolver,處于DNS客戶端的一套系統,用于實現正向解析或者反向解析。
權威DNS 處于DNS服務端的一套系統,該系統保存了相應域名的權威信息。權威DNS即通俗上“這個域名我說了算”的服務器。
遞歸DNS 又叫local dns。遞歸DNS可以理解為是一種功能復雜些的resolver,其核心功能一個是緩存、一個是遞歸查詢。 收到域名查詢請求后其首先看本地緩存是否有記錄,如果沒有則一級一級的查詢根、頂級域、二級域…… 直到獲取到結果然后返回給用戶。日常上網中運營商分配的DNS即這里所說的遞歸DNS。
轉發DNS 轉發DNS是一種特殊的遞歸。如果本地的緩存記錄中沒有相應域名結果時,其將查詢請求轉發給另外一臺DNS服務器,由另外一臺DNS服務器來完成查詢請求。
公共DNS 公共DNS屬于遞歸DNS。其典型特征為對外一個IP,為所有用戶提供公共的遞歸查詢服務。
域名查詢過程
- 以用戶在瀏覽器輸入www.baidu.com為例,我們詳細說明一下實際域名查詢過程:
- 1. 用戶輸入www.baidu.com,瀏覽器調用操作系統resolver發起域名查詢,此處不考慮瀏覽器的域名緩存;resolver封裝一個dns請求報文,并將其發給運營商分配的local dns地址(或者用戶自己配置的公共dns);
- 2. local dns查詢緩存,如果命中則返回響應結果;否則向根服務器發起查詢;
- 3. 根服務器返回com地址。每一層級的DNS服務器都有緩存,實際都是先查緩存,沒有緩存才返回下級域,此處不再重復;
- 4. local dns查詢com。com返回baidu.com地址;
- 5. local dns查詢baidu.com,baidu.com返回www.baidu.com對應記錄結果。
- 理論上講域名查詢有兩種方式:
- 迭代查詢 A問B一個問題,B不知道答案說你可以問C,然后A再去問C,C推薦D,然后A繼續問D,如此迭代…
- 遞歸查詢 A問B一個問題,B問C,C問D… 然后D告訴C,C告訴B,B告訴A
- 注意:遞歸查詢需要從系統層面來看,很難單純的說一臺DNS實現了遞歸查詢。
域名系統組織架構!
- DNS是全球互聯網中最重要的基礎服務之一,也是如今唯一的一種有中心點的服務。全球域名系統組織與管理架構如下圖所示:

ICANN 互聯網名稱與數字地址分配機構(The Internet Corporation for Assigned Names and Numbers)。 負責IP地址空間的分配、協議標識符的指派、通用頂級域名(gTLD)、國家和地區頂級域名(ccTLD) 系統的管理以及根服務器系統的管理。這些職能最初是在美國政府合同下由互聯網號碼分配當局 (Internet Assigned Numbers Authority,IANA)以及其它一些組織提供,現在都由ICANN統一行使。
ccNSO 國家和地區名稱支持組(Country Code Names Supporting Organization)。負責各種ccTLD的注冊。
GNSO 通用名稱支持組(Generic Names Supporting Organization)。負責各種gTLD的注冊。
RSSAC 根服務器系統支持委員會(Root Server System Advisory Committee)。負責根服務器系統管理。
ccNSO 國家和地區名稱支持組(Country Code Names Supporting Organization)。負責各種ccTLD的注冊。
域名市場
- 一、域名交易
- 作為互聯網最重要的輕資產之一,域名原生就具有著投資和品牌價值。圍繞域名相關的交易,目前已經衍生出包括注冊、買賣、中介、搶注、投資、停放、備案等的一個完整生態系統。
域名注冊 向有資質的注冊商申請一個域名的過程。國內知名的注冊商有萬網、35互聯、中國數據等, 可注冊常見的.com、.cn、.net、.org等域名;國外知名的有godaddy、enom等。
域名買賣,域名中介、域名經紀 圍繞域名的評估、分析、談判、購買、出售等一系列過程??深惐确康禺a行業。
域名搶注 分兩種情況,一種是搶注未被注冊過的域名,一種是搶注曾經被注冊過但是未能在有效期結束前及時續費的域名。 國內外都有不少專門提供域名搶注服務的平臺。
域名投資 注冊和購買有價值的域名,然后獲利轉讓的行為。投資者一般被稱為“玉米蟲”。 2014年比較熱門的幾次投資事件一個是羅永浩的t.tt,號稱成交價200萬元;一個是雷軍的mi.com,號稱成交價360萬美元;一個是莫天全的fang.com,成交價格不詳。
域名停放 將未建站的域名解析到廣告頁面,利用域名的自然流量來獲取收入的方式。提供域名停放服務依賴以下兩點:優質廣告資源和防作弊技術。
- 二、域名解析
- 域名市場除了包含各種類別的交易服務以外,另還包含解析服務。按照功能不同,域名解析服務可以分為如下幾類:
權威DNS 國內典型的代表是dnspod,主要提供域名托管以及智能解析服務。智能解析主要解決這樣一個問題: 假設一個域名同時綁定了聯通和電信的IP,當一個電信用戶去訪問時有可能會解析到一個聯通的IP,從而產生跨網問題。 使用智能解析后,系統將根據用戶來源去智能的返回結果。
公共DNS 公共DNS類似于運營商的local dns,本質上講是一種遞歸解析服務。與運營商DNS不同的是, 公共DNS一般以一個或兩個非常容易記住的IP方式(如百度公共DNS服務IP:180.76.76.76)給所有用戶提供統一服務。 公共DNS相對于運營商DNS的優勢主要在無劫持、更快、更穩定、更安全等。
CDN DNS 本質上講也是一種權威DNS,主要在CDN的業務場景中提供流量調度功能。 用戶將域名CNAME或者直接NS托管到CDN DNS,CDN DNS進一步做智能調度返回一個 離用戶最近的接入節點。用戶訪問接入節點,享受CDN提供的緩存、加速、以及防攻擊服務。
域名安全威脅
- 一、安全事件
-
盡管已經有超過30年歷史,DNS仍然是整個互聯網中最脆弱的一環。下面盤點一下近年來比較嚴重的DNS安全事件。
2009年5月19日南方六省斷網事件。 一起由于游戲私服私斗打掛dnspod,殃及暴風影音域名解析,然后進一步殃及電信local dns,從而爆發六省大規模斷網的事故。事件影響深遠。
2010年1月12日百度域名劫持事件。 baidu.com的NS記錄被伊朗網軍(Iranian Cyber Army)劫持,然后導致www.baidu.com無法訪問。 事件持續時間8小時,是百度成立以來最嚴重的故障事件,直接經濟損失700萬人民幣。
2013年5月4日DNS劫持事件。 由于主流路由器廠商安全漏洞而導致的全網劫持事件,號稱影響了800萬用戶。
2013年8月25日CN域被攻擊事件。 cn域dns受到DoS攻擊而導致所有cn域名無法解析事故。
2014年1月21日全國DNS故障。 迄今為止,大陸境內發生的最為嚴重的DNS故障,所有通用頂級域(.com/.net/.org)遭到DNS污染, 所有的域名全被指向了位于美國的一個IP地址(65.49.2.178)。
- 二、攻擊手段
query flood 通過不斷的發DNS請求報文來耗盡目的DNS資源,形成拒絕服務。具體分類包括源IP是否隨機以及目的域名是否隨機等。
response flood 通過不斷的發DNS響應報文來達到拒絕服務的目的。
udp floodv DNS底層協議為UDP,基于UDP的各種flood攻擊也都會給DNS帶來危害。
折射攻擊(反射攻擊) 偽造源IP為第三方,借助DNS的回包來達到DoS掉第三方的目的。屬于“借刀殺人”的手段。
放大攻擊 折射攻擊的一種。通過惡意的構造響應報文來達到流量放大作用,從而對第三方形成帶寬攻擊。 請求報文幾十字節,響應報文幾千字節,意味著可以形成百倍以上流量放大系數。
緩存投毒 每一臺DNS都有緩存,緩存投毒指的是通過惡意手段污染DNS緩存,形成DNS劫持或者拒絕服務。
漏洞攻擊 利用各種漏洞來達到入侵并控制DNS服務器目的。漏洞不僅僅指DNS程序本身的,也有可能是機器或者網絡其它的“問題點”。
社會工程學手段 所有的系統都需要人的維護,而人永遠是安全中最脆弱的一環。
- 三、防御手段
對于權威DNS來說,由于請求來源多是運營商或者公共DNS廠商的遞歸DNS,源IP相對比較固定,可以實施源IP白名單策略。該策略對于偽造源IP的攻擊具有一定削弱作用。對于域名隨機的攻擊來說,如果權威DNS本身承載的域名量不是很大,可以考慮域名白名單策略。如果源IP就是運營商的,然后請求域名也是合法的,只能靠一定限速策略以及DNS服務器本身性能了。
對于遞歸DNS來說,各種白名單策略誤傷都會很嚴重,因此也主要靠DNS服務器本身性能了。
高性能DNS服務器目前比較流行的做法是基于Intel DPDK來實施。
另外一種推薦實施的策略是RRL(Response Rate Limit),該策略對于防御折射攻擊/放大攻擊有一定效果。盡管折射攻擊的目標不是DNS本身,但是不防御的話如果把第三方打掛仍然會產生連帶責任,因此建議實施RRL。
公共DNS
更快更穩定 中國最快最穩定的網站是哪一個?沒錯,www.baidu.com。百度公共DNS擁有和百度搜索一樣的基礎網絡、基礎設施以及系統架構,更重要的是,我們是一撥人。
純凈無劫持 作為中國最大的流量公司,百度是DNS劫持的最大受害者。百度做公共DNS的目的一方面在于 為廣大網民提供一個純凈安全的流量環境,另外一方面也想通過產品的力量來制約劫持亂象。
安全防護 百度公共DNS的另外一個附加功能是安全防護。依托百度安全搜索技術,如果您所訪問的網站存在病毒、木馬風險, 我們將實時予以攔截和提示,有效保證使用者的上網安全。
CDN親和 百度公共DNS擁有遍布全國的遞歸出口節點。當查詢請求未命中主緩存時,我們會將請求調 度到離用戶最近的遞歸節點來進一步查詢。因此不會影響到CDN的調度進度。另外一方面,我們正在積極實施edns-client-subnet,該 技術會大幅提升CDN調度精度,相信CDN廠商會喜歡。
- 二、阿里DNS
- 阿里公共DNS是阿里巴巴集團推出的DNS遞歸解析系統,目標是成為國內互聯網基礎設施的組成部分,面向互聯網用戶提供“快速”、“穩定”、“智能”的免費DNS遞歸解析服務。
- 阿里提供公共DNS服務的優勢
- 阿里在全國有優質的機房、網絡、帶寬等互聯網基礎設施資源。
- 阿里建設和運營著全國最大的CDN網絡,對互聯網流量調度有豐富的經驗。
- 阿里旗下萬網是國內最大的域名注冊商,管理著幾百萬域名。同時有豐富的DNS管理經驗。
- 阿里擁有大量優秀的技術人才,有非常強的自主研發能力和運維保障能力。
- 阿里提供公共DNS服務的優勢
- 快速:
- 通過BGP anycast技術,讓用戶訪問到離自己較近的DNS集群。
- 主動同步com/net域名、萬網注冊域名的變更,減小ttl時間的影響,快速訪問到正確的記錄。
- 主動緩存熱點域名的,提高查詢CACHE命中率,減少遞歸過程,快速應答。
- 穩定:
- 異地多機房高可用架構。
- 基于DPDK自主研發的高性能DNS系統。
- Aliguard多種攻擊防御策略。
- 持久化保存熱點記錄,當“根”或域名的權威DNS出現異常后,阿里公共DNS具備快速恢復正常訪問的能力。
- 智能:
- 結合阿里優質CDN資源和精準的IP地址庫,讓用戶訪問到較近的網站。
- 三、Google Public DNS
- 谷歌公共域名解析服務(Google Public DNS)是由谷歌公司于2009年發布的一項新的DNS服務。主要為了替代ISPs或其他公司提供的DNS服務。 2014年3月13日,可能是由于黑客攻擊,一些谷歌DNS用戶在連接蘋果某些網站時受封鎖,現未采取有效措施。
- DNS地址
- IPV4
- 首選DNS服務器:8.8.8.8
- 備用DNS服務器:8.8.4.4
- IPV6
- 2001:4860:4860::8888
- 2001:4860:4860::8844
- 主要優點
- 谷歌公共DNS能夠滿足諸多DNS需求,為服務器數據傳輸提供便利,通過隨機分配的項目查詢名目有效阻擋黑客騙取回應的行為。谷歌公共DNS符合現有DNS標準,同時為用戶提供對應于個人電腦的準確回應,而不會產生其他額外的信息阻隔、過濾或重定位等可能導致延緩搜索的問題。