目錄
- 前言
- 一.DNS概述
- 1.DNS的誕生
- 二.DNS的功能
- 三.DNS的組成
- 1.根域
- 2.頂級域
- 3.二級域名
- 四.DNS的區域
- 1.DNS域劃分為多個區域
- 五.DNS服務器的分類
- 1.主要名稱服務器
- 2.輔助域名服務器
- 3.主控名稱服務器
- 4.Cache-Only名稱服務器
- 六.DNS的查詢過程及相關知識
- 1.DNS的查詢過程
- 2.DNS的查詢方式
- 總結
前言
在Internet中使用IP地址來確定計算機的地址,這種以數字表示的IP地址不容易記憶,為了便于對網絡地址的管理和分配,人們采用了域名系統,引入了域名的概念。本章主要介紹DNS的基本概念,DNS域名解析的原理,在理解的基礎上安裝配置DNS服務器。
本章重點 理解DNS域名解析的原理和模式安裝DNS服務器掌握轉發器的配置方法
一.DNS概述
1.DNS的誕生
在早期的TCP/IP網絡中,名稱解析通常由一臺計算機負責,它維護了一份主機名稱與IP地址對應的清單(Hosts文件),當網絡中主機間通信時,源主機會通過查詢Hosts文件,將目的主機的主機名解析成P地址,以便進行通信,這種方法雖然簡單,但是隨著主機數目的增多,會產生以下問題。
- 主機名稱重復,Hosts文件是平面結構,主機多了容易重名。
- 主機維護困難,在一個平面結構的文件中維護所有的主機記錄,這樣文件會很大,而且當主機記錄增加或更新時很難維護。
為了解決以上問題,早期的網絡應用人員計劃將巨大的信息量按層次結構規劃成許多較小的部分,將每部分存儲在不同的計算機上,形成層次性,分布式的特點。
這樣,一方面實現了信息的統一:另一方面信息數據的分布面變廣,不會形成瓶頸,有利于提高訪問效率,于是DNS(Domain Name System.域名系統)應運而生。
二.DNS的功能
DNS最初的設計目標是“用具有層次名稱空間.分布式管理、擴展的數據類型,無限制的數據庫容量和具有可以接收性能的,輕型、快捷,分布的數據庫取代笨重的集中管理的Hosts文件系統”。
DNS是一組協議和服務,它允許用戶在查找網絡資源時使用層次化的對用戶友好的名稱取代IP地址,簡單地講,DNS協議的基本功能是在主機名與對應的P地址之間建立映射管理。例如,新浪網站的IP地址是202.106.184.200.幾乎所有的瀏覽該網站的用戶都使用www.sina.com.cn.而并非使用IP地址來訪問。
使用域名訪問具有以下優點
與直接使用IP地址相比,使用主機名(域名)訪問具有以下優點
主機名便于記憶。數字形式的P地址可能會由于各種原因而改變,而主機名可以保持不變。舉例:
當需要給某人打電話時,你可能知道這個人的名字,而不知道他的電話號碼。這時可以通過查看電話號碼簿查他的電話號碼,從而與他進行通話。由此可以看出,電話號碼簿的功能便是建立姓名與電話號碼之間的映射關系.而DNS的功能與電話號碼簿很類似。
三.DNS的組成
組成DNS系統的核心是DNS服務器,它是提供域名查詢服務的計算機.用來維護DNS名稱數據并處理DNS客戶端主機名的查詢。DNS服務器保存了包含主機名和相應P地址的數據庫。
DNS是一種看起來與磁盤文件系統的目錄結構類似的命名方案,域名通過使用句點"."分隔每個分支來標識一個域在邏輯DNS層次中相對于其父域的位置。
但是當定位一個文件位置時是從根目錄到子目錄再到文件名.如C:\WiNDOWS\explorer.exe;
而當定位一個主機名時.是從主機名到父域再到根域,如news.sine.com.cn
在DNS中,域名包括根域,頂級域.二級域和主機名。
三級域名下面還可以有四級城名、五級域名等。但是域名層級用得越多,域名越復雜,所以實際使用中一般不會超過五級。
1.根域
根(Root)域就是“.”(點號),它由hternet名稱注冊授權機構管理,該機構把域名空間各部分的管理責任分配給了連接到lnternet的各個組織。
2.頂級域
DNS根域的下一級是頂級域,由lnternet名稱授權機構管理,有兩種常見類型。
①組織域
組織域采用三個字符的代號,標識DNS域中所包含的組織主要功能或活動,如表2-1所示。
②國家或地區頂級域
國家或地區頂級域采用兩個字符的國家或地區代號,如表2-2所示。
3.二級域名
二級域是注冊到個人.組織或公司的名稱。
- 這些名稱基于相應的頂級域,如google.com”.就是基于頂級域”.com”.
- 二級域下可以包括主機和子域,如“google.com”可包含子域“mail.google.com”這樣的主機,
- 也可以包含如“news.google.com”這樣的子域,
- 而該子域還可以包含如“printer.news.google.com”這樣的主機.
3.主機名
主機名處于城名空間結構中的最底層,主機名和前面講的城名(DNS擴展名)
- 結合成FODN(Full Qualified Dornain Name,完全合格域名/全稱城名).
- 主機名是FODN最左端的部分.如"aaa.bbb.com”,
- 其中的“asa”是主機名,“bbb.com”稱為DNS擴展名。
用戶在訪問網絡上面的Web.FTP.Mail等服務時.通常使用FODN進行訪問.如www.google.com.
但是FODN并不能真正定位目標服務器的物理地址,而是需要DNS服務器將FODN解析成P地址。FODN是指一個系統的完整名稱而非其主機名稱。
四.DNS的區域
DNS的區域(Zone),是指域名空間樹型結構的一部分,它能夠將域名空間根據用戶需要劃分為較小的區域,而非域(Domain),以便于管理,一個區域內的主機數據(包括主機名和對應的IP地址)必須存放在DNS服務器內。而用來存放這些數據的文件稱為區域文件,一臺DNS服務器內可以存放多個區域文件,同一個區域文件也可以存放到多合DNS服務器中。
1.DNS域劃分為多個區域
為了將網絡管理的工作分散開來,可以將一個DNS域劃分為多個區域。
- 將域abc.com劃分為區域1和區域2.其中區域1包含子域product.abc.com,區域2包含子域abc.com和address.abc.com。
- 每個區域都存在一個區域文件,區域1的文件包含域內所有主機(dep1到dep30)的數據;而區域2的文件包含域內所有主機(abc1到abc20和add1到add40)的所有數據。
- 兩個區域文件可以存放在同一個DNS服務器中,也可以分別放在不同的DNS服務器中。
一個區域所包含的范圍在一個域名稱空間中是連續的,否則無法構成一個區域,如圖2.2所示的區域中,不能創建包含prodoct,abc.com和address.abc.com兩個子城的區域,因為這兩個子域位
于不連續的名稱空間。
五.DNS服務器的分類
DNS 服務器是整個DNS的核心,DNS服務器嚴格地講應該是DNS名稱服務器它保存著域名稱空間中部分區域的數據。當一個DNS服務器中存放域名稱空間內的一個或多個區域的數據時,就將這合DNS服務器稱為授權名稱服務器(Authoritative Name Server),授權名稱服務器負責維護和管理所轄區域中的數據,為DNS客戶端提供數據查詢,根據工作方式的不同,授權名稱服務器可分為主要名稱服務器,輔助名稱服務器,主控名稱服務器和Cache-Only名稱服務器。
1.主要名稱服務器
主要名稱服務器是用于存放該區域中相關設置的DNS服務器,當在一合DNS服務器上建立一個
區域文件時,有關該新建區域內的主機數據都直接存放到該DNS服務器中。主要名稱服務器存放的是區域文件的正本數據。
2.輔助域名服務器
當主域名服務器出現故障、關閉或負載過重時,輔助域名服務器作為主域名服務器的備份提供域名解析服務。輔助域名服務器中的區域文件中的數據是從另外的一臺主域名服務器中復制過來的,是不可以修改的。
在一個區域中設置輔助名稱服務器具有以下優點
- 當一臺DNS服務器發生故障時,由輔助名稱服務器提供服務。
- 分擔主要名稱服務器的負擔。
- 加快查詢速度,例如,一個公司分別位于相對較遠的兩個地方,這時可以在其中一處設置一臺輔助名稱服務器,當地的DNS客戶端直接從本地的輔助名稱服務器進行查詢即可。
3.主控名稱服務器
主控名稱服務器(Master Narme Server)是指提供區域數據復制的DNS.服務器,它既可以是該區
城內的主要名稱服務器,也可以是該區域內的輔助名稱服務器。
例如:當一合輔助名稱服務器從一臺主要名稱服務器中復制數據時,將提供數據復制服務器的這臺主要名稱服務器稱為輔助名稱服務器的主控名稱服務器。
4.Cache-Only名稱服務器
Cache-Only名稱服務器只負責查詢數據,并將曾經查詢到的數據保存在高速緩存中,當下一次
DNS客戶端查詢數據時,如果高速緩存內存在該數據。則它可以快速地將數據提供給客戶端。
Cache-Only名稱服務器不負責管轄域名稱空間內的任何DNS服務器,不創建任何區域、它只幫
助DNS客戶端向其他的DNS服務器進行查詢,再將查詢到的數據存儲一份到高速緩存中,響應DNS客戶端的查詢請求。
Cache-Only名稱服務器不但可以分擔網絡的工作量,而且可以讓DNS客戶端直接快速地進行查詢。
六.DNS的查詢過程及相關知識
1.DNS的查詢過程
下面通過查詢www.banet.com的例子來學習DNS的查詢過程。具體步驟如圖2.3所示.
- 客戶機將查詢www.benet.com的信息傳遞到自己的首選DNS服務器。
- DNS客戶機的首選DNS服務器檢查區域數據庫,由于此服務器沒有benet.com域的授權記錄,因此它將查詢信息傳遞到根域DNS 服務器,請求解析主機名稱。
- 根域DNS服務器把負責解析“com”頂級域的DNS服務器的IP地址返回給DNS客戶機的首選DNS 服務器。
- 首選DNS服務器將請求發送給負責“com”域的DNS服務器。
- 負責“com”域的服務器根據請求將負責“benet.com”域的DNS服務器的IP地址返回給首選 DNS 服務器。
- 首選DNS服務器向負責“benet.com”區域的DNS服務器發送請求。
- 由于此服務器具有www.benet.com的記錄,因此它將www.benet.com的P地址返回給首選 DNS服務器。
- 客戶機的首選DNS服務器將www.benet.com的IP地址發送給客戶機。
- 域名解析成功后,客戶機將http請求發送給Web服務器。
- Web服務器響應客戶機的訪問請求,客戶機便可以訪問目標主機。
如果DNS客戶機的首選DNS服務器沒有返回給客戶機wwww.benet.com的IP地址,那么客戶機將嘗試訪問自己的備用DNS服務器。
為了提高解析效率,減少查詢開銷,每個DNS服務器都有一個高速緩存,存放最近解析過的域名和對應的P地址.這樣,當有用戶查找相同的域名記錄時,便可以跳過某些查找過程,由DNS服務器直接從緩存中查找到該記錄的地址,從而大大縮短了查找時間,加快了查詢速度。
2.DNS的查詢方式
當DNS客戶端向DNS服務器查詢IP地址,或DNS服務器向另一臺DNS服務器查詢IP地址時,DNS的查詢過程分為兩種類型:遞歸查詢和迭代查詢。
1)遞歸查詢
當DNS客戶端按照它的DNS服務器列表向DNS 服務器發出查詢請求時,接收查詢請求的DNS服務器和客戶端之間的查詢關系一般都是遞歸查詢,該DNS服務器會查詢自己的區城文件、緩存。如果沒有找到結果,就向別的DNS服務器查詢,遞歸查詢時客戶端得到的結果只能是成功或失效。接收查詢的DNS服務器必須告訴客戶端請求查詢的P地址或告訴客戶端找不到請求的地址和找不到的原因(查詢超時或通到錯誤)DNS客戶端和它的首選DNS服務器之間就是遞歸查詢。
不是所有的查詢都是遞歸查詢,在使用轉發器時出現的是遞歸查詢,否則將進行選代查詢。
2)迭代查詢
迭代查詢又稱為簡單查詢,是指DNS服務器根據自己的高速緩存或區域的數據,以最佳結果作
答,如果DNS服務器無法解析,它可能返回一個指針,指針指向可能有目標域名記錄的DNS服務器。繼續該過程,直到找到擁有記錄的DNS服務器,或直到查詢出錯或超時為止,在圖2.3中,步驟 2一步驟 5 就屬于迭代查詢。
因為遞歸查詢比較占用系統資源,有安全方面的隱患,所以可以設置DNS服務器不接收遞歸查詢。這時該服務器將向轉發器中的DNS服務器發送遞歸查詢請求。如果沒有設置轉發器,該服務器將向根提示中的根服務器發送選代查詢的請求。(轉發器和根提示將在2.3節中講解)
DNS服務器的域名查詢根據查詢內容可以分為兩種形式:正向查詢和反向查詢。
- 正向查詢是由域名查找P地址。
- 反向查詢是由P地址查找域名。
反向查詢要求對每個域名進行詳細搜索,這需要花費很長時間,為了解決該問題,DNS標準定義了一個名為“in-addr.arpa”的特殊域(反向域),“in-addr.arpa”域遵循域名空間的層次命名方案它是基于IP地址的,而不是基于域名的,其中P地址8位組的順序是反向的。例如,客戶機要查找172.168.10.1的FQDN.就查詢反向域10,168.172.in-addr.arpa中的PTR指針記錄。