域名系統(tǒng) DNS
我們知道網(wǎng)絡(luò)中每臺機器都有自己的 IP 地址,才能與外面的網(wǎng)絡(luò)相互通信,傳統(tǒng)的 IP 是由 4 個 8 位的字節(jié)組成的數(shù)字,這樣的標(biāo)識是不利于記憶的,所以延伸出域名的概念,每個域名可以映射成一個 IP。像 www.taobao.com
;www.baidu.com
;這種域名我們一看就知道是淘寶和百度。于是有了 DNS(Domain Name System)域名系統(tǒng),它的職責(zé)就是將人們便于記憶的域名轉(zhuǎn)成計算機所需要的 IP 地址。
1. DNS 結(jié)構(gòu)
DNS 是一個記錄滿了 IP 和域名映射的賬本,這個賬本非常的大,涉及到了全世界的域名信息,所以它的底層結(jié)構(gòu)是分層和分布式的一個數(shù)據(jù)庫。
1.1 語法結(jié)構(gòu)
常見的頂級域名有:
- .com 代表工商企業(yè)域名;
- .cn 代表中國的域名;
- .net 網(wǎng)絡(luò)提供商域名;
- .org 非盈利組織域名;
- .gov 政府域名;
- .edu 教育類的域名。
1.1 域名服務(wù)器分布
域名是分層的,每種域名服務(wù)器也都是分布式部署的,而不是只有單臺。因為只要一種域名服務(wù)器提供不了服務(wù),全世界對應(yīng)種類的域名都會受到影響。
根域名服務(wù)器
最高層和最重要的的域名服務(wù)器,任何一個域名服務(wù)器只要自己解析不了,就會交給根服務(wù)器。全世界共用 13 臺域名服務(wù)器,其中 10 臺在美國,剩下的 3 臺分別在日本,英國,瑞典。
頂級域名服務(wù)器
管理所有注冊在它上面的二級域名服務(wù)器。
2. 域名服務(wù)器類型
- 權(quán)威域名服務(wù)器:能夠決定域名和 IP 的關(guān)系。
- 本地域名服務(wù)器:一般由本地運營商提供,不能解析域名,通常是緩存域名解析和幫用戶到權(quán)威域名服務(wù)器查詢解析結(jié)果。
- 公共域名服務(wù)器:跟本地域名服務(wù)器類似,只是它不是某個運營商提供的,是全網(wǎng)公用的。
3. 解析過程
- 機器訪問本地 LDNS 查詢;
- LDNS 檢查本地緩存,沒有的話就向 13 臺根服務(wù)器的其中一臺發(fā)起查詢請求;
- 根域名服務(wù)器根據(jù)解析的域名結(jié)構(gòu)找到對應(yīng)的頂級域名服務(wù)器信息給 LDNS;
- LDNS 向頂級域名服務(wù)器發(fā)起查詢;
- 頂級域名服務(wù)器根據(jù)域名結(jié)構(gòu)查找到對應(yīng)的二級域名服務(wù)器;
- 根據(jù)這樣的迭代最終查找到域名和 IP 的對應(yīng)關(guān)系。
4. DNS 解析對應(yīng)的常見記錄類型
4.1 A 記錄
將域名直接解析成某個具體的服務(wù)器 IP。
4.2 CNAME 記錄
給域名起了一個 cname 的別名,訪問這個別名與訪問原域名效果是一樣的。
4.3 NS 記錄
域名解析服務(wù)器記錄,通常用來指定不同子域名對應(yīng)不同的解析服務(wù)器。
4.4 MX 記錄
建立電子郵箱服務(wù),將指向郵件服務(wù)器地址,需要設(shè)置MX記錄。建立郵箱時,一般會根據(jù)郵箱服務(wù)商提供的 MX 記錄填寫此記錄。
下圖是筆者在阿里云上面購買的一個域名 zhourj.cn
,這個域名目前設(shè)置了如下列表的解析規(guī)則:
- CNAME 記錄 :對應(yīng)了記錄值
hosting.gitbook.com
,意思是訪問了我的域名docs.zhourj.com
會轉(zhuǎn)發(fā)到hosting.gitbook.com
這個域名上。 - A 記錄:還有幾個 A 記錄的規(guī)則,* 就代表所有的
*.zhourj.cn
的域名都解析到對應(yīng) IP 。假如主機記錄是 www 就代表著wwww.zhourj.cn
解析到對應(yīng)的某個記錄值上面的 IP ,所以一個域名是可以解析到許多不同 IP 上面的。
5. 小結(jié)
DNS 簡單著說就是域名解析成 IP 的過程,但是這個小小的域名也隱藏著很多的知識點。它有組織之分:.com .cn .gov
。服務(wù)于全球的域名解析系統(tǒng)它是一種分布式的架構(gòu),一般都由最近的域名解析服務(wù)器完成解析,解析不成功才往上級去請求。域名有記錄類型的概念,其實就是它的解析規(guī)則,一個簡單的域名,我們可以根據(jù)自己的業(yè)務(wù)拆解成不同的子域名,并解析到不同服務(wù)器去。