# 網絡基本功(三十):細說DNS(上)
**轉載請在文首保留原文出處:EMC中文支持論壇**[https://community.emc.com/go/chinese](https://community.emc.com/go/chinese) [](https://community.emc.com/servlet/JiveServlet/showImage/2-873899-109229/image001.gif)
## 介紹
因特網上作為域名和IP地址相互映射的一個分布式數據庫,能夠使用戶更方便的訪問互聯網,而不用去記住能夠被機器直接讀取的IP數串。通過[主機](http://baike.baidu.com/view/23880.htm)名,最終得到該主機名對應的IP地址的過程叫做域名解析(或主機名解析)。
## 更多信息
**DNS基礎:**
DNS命名空間是一個分層結構,類似于Unix文件系統。如下圖的分層空間所示。
[](https://community.emc.com/servlet/JiveServlet/showImage/2-873899-109230/image002.gif)
每個節點都有一個標簽,最多可以有63個字符。樹結構的根部是一個特殊的標簽為null的節點。樹結構中節點的域名就是一串標簽列表,從該節點開始,一直到根節點,通過dot來將標簽分開。(這是與Unix文件系統不同的地方,將路徑名放在最前沿著樹結構下來)。樹結構中的每一個節點必須有一個唯一的域名,但是樹結構中不同的point可以有相同的標簽。
域名分為絕對域名與相對域名。絕對域名也稱為完全合格的域名FQDN(Full Qualified Domain Name),它是以“.”結尾的域名,例如sun.tuc.noao.edu.。如果不以“.”結尾,則假設該域名需要被補充完整。域名如何補充則取決于使用的DNS軟件。
頂級域名分為三個區域:
1. arpa是用來做反向域名解析的特殊域。
2. 七個3字母域名稱為普通域名,也有稱為組織域。
3. 所有兩個字母域名是基于ISO 3166國家代碼,稱為國家域名或地理域名。
上圖中沒有顯示的很重要的一點是DNS中責任的分派。沒有一個單一的實體來管理樹中的每一個標簽。相反,一個實體(網卡)維持樹中的一部分(頂級域名)并將其他責任分配給zone中其他實體。
zone指DNS樹中分開管理的子樹。例如,二級域名就是一個常見的zone,noao.edu。很多二級域名又分為更小的zone。例如,一所大學按照系別,公司按照部門分為分為更小的zone。
熟悉Unix文件系統的會注意到DNS樹按zone分區很像邏輯Unix文件系統分為物理磁盤分區。如同我們從上圖中無法看出zone的委托授權管理位于何處,從Unix文件系統的類似圖中也難以看出哪個目錄在哪個磁盤分區上。
一旦zone的委托授權分派好,zone的負責人需要為其提供多個域名服務器。當zone中安裝了新的機器,zone的DNS管理員為其分配域名與IP地址,并將信息輸入域名服務器的數據庫中。域名服務器委托授權管理一個或多個zone。zone管理人員必須為其提供一臺主域名服務器以及一個或多個二級域名服務器。主服務器和二級服務器必須相互獨立并冗余,以使zone不會受到單點故障的影響。主服務器和二級服務器的區別在于,主服務器從磁盤文件加載zone的所有信息,而二級服務器從主服務器獲取所有信息。這一過程稱為zone transfer。
當新的機器添加到zone中,管理員將合適的信息(至少需要名稱和IP地址)添加到主服務器系統的磁盤文件中。之后告知主域名服務器重新讀取自己的配置文件。二級服務器定期查詢(通常3小時一次),如果主服務器有新的數據,二級服務器通過zone transfer來獲取。
當域名服務器沒有所需信息時怎么辦呢?它必須聯系另外一臺域名服務器。這是DNS的分布式特性。并不是每一臺服務器都知道如何聯系其他域名服務器,但每一臺服務器都知道如何聯系根域名服務器。根服務器的IP地址存放于主服務器的配置文件中。主服務器必須知道根服務器的IP地址,而非DNS名。之后,主服務器獲知所有二級域名服務器的名稱和位置(即IP地址)。整個交互過程是:發起請求的域名服務器必須聯系根服務器,根服務器告知請求服務器聯系另外一臺服務器,這樣逐級進行。
DNS的一個基本屬性是緩存。即,當一個域名服務器收到一條映射信息(如一個主機名的IP地址),它會將該信息放入緩存,以使之后的查詢可以使用緩存后的結果,而無需額外發起對其他服務器的查詢。
- 介紹
- 網絡基本功(一):細說網絡傳輸
- 網絡基本功(二):細說交換機
- 網絡基本功(三):細說VLAN與Trunk
- 網絡基本功(四):細說路由(上)
- 網絡基本功(五):細說路由(下)
- 網絡基本功(六):鏈路聚合
- 網絡基本功(七):細說IP地址與子網
- 網絡基本功(八):細說TCP滑動窗口
- 網絡基本功(九):細說TCP重傳
- 網絡基本功(十):細說TCP確認機制
- 網絡基本功(十一):TCP窗口調整與流控
- 網絡基本功(十二):細說Linux網絡配置(上)
- 網絡基本功(十三):細說Linux網絡配置(下)
- 網絡基本功(十四):細說診斷工具ping
- 網絡基本功(十五):細說網絡性能監測與實例(上)
- 網絡基本功(十六):細說網絡性能監測與實例(下)
- 網絡基本功(十七):細說tcpdump的妙用(上)
- 網絡基本功(十八):細說tcpdump的妙用(下)
- 網絡基本功(十九):細說NAT原理與配置
- 網絡基本功(二十):細說ICMP和ARP
- 網絡基本功(二十一):細說HTTP(上)
- 網絡基本功(二十二):細說HTTP(下)
- 網絡基本功(二十三):Wireshark抓包實例診斷TCP連接問題
- 網絡基本功(二十四):Wireshark抓包實例分析TCP重傳
- 網絡基本功(二十五):Wireshark抓包實例分析TCP重復ACK與亂序
- 網絡基本功(二十六):Wireshark抓包實例分析TCP窗口及reset
- 網絡基本功(二十七):Wireshark抓包實例分析HTTP問題(上)
- 網絡基本功(二十八):Wireshark抓包實例分析HTTP問題(下)
- 網絡基本功(二十九):Wireshark抓包實例診斷數據庫常見問題
- 網絡基本功(三十):細說DNS(上)
- 網絡基本功(三十一):細說DHCP