DNS,全稱Domain Namespace System,即域名系統。是互聯網一項核心服務,將域名映射爲IP地址(或其他類型記錄),使得用戶能夠通過域名方便地訪問特定的網站,而不必記住複雜而晦澀的IP地址。
如此重要功能,各大雲服務商一般都有提供域名申請和域名解析服務。域名申請服務提供獲得全網唯一域名的方式,如zouguodong.top、baidu.com等;域名解析服務則能夠提供域名到指定服務的映射,最常見的就是映射到IP。
域名
域名的組成
域名具有全網唯一性。而由於互聯網用戶數量衆多,想要擁有自己域名的個人或企業數不勝數,因此域名採用狀結構命名法。任何連接在因特網上的主機或路由器,都有一個唯一的層次結構的名字,即域名(domain name)。這裏,“域”(domain)是名字空間中一個可被管理的劃分。從語法上講,每一個域名都是有標號(label)序列組成,而各標號之間用點(小數點)隔開。域名可以劃分爲各個子域,子域還可以繼續劃分爲子域的子域,這樣就形成了頂級域、主域名、子域名等。圖示如下
各級域名舉例如下
- 頂級域名(一級域名):.com
- 主域名(二級域名):google.com
- 子域名(三級域名):api.google.com
一個完整的域名,本應該由子域名+主域名+頂級域名+根域名組成,如:api.google.com.,早先的域名解析系統就是這樣,如果不輸入最後一個點,是無法正確解析的。這當然是很傻的做法,因此在如今的DNS服務器已經能夠自動補全根域的點了,現在反而是輸入了最後的點會無法解析。
我們通常是購買主域名,一個主域名下理論上可以創建無限多個子域名,例如內網穿透服務提供商NATAPP自身擁有一個主域名如nat100.top,但是可以提供用戶購買子域名。
域名註冊
一個比較好的類比是買房子,購買域名相當於買一塊地皮,創建子域名好比劃分這塊地,而服務搭建可類比建房子。
域名註冊的價格比較便宜,但由於其唯一性,你想要的域名在你之前很可能已經被人註冊了,此時就要委託購買,價格就天差地別了,數萬到數百萬不等,上億也有可能,據稱VacationRentals.com收購價爲3500萬美元,國內最貴360.com收購價則爲1700萬美元。也正是如此高昂的價格,使得域名搶注稱爲一個熱點。
拋開熱門域名,對於普通用戶,想要註冊一個冷門域名,價格還是比較親和的,幾十塊就能搞定一年,沒錯,域名是有使用期限限制的,註冊時可選年限,比如以我的名字命名的域名價格一年和十年比較如下。
域名備案
根據 《互聯網信息服務管理辦法》 以及 《非經營性互聯網信息服務備案管理辦法》 ,國家對非經營性互聯網信息服務實行備案制度,對經營性互聯網信息服務實行許可制度。未取得許可或者未履行備案手續的,不得從事互聯網信息服務。即所有對中國大陸提供服務的網站都必須先進行ICP備案,纔可開通服務。
若未備案,域名服務商將會拒絕解析,並提示你去備案啦。
域名解析
上面介紹了域名相關知識,但域名最終還是要解析到具體的服務上才有價值。如下說明域名解析如何運作
域名服務器
域名呈樹狀結構,解析方式也是如此,針對不同層級上的域名,有不同的DNS服務器
- 本地域名服務器:DNS Resolver或Local DNS。響應來自客戶端的請求,並最終跟蹤直到獲取到解析結果的DNS服務器,是客戶端直接訪問的服務。如本機自動分配的DNS、運營商ISP分配的DNS、谷歌/114公共DNS等。例如我們手動設置電腦網絡爲手動配置時的DNS服務器,即爲本地域名服務器的地址,可以手動設置114.114.114.114等公共DNS服務器地址。也可以選擇自動DHCP的方式,自動分配DNS服務器地址。理解這點很重要,因爲這是我們直接訪問的DNS服務器,而下面三種則是我們不會直接訪問的服務器。
-
根DNS服務器:Root nameserver。本地域名服務器在本地找不到解析結果時,會首先向它查詢,它會返回頂級域名服務器的地址
-
頂級域名服務器:Tld nameserver。負責管理該頂級域名下的二級域名,返回二級域名所在的權威域名服務器地址
-
權威域名服務器:authoritative nameserver。負責維護該區域內的域名和IP地址的之間的對應關係,能夠返回最終的解析結果。阿里雲DNS解析服務、amazon的Route 53 name都屬於該類服務器。
解析過程
用戶使用域名訪問某個資源的完整過程如下圖
- 用戶在瀏覽器中輸入域名,回車
- 請求來到本地域名服務器
- 本地域名服務器首先向根服務器請求得到頂級域名服務器地址
- 本地域名服務器根據上一步地址向頂級域名該服務器請求得到權威域名服務器地址
- 本地域名服務器根據上一步地址向權威域名服務器請求得到最終解析的結果,這是IP地址
- 本地域名服務器將IP返回給瀏覽器
- 瀏覽器根據IP訪問到目標服務
- 得到訪問結果
解析結果 - DNS記錄類型
上面的舉例解析結果是IP地址,但這只是衆多類型中的一種,RFC規範允許總共幾十種記錄類型,這裏介紹幾種常使用的
- A:IP4地址
- AAAA:IP6地址
- CNAME:一個主機名字的別名(域名),域名服務器會再次嘗試解析該別名
- PTR:指標記錄,引導一個規範名稱。類似CNAME,不同的是DNS不會嘗試解析該名稱,而是直接返回。
- NS:返回一個域名服務器記錄
- MX:郵件記錄,引導域名到該域名的郵件傳輸代理列表
- SRV:服務定位器,即返回提供特定服務的服務器
- TXT:返回文字記錄
- CAA:權威認證授權,DNS認證機構授權,限制主機可接受的CA
其它術語解釋
-
TTL
Time To Live,即域名解析結果在本地域名服務器中保留的時間。超時會重新執行一遍完整的解析流程
-
ICANN
Internet Corporation for Assigned Names and Numbers,網際網絡名稱與數字地址分配機構,位於美國加利福尼亞的非盈利社團,創建於1998年9月18日,存在目的是專門管理域名和IP地址的分配等網絡相關任務。需要說明的是該機構受到美國政府及法律的管理。
-
WHOIS
域名資料庫查詢。可以通過該資料庫找到一個域名的註冊信息。對於大多數根域名服務器,基本的WHOIS庫由ICANN管理,而WHOIS的具體細節則由該域的授權機構管理。如中國互聯網信息中心(China Internet Network Information Center)負責.cn的WHOIS資料維護。