咱們在瀏覽器的地址欄中輸入:http://www.sohu.com就能夠瀏覽該網站的資源了,可是在互聯網數據的傳輸、主機的識別依靠的是IP地址。也就是說,在互聯網中能準確地把數據從一臺主機路由到指定的主機依賴於邏輯地址IP。可是,咱們日常瀏覽網頁的時候,沒有輸入IP地址,只輸入了http://www.sohu.com 就可以訪問sohu的網頁了,那又是爲何呢?web
其實,這背後是由:DNS域名解析服務器,把域名www.sohu.com 解析成對應的 IP 地址,而後瀏覽器就使用該IP地址訪問服務器了。若是DNS域名解析服務器沒法解析該域名,則你是沒法訪問該域名對應的主機的資源的。固然,你也能夠在瀏覽器直接輸入你要訪問主機的IP地址,也是能夠的。數據庫
DNS解析以前的步驟:vim
-------> 查找hosts文件 -------> DNS緩存(DNS客戶端) --------> 查找DNS服務器緩存 ---------> 由DNS服務器去解析以下圖
說明:(這裏略去國家域的解析)瀏覽器
一、 DNS客戶端向DNS域名解析服務器(運營商DNS)發送域名www.9527du.com解析請求。 二、 運營商DNS收到請求後,發現【.com】該域並不在本身的解析能力範圍內。 把解析請求提交給根域。 三、 根域告訴運營商DNS,負責解析【.com】域的DNS服務器的地址 四、 運行商DNS服務器,從根域那裏知道了負責【.com】域的DNS服務器的地址, 就請求幫忙解析【9527.com】 五、 負責解析【.com】域的DNS服務器就告訴,運行商DNS負責【9527du】該域的DNS服務器的地址 六、 運行商DNS服務器,就向負責【9527du】域DNS服務器,請求解析【www】主機的地址 七、 負責解析【9527du】域的DNS,查找本身的A記錄,確實有這www這臺主機, 就把該主機對應的IP地址,告訴運營商DNS服務器。 八、 運營商DNS服務器,就告訴本身的客戶端你要解析的域名的IP地址是什麼。 九、 DNS客戶端(瀏覽器)就使用IP地址訪問www.9527du.com這域名對應主機的資源了。
從上面,能夠看出,域名解析也就是從域名找出,它所對應的IP地址。屬於名稱解析的一種。那麼咱們應該使用文件或數據庫把域名與IP地址的對應關係存儲起來,文件或數據庫就被稱爲:解析庫。緩存
解析庫的種類有:bash
一、文本文件 查找速度慢,若是文本文件很大的知,把該文件加載入內存,才能夠查找佔用很大內存 二、基於關係型數據庫 能夠經過一級索引,多級索引,加速數據的檢索速度 三、LDAP:LightweightDirectory Access Protocol 比關係型數據庫的檢索快100倍數據級。
咱們的應用應該選擇哪一種解析庫呢,視實際應用而定。服務器
那麼,DNS服務器是如何定義解析庫的呢?架構
[root@stu13 ~]# vim/etc/named.rfc1912.zones zone "9527du.com" IN { type master; file "9527du.zone"; };
說明:dom
Zone 關鍵字,是定義域的名稱。域有嫡屬關係的。如上圖【.9527du】這個域是【.com】域的子 域,而【.com】域又屬於根域的子域。因此,咱們定義域的時候,要標明該域是屬於那個 域的。如:【.9727du.com】.這也是域的層級結構決定的。咱們只有瞭解域的層級才能夠ide
正確配置DNS服務器的。
Type 關鍵字,是定義負責該域解析的DNS服務器工做類型:主DNS仍是slave DNS仍是根:hint.
File 關鍵字,指定咱們的解析庫名稱。該解析庫是使用相對路徑表示的,是相對於named工做 的目錄而言的,工做目錄在options{…};主配置段中使用:directory關鍵字來定義的。
咱們有了解析庫了,就應該在解析庫中定義要解析的內容了,也就是定義資源類型。那麼DNS有那些資源類型呢,定義資源類型的格式又是什麼樣的呢?
一、 資源類型
(1)、SOA Start Of Authority 起始受權記錄; 做用:定義負責該區域zone的DNS域名解析的服務器的工做特徵的。 注意:一個區域文件中只能有一個 SOA 資源記錄。 (2)、NS Name Server 標識一個區域zone內,誰是DNS服務器。 (3)、MX Mail eXchange標明一個域內誰是郵件DSN 服務器。 注意要指明優先級:[0-99] (4)、A address A記錄,專門用於正向解析庫。 (5)、PTR 專用於反向解析庫。FQDN-------> IP 注意:A資源記錄與PTR不能同時出現。 (6)、AAAA 專用於IPV6 (7)、CNAME Canonical Name 別名記錄
2、資源記錄類型的格式;
Name [ttl] IN RRType value 緩存時長 資源記錄類型
(1)、SOA Start Of Authority 起始受權記錄
Name 當前區域的域名,也就是負責解析的區域zone..一般能夠簡寫成:@ Value 負責解析該區域的DNS的FQDN,也能夠是當前區域的區域名稱。
例:
@ IN SOA ns.9527du.com. admin.9527du.com. ( serialnumber ; 解析庫的版本號。分號爲註釋。每改變一次配置版本號要+1 refreshtime ; DNS服務器是主從架構時,解析庫數據同步的時間間隔 retry time ; 當從服務器鏈接不到主服務器時,每隔多長時間聯繫一次。 expiretime ; 從服務器聯繫不到主服務器。從服務器幫助主服務器解析域名的時長 negativeanswer ttl ; 否認答案(不能解析的域名)的統一緩存時長。 )
注意:任何解析庫文件的第一個記錄必須是SOA
(2)、NS name server
Name DNS服務器負責解析的區域zone,,能夠簡寫成:@ Value DSN 服務器的FQDN
例:
@ IN NS ns.9527du.com.
注意:
若是有多臺NS服務器,每個都必須有對應的NS記錄。對於正向解析文件來講,每個NS的FQDN都應該有一個A記錄。
(3)、MX: Mail eXchanger
name: 郵件DNS服務器負責解析的區域zone名稱 value: 郵件服務器的FQDN
例:
@ IN MX 10(優先級) mail.9527du.com @ IN MX 20 mail2.9527du.com
注意:
若是有多臺MX服務器,每個必須有對應的MX記錄,但各MX記錄還有優先級屬性
對於正向解析文件來講,每個NS的FQDN都應該有一個A記錄。
作爲郵件的DNS服務器,必需有正反解的功能。
(4)、A (Address):記錄
Name FQDN Value IP地址
例:
ns.9527du.com IN A 10.16.13.1 mail.9527du.com IN A 202.1.50.8 www.9527du.com IN A 202.1.50.8 bbs.9527du.com IN A 202.1.50.8
(5)、CNAME: Canonical Name
name: FQDN value: FQDN
例:
web.8527du.com IN CNAME www.9527du.com.
那如何配置DNS的正向解析功能呢?
一、 要先肯定DNS服務器負責解析的區域?再定義DNS服務器的工做模式和解析庫
負責解析:9527du.com該區域,該DNS工做在master,解析庫文件爲:9527du.zone
[root@stu13 ~]# vim/etc/named.rfc1912.zones zone "9527du.com" IN { type master; file "9527du.zone"; };
2、在解析庫9527du.com.zone中添加資源記錄。
三、使用【host】測試是否可以解析成功
[root@stu13~]# host -t A www.9527du.com 172.16.13.1 Usingdomain server: Name:172.16.13.1 Address:172.16.13.1#53 Aliases: www.9527du.comhas address 172.16.249.50 www.9527du.comhas address 172.16.249.51
[root@stu13~]# host -t A web.9527du.com 172.16.13.1 Usingdomain server: Name:172.16.13.1 Address:172.16.13.1#53 Aliases: web.9527du.comis an alias for www.9527du.com. www.9527du.comhas address 172.16.249.51 www.9527du.comhas address 172.16.249.50
[root@stu13~]# host -t A bbs.9527du.com 172.16.13.1 Usingdomain server: Name:172.16.13.1 Address:172.16.13.1#53 Aliases: bbs.9527du.com has address 172.16.249.52
OK!!!!