東坡下載:內(nèi)容最豐富最安全的下載站!

首頁(yè)IT技術(shù)軟件教程 → DNS解析完整版教程

DNS解析完整版教程

相關(guān)文章發(fā)表評(píng)論 來(lái)源:本站原創(chuàng)時(shí)間:2013/8/24 23:14:15字體大。A-A+

更多

作者:不詳點(diǎn)擊:210次評(píng)論:1次標(biāo)簽: DNS解析

正向解析(Forward Resolve) 功能 :由 Domain Name 查詢出 IPAddress,使得網(wǎng)絡(luò)程序能夠通過(guò)主機(jī)域名訪問(wèn)到目的服務(wù)器主機(jī)

反向解析(Reverseresolve) 功能 :由 IP Address查詢出 DomainName ,用于查詢連接工作站是屬于哪一個(gè)網(wǎng)絡(luò)域

查詢類型:

遞歸查詢:客戶送出查詢請(qǐng)求后,DNS服務(wù)器必須告訴客戶機(jī)正確的數(shù)據(jù)(IP地址)或通知客戶機(jī)找不到其所需數(shù)據(jù)。如果DNS服務(wù)器內(nèi)沒(méi)有所需要的數(shù)據(jù),則DNS服務(wù)器會(huì)代替客戶機(jī)向其他的DNS服務(wù)器查詢?蛻魴C(jī)只需接觸一次DNS服務(wù)器系統(tǒng),就可得到所需的節(jié)點(diǎn)地址

迭代查詢:客戶送出查詢請(qǐng)求后,若該DNS服務(wù)器中不包含所需數(shù)據(jù),它會(huì)告訴客戶機(jī)另外一臺(tái)DNS服務(wù)器的IP地址,使客戶機(jī)自動(dòng)轉(zhuǎn)向另外一臺(tái)DNS服務(wù)器查詢,依次類推,直到查到數(shù)據(jù),否則由最后一臺(tái)DNS服務(wù)器通知客戶機(jī)查詢失敗

DNS工作原理:

客戶機(jī)要首先從DNS服務(wù)器獲www.cnnic.net.cn對(duì)應(yīng)的IP地址,才能和遠(yuǎn)地服務(wù)器建立連接。

DNS域名空間的域名是由分布在不同地方的域名服務(wù)器來(lái)管理的,域名解析是由用戶指定的域名服務(wù)

器來(lái)完成的。

DNS域名服務(wù)采用的是客戶/服務(wù)器(client/server)工作模式?蛻舴降慕馕鲞^(guò)程函數(shù)

(resolver),嵌套在其它應(yīng)用的客戶程序之內(nèi)的。

本地域名服務(wù)器。本地域名服務(wù)器始終運(yùn)行它的域名服務(wù)器進(jìn)程(named),該進(jìn)程收到客戶請(qǐng)求時(shí),就開(kāi)始進(jìn)行域名解析

DNS解析過(guò)程:

(1)DNS客戶機(jī)提出域名解析請(qǐng)求,并將該請(qǐng)求發(fā)送給本地的域名服務(wù)器。

(2)當(dāng)本地的域名服務(wù)器收到請(qǐng)求后,就先查詢本地的緩存,如果有該記錄項(xiàng),則本地的域名服務(wù)器就直接把查詢的結(jié)果返回。

(3)如果本地的緩存中沒(méi)有該記錄,則本地域名服務(wù)器就直接把請(qǐng)求發(fā)給根域名服務(wù)器,然后根域名服務(wù)器再返回給本地域名服務(wù)器一個(gè)所查詢域(根的子域)的主域名服務(wù)器的地址。

(4)本地服務(wù)器再向上一步返回的域名服務(wù)器發(fā)送請(qǐng)求,然后接受請(qǐng)求的服務(wù)器查詢自己的緩存,如果沒(méi)有該記錄,則返回相關(guān)的下級(jí)的域名服務(wù)器的地址。

(5)重復(fù)第四步,直到找到正確的記錄。

(6)本地域名服務(wù)器把返回的結(jié)果保存到緩存,以備下一次使用,同時(shí)還將結(jié)果返回給客戶機(jī)。

資源記錄類型:

A:主機(jī)記錄,建立域名與IP地址之間的映射

CNAME:別名記錄,為其它資源記錄指定名稱的替補(bǔ)

SOA:初始授權(quán)記錄

NS:名稱服務(wù)器記錄,指定授權(quán)的名稱服務(wù)器

PTR:指針記錄,用來(lái)實(shí)現(xiàn)反向查詢

MX:郵件交換記錄,指定用來(lái)交換或者轉(zhuǎn)發(fā)郵件信息的服務(wù)器

HINFO:主機(jī)信息記錄,指明CPU與OS

注:dns的每次查詢都是經(jīng)過(guò)查詢本地的解析庫(kù)來(lái)完成,每一個(gè)解析庫(kù)文件中所保存的都是資源記錄,或宏定義,任何解析庫(kù)的第一個(gè)文件必須是SOA,

安裝DNS服務(wù)器:首先要安裝bind: #yum install bind,  #rpm –qc bind :查看生成列表,在 /etc/named.conf 下是主配置文件,其中還包含了其他許多xinetd配置文件

650) this.width=650;" onsubmit="" onchange="" onunload="" onselect="" onreset="" alt="" />

任何一個(gè)dns服務(wù)器要想實(shí)現(xiàn)解析,第一它要負(fù)責(zé)這個(gè)區(qū)域的區(qū)域文件

dig –t  NS表示要請(qǐng)求解析的類型,NS表示要請(qǐng)求一個(gè)NS記錄

# dig –t NSroot-server.net  查根域的

# dig –t NSroot-server.net @a.root-server.net 表示查找 @a.root-server.ne這個(gè)域的NS記錄有哪些,

# dig –t NS .@root-server.net  shuom

dig –t  NS.  后跟點(diǎn),是表示直接找根

dig命令:

dig -t 資源記錄類型;名稱 @server-ip:通過(guò)哪臺(tái)服務(wù)器來(lái)找;

每個(gè)主機(jī)中由/etc/resolv.conf指向主機(jī)nameserver IP

dig -x IP @server-ip

dig +trace

dig -t axfr zone 驗(yàn)證完全區(qū)域傳送指定一個(gè)區(qū)域,

# dig –t NS.  直接找根

dig –x  IP @server-ip(加資源記錄名稱):查詢反向解析

# dig –x 1.1.1.1

dig +trace 跟蹤解析過(guò)程

# dig –t NS . +trace

定義本地負(fù)責(zé)的一個(gè)DNS區(qū)域的解析:

第一、首先要去修改主配置文件 /etc/named.conf:注釋掉options段中如下選項(xiàng),也可以修改

//listen-on port 53 { 127.0.0.1; }; --à默認(rèn)是監(jiān)視本機(jī)

//listen-on-v6 port 53 { ::1; };  -à默認(rèn)監(jiān)聽(tīng)本機(jī)的53號(hào)端口

//allow-query     { localhost; };   --à只允許本機(jī)查詢;默認(rèn)是監(jiān)聽(tīng)所以地址上的,支持所以地址查詢

當(dāng)這些注釋掉以后啟動(dòng)起來(lái),此時(shí)啟動(dòng)named服務(wù):但是緩存DNS服務(wù)器;他給用戶的客戶端數(shù)量是有限的,默認(rèn)是1000  ;如果期望他是個(gè)主DNS服務(wù)器的話這時(shí)候只需要進(jìn)行一下步驟

文件中options:用來(lái)定義全局配置文件

directory:用來(lái)定義工作目錄的,就是區(qū)域文件放在什么地方;所起指的相對(duì)路勁都是相對(duì)他而言的

allow-query用來(lái)定義允許誰(shuí)來(lái)查詢的;localhost:只允許本地查詢

任何一個(gè)配置問(wèn)價(jià)必須要告訴他跟在什么地方,

第二步、去編輯配置文件 # vim /etc/named.rfc1912.zons  :在文件尾部新增一個(gè)zone

type  指定區(qū)域服務(wù)類型: master表示是主DNS服務(wù)器,

file 指定區(qū)域文件名,一般是區(qū)域名稱加 .zone 定義;

格式:

zone “magedu.com”IN {     magedu.com是區(qū)域名

typemaster;           ----> master 表示主DNS服務(wù)器

file “magedu.com.zone”;   ------>file:后跟區(qū)域文件,一般是區(qū)域名稱加.zone “magedu.com.zone”指的是相對(duì)路勁

};

檢測(cè)主配置文件語(yǔ)法錯(cuò)誤:named-checkconf

然后創(chuàng)建magedu.com.zone的文件

切換到 # /cd /var/named 下

在這里手動(dòng)創(chuàng)建個(gè)

查看# /vim /magedu.com.zone : 這個(gè)文件都是資源記錄,第一個(gè)資源記錄必須是SOA

還可以定義宏,最長(zhǎng)的宏是TTL:全局定義,

使用: $TTL  600  :說(shuō)明這是一個(gè)宏,600秒:說(shuō)明這個(gè)區(qū)域每一個(gè)設(shè)備文件如果沒(méi)有定義TTL值都是600秒

#hostname 查看本地主機(jī)名

@   ttl  IN  SOA  主DNS服務(wù)器FQDN  管理員郵箱  (  

2013081201     ---à序列號(hào)

2H             ---à刷新時(shí)間, refresh time, 通知(notify): 只通知給本區(qū)域解析庫(kù)文件中定義NS記錄的所有主機(jī)

5M             ---à重試時(shí)長(zhǎng)retry time

7D             ---à過(guò)期時(shí)長(zhǎng)

1d             ---à否定回答的TTL值

例:

編輯文件切換到/var/named下編輯文件# vim magedu.com.zone

$TTL 600

@    IN  SOA  dns.magedu.com. admin.magedu.com. (  -à指定主服務(wù)器

2013081301

2H           -----à表示刷新時(shí)間

10M         -----à重試時(shí)間,10M表示10分鐘重試一次

7D           -----à過(guò)期時(shí)間,7D表示一周過(guò)期

6H)         -----à否定回答的時(shí)間,6H表示否定回答6個(gè)時(shí)

IN   NS  dns ------à后面可以不用寫(xiě),它會(huì)自動(dòng)找到定義在/etc/named.rfc1912.zone中與之對(duì)應(yīng)的區(qū)域的名稱,并會(huì)自動(dòng)補(bǔ)全到后面,如果后面不不全一定不能加點(diǎn)。寫(xiě)全時(shí)                                        一定要加點(diǎn)。如果這一條名稱跟第一條一樣,前面可以省略@;

IN  MX  10  mail

dns  IN  A       172.16.100.1

mail IN  A        172.16.100.2

www  IN  A       172.16.100.6

www  IN  A       172.16.100.7  ----à一個(gè)主機(jī)名可以有兩個(gè)地址

pop  IN  A       172.16.100.7

ftp  IN CNAME    www

檢測(cè)區(qū)域文件語(yǔ)法錯(cuò)誤:named-checkzone

以上只是個(gè)數(shù)據(jù)庫(kù),地址可以不存在,不管有沒(méi)有這臺(tái)主機(jī),都可以完成解析

寫(xiě)完以后,使用 # ls –l 查看文件magedu.com.zone的權(quán)限屬主屬組確保主配置文件和各區(qū)域解析庫(kù)文件的權(quán)限為640,屬主為root,屬組為named;

如果不是root和named,就要先改權(quán)限: # chmod 640 magedu.com.zone 然后改屬主屬組# chmodroot:named magedu.com.zone

然后檢查主配置文件是否有語(yǔ)法錯(cuò)誤: # named-checkconf

再來(lái)檢查magedu.con.zone的區(qū)域?qū)?yīng)的文件有無(wú)語(yǔ)法錯(cuò)誤:

# named-checkzone “magedu.com”/var/namd/magedu.com.zone

如果寫(xiě)的沒(méi)問(wèn)題使用# service named restart 如果每次寫(xiě)的文件都要重啟,服務(wù)正在被互聯(lián)網(wǎng)上使用,你重啟正在被請(qǐng)求就會(huì)被斷掉,一般服務(wù)不使用restart

而是用# service named reload

讓服務(wù)不用重啟還能重讀配置文件使

# dig –t A www.magedu.com @172.16.100.1查看本機(jī)能不能完成解析,查看A記錄

# host –t A www.magedu.com 172.16.100.1 也可以查看

#dig –t NSmagedu.vom @172.16.100.1 這個(gè)前面不能加www  :查看NS記錄

#dig –t MXmagedu.vom @172.16.100.1 查看MX記錄

# dig –t CNAME ftp查看ftp的正式名稱是什么

#dig –t CNAME ftp.magedu.com @172.16.100.1 查看magedu.com的全名是什么

#dig –t SOAmagedu.com @172.16.100.1

dig也可以完成區(qū)域傳送: #dig –t axfr  magedu.com @172.16.100.1 把SOA,NS,MX,A CNAME 全都顯示出來(lái)axfr 顯示完全域名

上面每次都要指向本機(jī)@172.16.100.1態(tài)麻煩,可以編輯# vim/etc/resolv.conf直接指向本機(jī),

# ss–tuan 查看utp協(xié)議監(jiān)聽(tīng)進(jìn)程:dns named即會(huì)監(jiān)聽(tīng)tcp的53號(hào)端口,又會(huì)監(jiān)聽(tīng)utp的53

也可以使用 # netstat – tunl  也可以查看

建立反向區(qū)域解析庫(kù):

反向區(qū)域的區(qū)域名稱:網(wǎng)絡(luò)地址反過(guò)來(lái).in-addr.arpa

例:100.16.172.in-addr.arpa

第一步編輯 #vim /etc/nemed.rfc1912.zone 在最后面加上

zone “100.16.172.in-addr.arpa”IN {  

type master

file “172.16.100.zone”;

};  

然后檢查主配置文件的語(yǔ)法錯(cuò)誤# named-checkconf

接著建立區(qū)域設(shè)備文件;可也直接把正向的復(fù)制過(guò)來(lái)改動(dòng)就可以:CNAME不需要反向

# cpmagdu.com.zone 172.16.100.zone

然后編輯# vim 172.16.100.zone  反向區(qū)域文件不需要MX記錄的

$TTL 600

@   IN  SOA  dns.magedu.com. admin.magedu.com. (      

2013081301

2H      

10M  

7D    

6H)

IN   NS dnsdns.magedu.com.  --à后面必須補(bǔ)全,

1.100.16.172.in.addr.arpa.  IN  NSdns.magedu.com.  --à1 后面可以不寫(xiě),會(huì)自動(dòng)補(bǔ)全

1     IN PTR     dns.magedu.com

2    IN  PTR     mail.magedu.com

6    IN PTR      www.magedu.com

8    IN  PTR     www.magedu.com

8    IN PTR      pop.magedu.com

在反向解析庫(kù)中這些名字必須寫(xiě)全

然后改權(quán)限:屬主root,屬組named權(quán)限640 使用# ls –l查看

檢查:# named-checkzone “100.16.172.in-addr.arpa”/var/name/172.16.100.zone

然后重新載入 # service named reload

載入后想查看服務(wù)器怎么樣# rndc status

# rndcstats

# rndcreload

# rndcreconfig

rndc:Remote Name Domain Contoller :遠(yuǎn)程名稱域,或名稱服務(wù),進(jìn)程或控制器;這是個(gè)專門控制DNS服務(wù)器的工具;它能夠讓dns服務(wù)器聽(tīng)到,也能讓dns重新裝載主配置文件,重新裝載區(qū)域文件,顯示各個(gè)區(qū)域的狀態(tài)信息等,甚至還可以讓dns服務(wù)器清空緩存,

反向測(cè)試:# dig –x 172.16.100.1

對(duì)方向區(qū)域做完全傳送:#dig –t axfr 100.16.172..in-addr.arpa

創(chuàng)建一個(gè)輔助dns服務(wù)器:

從服務(wù)器不是區(qū)的從,是域的從,它主要是建立在域的級(jí)別上

如果有多臺(tái)dns服務(wù)器,那么必須為每個(gè)dns服務(wù)器建立ns記錄,否則主DNS將不向發(fā)送通知

區(qū)域定義:編輯 # vim /etc/named.rfc1912.zones

zone "區(qū)域名稱" IN {

type slave;  

file"slaves/ZONE_NAME.zone";

masters {    ----àmasters后指向主服務(wù)器是誰(shuí),括號(hào)里寫(xiě)上IP,括號(hào)內(nèi)可以有多個(gè),每一個(gè)后面都要以分好結(jié)尾,就算有一個(gè)也要跟分號(hào),

MASTER_DNS_IP;

MASTER_DNS2_IP;  

};

}

例:編輯 # vim /etc/named.rfc1912.zones

zone “magedu.com”IN {

type slave;

file “slaves/magedu.con.zone”

masters { 172.16.100.1; };

};  

創(chuàng)建完后檢查語(yǔ)法: #named-checkconf

然后回到主服務(wù)器。還沒(méi)定義這個(gè)服務(wù)器。先要給他一個(gè)ns記錄

編輯他的區(qū)域文件 # /vim magedu.com.zone

加一個(gè)ns記錄: IN  NS  ns2

指定ns2是那臺(tái)主機(jī): ns2  In  A 172.16.100.17

注:每一個(gè)dns必須有一個(gè)ns記錄。而且這個(gè)ns記錄對(duì)應(yīng)的主機(jī)名一定得有個(gè)A記錄,而且這個(gè)A記錄一定是那臺(tái)服務(wù)器的地址;有一點(diǎn)差錯(cuò)主從服務(wù)器都會(huì)有故障,

檢查: # named-checkzone “magedu.con”magedu.com.zone

在主服務(wù)器上先裝載下: # rndc reload

然后檢測(cè): # dig –t NS magedu.com

啟動(dòng):# service named start

查看日志:跟dns相關(guān)的日志都在、var/log/messages下

# tail /var/log/messages

確保從服務(wù)器有權(quán)限: # dig –t axfr magedu.com @172.16.100.1

擴(kuò)展知識(shí)

相關(guān)評(píng)論

閱讀本文后您有什么感想? 已有 人給出評(píng)價(jià)!

  • 2791 喜歡喜歡
  • 2101 頂
  • 800 難過(guò)難過(guò)
  • 1219 囧
  • 4049 圍觀圍觀
  • 5602 無(wú)聊無(wú)聊
熱門評(píng)論
最新評(píng)論
發(fā)表評(píng)論 查看所有評(píng)論(1)
昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)