DNS詳解
1. DNS定義:
DNS 是域名系統(Domain Name System) 的縮寫,該系統用於命名組織到域層次結構中的計算機和網絡服務。在Internet上域名與IP地址之間是一一對應的,域名雖然便於人們記憶,但機器之間只能互相認識IP地址,它們之間的轉換工作稱爲域名解析,域名解析需要由專門的域名解析服務器來完成,DNS就是進行域名解析的服務器,域名的最終指向是IP。
在IPv4中IP是由32位二進制數組成的,將這32位二進制數分成4組每組8個二進制數,將這8個二進制數轉化成十進制數,就是IP地址,範圍是在0~255之間。(8個二進制數轉化爲十進制數的最大範圍就是0~255)現在已開始試運行、將來必將代替IPv4的IPV6中,將以128位二進制數表示一個IP地址。
DNS:Domain Name System 域名管理系統 域名是由圓點分開一串單詞或縮寫組成的,每一個域名都對應一個惟一的IP地址,這一命名的方法或這樣管理域名的系統叫做域名管理系統。
DNS:Domain Name Server 域名服務器 域名雖然便於人們記憶,但網絡中的計算機之間只能互相認識IP地址,它們之間的轉換工作稱爲域名解析,域名解析需要由專門的域名解析服務器來完成,DNS就是進行域名解析的服務器。
2. 使用的是UDP53號端口。
3.DNS的工作原理:
以訪問[url]www.xxx.com[/url] 爲例,
(1)客戶端首先檢查本地c:\windows\system32\drivers\etc\host文件,是否有對應的IP地址,若有,則直接訪問WEB站點,若無,則(2);
(2)客戶端檢查本地緩存信息,若有,則直接訪問WEB站點,若無(3);
(3)本地DNS檢查緩存信息,若有,將IP地址返回給客戶端,客戶端可直接訪問WEB站點,若無;
(4)本地DNS檢查區域文件是否有對應的IP,若有,將IP地址返回給客戶端,客戶端可直接訪問WEB站點,若無;
(5)本地DNS根據cache.dns文件中指定的根DNS服務器的IP地址,轉向根DNS查詢;
(6)根DNS收到查詢請求後,查看區域文件記錄,若無,則將其管轄範圍內.com服務器的IP地址告訴本地DNS服務器;
(7).com服務器收到查詢請求後,查看區域文件記錄,若無,則將其管轄範圍內.xxx服務器的IP地址告訴本地DNS服務器;
(8).xxx服務器收到查詢請求後,分析需要解析的域名,若無,則查詢失敗,若有,返回[url]www.xxx.com[/url]的IP地址給本地服務器
(9)本地DNS服務器將[url]www.xxx.com[/url]的IP地址返回給客戶端,客戶端通過這個IP地址與WEB站點建立連接
4. 實例:具體看一個名字到地址的解析過程:
當您在瀏覽器中輸入([url]www.seebod.com.[/url]),我們的電腦是如何得到IP地址的?
1、瀏覽器發現是一個名字,於是調用我們機器內部的DNS Client軟件,這個軟件會把我們的請求發送到網卡Tcp/IP設置中的默認DNS服務器IP地址(上海電信提供DNS的服務器有3臺,其中一臺IP是202.96.209.5):“您可以告訴我[url]www.seebod.com.[/url]的IP地址嗎?我這是一個遞歸查詢”
2、 202.96.209.5的DNS服務器會檢查自己的DNS緩存,如果緩存裏有,就直接返回給客戶,如果沒有,202.96.209.5就會向自己系統內部配置中負責.域的DNS服務器的IP地址(負責.域的那臺DNS服務器位於美國,共13臺,系統會隨機選一臺,這裏比如是61.1.1.1)發出請求: “您能告訴我[url]www.seebod.com.[/url]的IP地址嗎?我這是一個迭代查詢”
3、.域DNS服務器61.1.1.1中包含負責net.域解析的IP地址,把查詢結果返回給202.96.209.5:“負責net.域的DNS服務器地址是54.4.4.4”
4、202.96.209.5收到上面的查詢結果後,於是詢問負責net.域的DNS服務器54.4.4.4 :“您能告訴我負責[url]www.seebod.com.[/url]的IP地址嗎?我這是一個迭代查詢。”
5、負責net.域的DNS服務器54.4.4.4把查詢後的結果返回給202.96.209.5:“負責seebod.com.域的dns服務器的ip地址是 211.152.17.58”
6、202.96.209.5收到上面的查詢結果夠,於是詢問負責seebod.com.域的DNS服務器211.152.17.58:“您能告訴我[url]www.seebod.com.[/url]所對應的IP地址嗎?”
7、211.152.17.58把查詢後的結果返回給202.96.209.5:“[url]www.seebod.com.[/url]對應的IP地址是211.100.26.123”
8、202.96.209.5把最終結果放到自己的DNS緩存裏,這樣以後就不用再進行上面的迭代查詢了。
9、202.96.209.5把最終結果返回給最初發起請求的客戶機。
10、客戶機的dns client軟件把最終結果返回給瀏覽器。
11、瀏覽器把目的IP地址連同http數據傳遞給網絡層。
12、網絡層根據目標地址判斷路由,發現目標IP地址211.152.17.58與本機不在同一個網段(判斷是否是同一個網段使用子網掩碼與目的IP地址做與運算),於是決定把包發給網關。
13、檢查本地arp緩存表獲得本地網關的MAC地址。
DNS查詢可以有兩種解釋,一種是指客戶端查詢指定DNS服務器上的資源記錄(如A記錄),另一種是指查詢FQDN名的解析過程。
一、查詢DNS服務器上的資源記錄
您可以在Windows平臺下,使用命令行工具,輸入nslookup [url]www.baidu.com[/url] ,返回的結果包括域名對應的IP地址(A記錄)、別名(CNAME記錄)等。除了以上方法外,還可以通過一些DNS查詢站點如國外的 dnsstuff.com 國內的 dirs.cn 查詢域名的DNS信息。
二、FQDN名的解析過程查詢
若想跟蹤一個FQDN名的解析過程,在Linux Shell下輸入dig [url]www.baidu.com[/url] +trace,返回的結果包括從跟域開始的遞歸或迭代過程,一直到權威域名服務器。