正向解析(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