DNS是應(yīng)用層的協(xié)議,默認(rèn)使用UDP的53端口,也會(huì)用到TCP的53端口。
成都創(chuàng)新互聯(lián)公司公司2013年成立,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站制作、做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元孟州做網(wǎng)站,已為上家服務(wù),為孟州各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108
DNS名稱(chēng)解析方式:
名稱(chēng) --> IP:正向解析
第一段這種方式叫遞歸查詢(xún),只發(fā)出去一次請(qǐng)求,就給它返回答案;第二段這種方式就迭代查詢(xún),要發(fā)出多次請(qǐng)求,需要自己查詢(xún)不同域名,最后才返回答案;這就是DNS的查詢(xún)類(lèi)型。
一般內(nèi)網(wǎng)遞歸,外網(wǎng)迭代。
IP --> 名稱(chēng):反向解析
每一層服務(wù)器都有各自的數(shù)據(jù)庫(kù),來(lái)存儲(chǔ)各自負(fù)責(zé)的網(wǎng)段,這與正向解析的數(shù)據(jù)庫(kù)是兩個(gè)各自獨(dú)立的數(shù)據(jù)庫(kù)。
一次完整的查詢(xún)請(qǐng)求經(jīng)過(guò)的流程:
Client --> hosts文件 --> DNS Local Cache --> DNS Server (recursion) --> 分兩種情況:
(1)自己負(fù)責(zé)解析的域:直接查詢(xún)數(shù)據(jù)庫(kù)并返回答案
(2)不是自己負(fù)責(zé)解析域:Server Cache --> iteration(迭代)
主-輔DNS服務(wù)器:
主DNS服務(wù)器:維護(hù)所負(fù)責(zé)解析的域數(shù)據(jù)庫(kù)的那臺(tái)服務(wù)器;讀寫(xiě)操作均可進(jìn)行
從DNS服務(wù)器:從主DNS服務(wù)器那里或其它的從DNS服務(wù)器那里“復(fù)制”一份解析庫(kù);但只能進(jìn)行讀操作
在linux系統(tǒng)上實(shí)現(xiàn)DNS服務(wù)的程序是bind,安裝bind程序,而bind程序安裝后運(yùn)行的進(jìn)程名為named;
]# yum install bind
主配置文件:/etc/named.conf、/etc/named.rfc1912.zones
解析庫(kù)文件/var/named/目錄下,以區(qū)域名字命名:ZONE_NAME.zone
正向解析庫(kù)文件:/var/named/named.localhost
反向解析庫(kù)文件:/var/named/named.loopback
注意:根區(qū)域解析庫(kù)文件named.ca、正向解析庫(kù)文件named.localhost、反向解析庫(kù)文件named.loopback都不是程序提供的,而是rpm包制作者提供的。
配置主DNS服務(wù)器
正向區(qū)域:
第一步:定義正向區(qū)域zone
]# vim /etc/named.con
修改內(nèi)容:
listen-on port 53 { 127.0.0.1; 172.18.252.23; };
dnssec-enable no
//allow-query { localhost; };
添加本地主機(jī)地址;把dnssec都改為no;關(guān)閉僅允許本地查詢(xún)即加//注釋?zhuān)?/p>
]# vim /etc/named.rfc1912.zones
添加內(nèi)容:
zone "magedu.com" IN {
type master;
file "magedu.com.zone";
};
注意:在區(qū)域中定義的這個(gè)file指明的magedu.com.zone區(qū)域數(shù)據(jù)庫(kù)文件還不存在,需要自己創(chuàng)建,如果在上面配置文件的file中定義的是相對(duì)路徑,默認(rèn)為在/var/named/目錄下創(chuàng)建,且這個(gè)目錄默認(rèn)是不存在的。
第二步:建立正向區(qū)域解析數(shù)據(jù)庫(kù)文件(主要記錄為A或AAAA記錄)
一般默認(rèn)在/var/named目錄下建立,為magedu.com.zone區(qū)域創(chuàng)建編輯一個(gè)正向區(qū)域數(shù)據(jù)庫(kù)文件,創(chuàng)建正向區(qū)域數(shù)據(jù)庫(kù)文件,自己取名為magedu.com.zone。
區(qū)域數(shù)據(jù)庫(kù)文件除了宏定義外,都是資源記錄,第一條必須為soa記錄。
]# vim /var/named/magedu.com.zone
$TTL 3600:?jiǎn)挝皇敲耄?/p>
$ORIGIN magedu.com.
@ IN SOA ns1.magedu.com. 403868144.qq.com. (
2016041001
1H
10M
3D
1D )
IN NS ns1
IN NS ns2
IN MX 10 mx1
IN MX 20 mx2
ns1 IN A 172.18.11.2
ns2 IN A 172.18.11.3
mx1 IN A 172.18.11.4
mx2 IN A 172.18.11.5
www IN A 172.18.11.2
web IN CNAME www
bbs IN A 172.18.11.2
第三步:修改正向區(qū)域數(shù)據(jù)庫(kù)文件的權(quán)限為其它不可讀,屬組為named
]# chown :named magedu.com.zone
]# chmod o= magedu.com.zone
第四步:語(yǔ)法檢查
]# named-checkconf
]# named-checkzone magedu.com /var/named/magedu.com.zone
查看區(qū)域信息
]# rndc status
注意:正向區(qū)域名一定要與在/etc/named.rfc1912.zones文件中的zone定義的正向區(qū)域名一致;但zone中的區(qū)域名后的.可省略。
第五步:讓服務(wù)器重載配置文件和區(qū)域數(shù)據(jù)文件
]# rndc reload
第六步:測(cè)試DNS服務(wù)器是否能解析
]# dig -t A www.magedu.com @172.18.250.131
]# host -t A bbs.magedu.com @172.18.11.2
]# dig -t NS magedu.com @172.18.11.2
]# host -t MX magedu.com @172.18.11.2
配置反向區(qū)域,配置步驟同配置正向解析區(qū)域相同
第一步:定義反向區(qū)域
]# vim /etc/named.rfc1912.zones
zone "11.18.172.in-addr.arpa" IN {
type master;
file "172.18.11.zone";
};
第二步:定義反向區(qū)域解析庫(kù)文件(主要記錄為PTR)
一般默認(rèn)在/var/named目錄下建立;反向區(qū)域解析庫(kù)文件自己取名為172.18.250.zone。
]# vim 172.18.11.zone
$TTL 3600
$ORIGIN 250.18.172.in-addr.arpa.設(shè)置自動(dòng)補(bǔ)上完整IP的內(nèi)容;
@ IN SOA ns1.magedu.com. 403868144.qq.com. (
2016041001
1H
10M
3D
12H )
IN NS ns1.magedu.com.
2 IN PTR ns1.magedu.com.
3 IN PTR ns2.magedu.com.
4 IN PTR mx1.magedu.com.
5 IN PTR mx2.magedu.com.
2 IN PTR www.magedu.com.
2 IN PTR bbs.magedu.com.
2 IN PTR bbs.magedu.com.
第三步:修改反向區(qū)域數(shù)據(jù)庫(kù)文件的權(quán)限為其它不可讀,屬組為named
]# chgrp named 172.18.11.2.zone
]# chmod o= 172.18.11.2.zone
第四步:檢查語(yǔ)法
]# named-checkconf
]# named-checkzone 11.18.172.in-addr.arpa /var/named/172.18.11.zone
注意:反向區(qū)域名一定要與在/etc/named.rfc1912.zones文件中的zone定義的反向區(qū)域名一致;但zone中的區(qū)域名后的.可省略。
第五步:讓服務(wù)器重載配置文件和區(qū)域數(shù)據(jù)文件
]# rndc reload
第六步:測(cè)試DNS服務(wù)器是否能反向解析
]# dig -x 172.18.11.2
以上配置為主DNS服務(wù)器配置過(guò)程。
配置從DNS服務(wù)器:
首先配置正向區(qū)域的從,再配置反向區(qū)域的從。
在從服務(wù)器上配置:
第一步:定義從區(qū)域
]# vim /etc/named.conf
listen-on port 53 { 127.0.0.1; 172.18.252.23; };
dnssec-enable no
//allow-query { localhost; };
第二步:配置從服務(wù)器為正向區(qū)域的DNS服務(wù)器
]# vim /etc/named.rfc1912.zones
zone "magedu.com" IN {
type slave;
file "slaves/magedu.com.zone";
masters { 172.18.11.2; }
};
第三步:檢查語(yǔ)法
]# named-checkconf
第四步:在主服務(wù)器上配置
]# vim /var/named/magedu.com.zone
ns2 IN A 172.18.11.3
提示:添加一條ns記錄,例如可以為NS2,這個(gè)名字和從服務(wù)器的自身主機(jī)名沒(méi)關(guān)系,但是NS2要有一條A記錄,指向從服務(wù)器主機(jī)即172.18.11.3是從服務(wù)器的IP地址;這條記錄必須得有。
第五步:檢查主服務(wù)器區(qū)域文件語(yǔ)法
]# named-checkzone magedu.com /var/named/magedu.com.zone
第六步:重載配置文件
]# rndc reload
第七步:在從服務(wù)器上操作,重載配置文件
]# rndc reload
測(cè)試從DNS服務(wù)器正向解析
]# dig -t A www.magedu.com @172.18.11.3
驗(yàn)證從服務(wù)器能同步到正向解析數(shù)據(jù)庫(kù)文件
在主服務(wù)器區(qū)域文件中新增一條pop3的記錄,并遞增序列號(hào);
2016041003:系列號(hào)遞增;
pop3 IN A 172.18.11.6:添加pop3的A記錄;
]# rndc reload
在從服務(wù)器上查看是否收到更新的區(qū)域數(shù)據(jù)庫(kù)文件
]# dig -t A pop3.magedu.com @172.18.11.3
配置從服務(wù)器為反向區(qū)域的DNS服務(wù)器
第一步:在從服務(wù)器上主配置文件中添加反向區(qū)域
]# vim /etc/named.rfc1912.zones
zone "11.18.172.in-addr.arpa" IN {
type slave;
file "slaves/172.18.11.zone";
masters { 172.18.11.2; };
};
第二步:檢查主配置文件語(yǔ)法
]# named-checkconf
第三步:在主服務(wù)器的反向區(qū)域數(shù)據(jù)庫(kù)文件中要確保有一條NS記錄必須要有,還可以有ns對(duì)應(yīng)的ptr記錄
]# vim /var/named/172.18.11.zone
2016041002
IN NS ns2.magedu.com.
3 IN PTR ns2.magedu.com.
第四步:檢查反向區(qū)域文件語(yǔ)法
]# named-checkzone 11.18.172.in-addr.arpa /var/named/172.18.11.zone
第五步:重載
]# rndc reload
第六步:從服務(wù)器重載
]# rndc reload
查看從服務(wù)器是否同步到反向解析數(shù)據(jù)庫(kù)文件
]# ls /var/named/slaves
測(cè)試從DNS服務(wù)器反解析
]# dig -x 172.18.11.2 @172.18.11.3
子域授權(quán)方法:
第一步:在父域的主DNS服務(wù)器上的正向區(qū)域數(shù)據(jù)庫(kù)文件/var/named/magedu.com.zone上授權(quán)子域
]# vim /var/named/magedu.com.zone
2016041004
ops IN NS ns1.ops
ns1.ops IN A 172.18.11.4
第二步:重載
]# rndc reload
在子域服務(wù)器(172.18.11.4)上操作
第一步:編輯主配置文件
]# vim /etc/named.conf
listen-on port 53 { 127.0.0.1; 172.18.11.4; };
dnssec-enable no
//allow-query { localhost; };
第二步:?jiǎn)?dòng)named程序
]# systemctl start named.service
第三步:配置172.18.11.4的服務(wù)器為ops.magedu.com子域的主服務(wù)器
]# vim /etc/named.rfc1912.zones
zone "ops.magedu.com" IN {
type master;
file "ops.magedu.com.zone";
};
第四步:在var/named/目錄下創(chuàng)建file中指明的ops.magedu.com.zone正向區(qū)域數(shù)據(jù)庫(kù)文件
]# vim var/named/ops.magedu.zone
$TTL 3600
$ORIGIN ops.magedu.com.
@ IN SOA ns1.ops.magedu.com. 403868144.qq.com. (
2016041101
1H
10M
1D
2H )
IN NS ns1
ns1 IN A 172.18.11.4
www IN A 172.18.11.4
第五步:修改正向區(qū)域數(shù)據(jù)庫(kù)文件權(quán)限為其它沒(méi)有寫(xiě)權(quán)限,屬組為named
]# chmod o= ops.magedu.zone
]# chgrp named ops.magedu.zone
第六步:語(yǔ)法檢查
]# named-checkzone ops.magedu.com ops.magedu.com.zone
第七步:重載
]# rndc reload
第八步:測(cè)試正向解析
]# dig -t A www.ops.magedu.com @172.18.11.4
在子域服務(wù)器上定義轉(zhuǎn)發(fā)區(qū)域:
第一步:編輯主配置文件
]# vim /etc/named.rfc1912.zones
zone "magedu.com" IN {
type forward;
forward only;
forwaders { 172.18.11.2; 172.18.11.3; };
};
第二步:檢查語(yǔ)法
]# named-checkconf
第三步:重載
]# rndc reload
第四步:測(cè)試
在父域服務(wù)器上解析子域
]# dig -t A www.ops.magedu.com @172.18.11.2
在子域服務(wù)上解析父域
]# dig -t A www.magedu.com @172.18.11.4
在子域服務(wù)器上定義全局轉(zhuǎn)發(fā):
第一步:編輯主配置文件
]# vim /etc/named.conf
在options段編輯:
forward only;
forwarders { 172.18.11.2; };
第二步:重載
]# rndc reload
第三步:測(cè)試baidu
]# dig -t A www.baidu.com @172.18.11.4
安全相關(guān)的配置
在子域服務(wù)器上,應(yīng)該僅設(shè)定為允許從服務(wù)器區(qū)域傳送
在主服務(wù)器上配置:僅允許從服務(wù)器區(qū)域傳送;訪問(wèn)控制列表allow-transfer
]# vim /etc/named.rfc1912.zones
zone "magedu.com" IN {
type master;
file "magedu.com.zone";
allow-transfer { slaves; };
};
在主服務(wù)器上配置訪問(wèn)控制列表:
編輯/etc/named.conf配置文件,在options段前添加slaves訪問(wèn)控制列表:
]# vim /etc/named.conf
acl slaves {
172.18.11.3;
127.0.0.1;
};
檢查語(yǔ)法:
]# named-checkconf
重載:
]# rndc reload
在非從服務(wù)器上測(cè)試:
]# dig -t axfr magedu.com @172.18.11.2
設(shè)置成功。
在從服務(wù)器上測(cè)試區(qū)域傳送:
]# dig -t axfr magedu.com @172.18.11.2
在主服務(wù)器上測(cè)試:
]# dig -t axfr magedu.com @172.18.11.2
]# dig -t axfr magedu.com @127.0.0.1
均顯示區(qū)域傳送失?。灰?yàn)?,使用本機(jī)172.18.11.2這個(gè)地址,在訪問(wèn)控制列表中沒(méi)有定義所以不能傳送;而127.0.0.1這個(gè)地址即使在訪問(wèn)控制列表中定義了,但因?yàn)闆](méi)有在options段定義監(jiān)聽(tīng)的地址,所以也不能進(jìn)行區(qū)域傳送;
修改主服務(wù)器配置文件/etc/named.conf,
]# vim /etc/named.conf
添加監(jiān)聽(tīng)127.0.0.1:
listen-on port 53 { 127.0.0.1; 172.18.11.2; };
重啟服務(wù):
]# systemctl restart named.service
即可;
配置訪問(wèn)控制列表中的遞歸,僅允許為本地客戶(hù)端做遞歸
修改主服務(wù)器配置文件/etc/named.conf,添加遞歸訪問(wèn)控制列表;
]# vim /etc/named.conf
添加:
acl mynet {
127.0.0.0/8;
};
僅允許本地127網(wǎng)段做遞歸查詢(xún);
(把recursion yes;改為:)allow-recursion { mynet; };
重載:
]# rndc reload
因此,使用其它主機(jī)做遞歸都拒絕,如使用子域服務(wù)器遞歸查詢(xún)baidu
]# dig -t A www.baidu.com @172.18.11.4
遞歸查詢(xún)失?。?/p>
當(dāng)在主服務(wù)器配置文件/etc/named.conf,添加172.18.11.4到遞歸訪問(wèn)控制列表即可實(shí)現(xiàn)遞歸;
]# vim /etc/named.conf
acl mynet {
172.18.11.4/16;
127.0.0.0/8;
};
重載:
]# rndc reload
此時(shí),使用子域服務(wù)器遞歸查詢(xún)baidu;
]# dig -t A www.baidu.com @172.18.11.4
成功遞歸;
對(duì)于從服務(wù)器,也要修改主配置文件/etc/named.rfc1912.zones,設(shè)定區(qū)域傳送和遞歸查詢(xún)的訪問(wèn)控制列表;
]# vim /etc/named.rfc1912.zones
zone "magedu.com" IN {
type slave;
file "slaves/magedu.com.zone";
masters { 172.18.11.2; };
allow-transfer { none; };
allow-update { none; }; 禁止進(jìn)程動(dòng)態(tài)更新,跟區(qū)域傳送沒(méi)關(guān)系;
};
zone "11.18.172.in-addr.arpa" IN {
type slave;
file "slaves/172.18.11.zone";
masters { 172.18.11.2; };
allow-transfer { none; };
allow-update { none; };
};
在子域服務(wù)器上測(cè)試是否能通過(guò)從服務(wù)器對(duì)magedu.com域進(jìn)行區(qū)域傳送;
]# dig -t axfr magedu.com @172.18.11.3
顯示失??;
]# dig -t axfr ops.magedu.com @172.18.11.4:子域可以為自己進(jìn)行傳送區(qū)域;因?yàn)樽佑驔](méi)有做訪問(wèn)控制;
正常情況下,每一個(gè)域名服務(wù)器,只要沒(méi)有從服務(wù)器,allow-transfer都應(yīng)該是none,有從服務(wù)器,allow-transfer應(yīng)該僅指向從服務(wù)器;而且每一個(gè)區(qū)域都應(yīng)該是allow-update設(shè)為none,除非使用DDNS。