- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業(yè)務(wù)經(jīng)營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯(lián)網(wǎng)協(xié)會理事單位
- 安全聯(lián)盟認(rèn)證網(wǎng)站身份V標(biāo)記
- 域名注冊服務(wù)機構(gòu)許可:滇D3-20230001
- 代理域名注冊服務(wù)機構(gòu):新網(wǎng)數(shù)碼
DNS概述
DNS?Domain Name System,域名系統(tǒng)),域名和IP地址相互映射的一個分布式數(shù)據(jù)庫,通過主機名,最終得到該主機名對應(yīng)的IP地址的過程叫做域名解析。而DNS的主要作用,就是域名解析,將主機名解析成IP地址。DNS這種機制能夠完成從域名(FQDN)到主機識別IP地址之間的?換,在DNS誕生之前,這個功能主要是通過本地的一個hosts文件來記錄域名和IP的對應(yīng)關(guān)系,但hosts文件只能作用于本機,不能同步更新至所有主機,且當(dāng)hosts文件很龐大時難以管理,因此,一個分布式、分層次的主機名管理架構(gòu)DNS便應(yīng)用而生。
FQDN(Full Qualified Domain Name)亦即完整主機名,完整主機名由主機名與域名構(gòu)成。DNS同根文件系統(tǒng)一樣是一個倒置的樹狀結(jié)構(gòu),最頂層的叫做根服務(wù)器,主要負(fù)責(zé)頂級域名的管理,常見的頂級域名有.com、.cn、.net、.org、.edu、.gov、.mil等,頂級域名則負(fù)責(zé)管理其下面的二級域名,如baidu.com,qq.com等,二級域名服務(wù)器則負(fù)責(zé)對應(yīng)的主機名稱或其三級域名解析,依次類推,根服務(wù)器管理頂級域名,頂級域名管理二級域名,二級域名管理三級域名或直接解析主機名,如此便形成了一個倒置的樹狀結(jié)構(gòu)。
由此可見,每一級只負(fù)責(zé)對應(yīng)下級的域的管理,而全球共有13?根節(jié)點服務(wù)器,10臺位于美國,其余3臺分別在英國、瑞典和日本,在這13臺根服務(wù)器當(dāng)中有1臺為主根服務(wù)器放置在美國,其余12臺為輔根服務(wù)器,所有的根服務(wù)器均由美國政府授權(quán)的互聯(lián)網(wǎng)域名與號碼分配機構(gòu)ICANN組織統(tǒng)一管理,負(fù)責(zé)全球互聯(lián)網(wǎng)域名根服務(wù)器、域名體系和IP地址等的管理。
hosts
hsots: 只能作正向解析,優(yōu)先級比DNS高,hosts文件一般用于測試,或者用于局域網(wǎng)里面,
在局域網(wǎng)里面,也可以用nis。
解析類型
正向解析:FQDN --> IP,即把主機名解析為IP地址
反向解析: IP --> FQDN,即把IP地址解析為主機名
泛域名解析:避免用戶寫錯名稱時給出錯?答案,可通過泛域名解析進(jìn)行解析至某特定地址。
$GENERATE 1-254 HOST$ A 1.2.3.$
查詢類型
遞歸查詢:遞歸查詢一般是客戶機與服務(wù)器之間的查詢,即客戶機只發(fā)送一次請求,
其他的工作將由上層服務(wù)器去解決,最后一層一層地反饋結(jié)果到客戶端。
迭代查詢:迭代查詢一般是DNS服務(wù)器與DNS服務(wù)器之間的查詢,即最開始的DNS服務(wù)
器負(fù)責(zé)發(fā)起請求,其他涉及到的DNS服務(wù)器只負(fù)責(zé)響應(yīng)即可,然后一直查找到目標(biāo)DNS
服務(wù)器,并將結(jié)果返回給客戶端。
zone: DNS數(shù)據(jù)庫
DNS的解析過程當(dāng)中涉及到DNS數(shù)據(jù)庫,此數(shù)據(jù)庫又分為正解與反解,正解即從主機名
到IP,反解即從IP到主機名,無論正解還是反解,每個域名所對應(yīng)的解析記錄我們稱
之為zone(域)
RR: 資源記錄
RR(Resource Record), 這些記錄的類型有:A, AAAA, PTR, SOA, NS, CNAME, MX
SOA:Start Of Authority,起始授權(quán)記錄;一個區(qū)域解析庫有且僅能有一個SOA記錄,必須位于解析庫的第一條記錄
A:internet Address,作用,FQDN --> IP
AAAA: FQDN --> IPv6
PTR: PoinTeR,IP --> FQDN
NS: Name Server,專用于標(biāo)明當(dāng)前區(qū)域的DNS服務(wù)器
CNAME:Canonical Name,別名記錄
MX:Mail eXchanger,郵件交換器
主從DNS服務(wù)器
DNS也是一個網(wǎng)絡(luò)服務(wù),因此就有對應(yīng)的端口號,其端口號為53號,通常DNS在查詢時是以UDP/53來查詢,而在主從同步時是以TCP/53來同步。為了克服網(wǎng)絡(luò)中的單點故障問題,DNS服務(wù)器一般會有主DNS服務(wù)器與從DNS服務(wù)器。
主DNS服務(wù)器:管理和維護所負(fù)責(zé)解析的域內(nèi)解析庫的服務(wù)器
從DNS服務(wù)器:從主服務(wù)器或從服務(wù)器“?制”(區(qū)域傳輸)解析庫副本
主從在同步時有兩種機制:
push: 主服務(wù)器push給從服務(wù)器pull:從服務(wù)器pull主服務(wù)器
push: 推機制,主服務(wù)器有變,則主動推送給從服?器,瞬間完成。
pull: 拉機制,從服務(wù)器定期地同步主服務(wù)器,即刷新時間間隔。如果刷新時間失敗,則在重試時間間隔再次同步。
一次完整的DNS查詢
Client -->hosts文件-->DNS Service Local Cache --> DNS Server (recursion) --> Server Cache --> iteration(迭代) --> 根--> 頂級域名DNS-->二級域名DNS…
如下場景:
Client: liansir------>www.tjdsmy.cn Liansir上網(wǎng)時會自動獲取一個DNS地址,此DNS地址是liansir所在小區(qū)或電信提供一個DNS服務(wù)器,而此DNS上一般沒有qq.com所對應(yīng)的主機與IP的對應(yīng)關(guān)系,即沒有www主機所對應(yīng)的IP,(存放www主機所對應(yīng)IP的DNS服務(wù)器稱為權(quán)威服務(wù)器)
此時,liansir自動獲取的DNS會去找根域,(每個DNS軟件上面都有全球的根服務(wù)器的地址),根域會將自己子域.com的IP地址給liansir自動獲取的DNS, 于是此DNS又去請求.com,并說我要找www.tjdsmy.cn,而.com也是非權(quán)威服務(wù)器,于是將其子域qq.com的地址發(fā)送給liansir自動獲取的DNS,從而liansir用戶得到qq.com的地址,并成功訪問www.tjdsmy.cn
而當(dāng)liansir訪問過www.tjdsmy.cn之后,其本地就會有緩存,故而在短期之內(nèi)訪問www.tjdsmy.cn時并不會再去訪問根域。同樣地,那個電信DNS服務(wù)器也會保存相應(yīng)的緩存,從而提高訪問速度。
其實,這個電信DNS?務(wù)器就是一個緩存服務(wù)器。
問題:如果liansir本地有qq.com的子域的DNS, 其如何訪問qq.com? 父域是知道子域的DNS地址的,但子域是不記錄父域的DNS地址的。故而此種情況還是要經(jīng)過根?進(jìn)而查詢的!
遞歸查詢:客戶端向第一個DNS服務(wù)器發(fā)送的請求,最后由此DNS服務(wù)器給客戶端結(jié)果?!柏?fù)責(zé)到底的一種行為” 迭代查詢:根域與各DNS服務(wù)器之間的查詢,“給你一個最好的結(jié)果但不是最終結(jié)果”。
DNS是一種機制,一種協(xié)議,實現(xiàn)這種機制的常用工具為bind, BekerleyInternatName Domain, ISC (www.tjdsmy.cn),目前為使用最廣泛的DNS服務(wù)器軟件。
DNS三步法
DNS的服務(wù)器軟件除了bind之外,還有bind-chroot(bind主目錄禁錮程序,就是將bind程序禁錮在家目錄當(dāng)中,centos 6之后的系統(tǒng)默認(rèn)禁錮在/var/named/目錄下);
DNS的配置文件主要有:
/etc/named.conf, /etc/named.rfc1912.zones: DNS的主配置文件;
/var/named: 該目錄為DNS數(shù)據(jù)庫文件存放的目錄,每一個域文件都存放在這里;
/etc/rc.d/init.d/named: 為DNS服務(wù)的服務(wù)腳本
一臺物理服務(wù)器可同時為多個區(qū)域提供解析,并且該DNS服務(wù)器上必須要有根區(qū)域文件named.ca;rndc(remote name domain controller)服務(wù)可為DNS提供輔助性的管理功能,該服務(wù)監(jiān)聽在主機TCP的953號端口,默認(rèn)與bind安裝在同一主機上,且只能通過127.0.0.1來連接DNS服務(wù)的named進(jìn)?。
安裝bind并啟動named服務(wù)
[root@centos6 ~]#yum -y install bind
關(guān)閉防火墻并設(shè)置為開機不允許啟動
[root@centos6 ~]#iptables -F
[root@centos6 ~]#chkconfig iptables off
[root@centos6 ~]#chkconfig --list iptables
iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@centos6 ~]#
CentOS 7為如下設(shè)置:
~]#systemctl is-enabled firewalld #查看防火墻是否開啟
~]#systemctl disable firewalld
啟動named服務(wù)
[root@centos6 ~]#service named start
Starting named: [ OK ]
Centos 7相關(guān)命令:
[root@centos7-min ~]#systemctl enable named
[root@centos7-min ~]#systemctl disable named
[root@centos7-min ~]#systemctl start named
[root@centos7-min ~]#systemctl status named
創(chuàng)建域(zone)
首先編輯/etc/named.conf文件,本文以添加liansir99.com域為例。
在修改/etc/named.conf文件時,最好先備份:cp -p /etc/named.conf /etc/named.conf.bak
options {
listen-on port 53 { 127.0.0.1; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
allow-query { localhost; };
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};};zone "." IN {
type hint;
file "named.ca";};include "/etc/named.rfc1912.zones";include "/etc/named.root.key";
常見的修改選項:
listen-on port 53 { localhost; }; localhost:相當(dāng)于一個變量,代表本機所有IP
allow-query { localhost; }; 只允許本機查詢
allow-query { any; }; any表示任何主機,也可寫成一個網(wǎng)段
注意:任何服務(wù)程序如果期望其能夠通過網(wǎng)絡(luò)被其它主機訪問,至少應(yīng)該監(jiān)聽在一個能與外部主機通信的IP地址上。
緩存名稱服務(wù)器的配置:監(jiān)聽外部地址即可;
dnssec: 建議關(guān)閉dnssec,設(shè)為no
創(chuàng)建域zone數(shù)據(jù)庫文件
區(qū)域定義:本機能夠為哪些zone進(jìn)行解析,就要定義哪些zone;
zone "ZONE_NAME" IN {};
其中zone的格式為:
zone "ZONE_NAME" IN {type {master|slave|hint|forward};
file "ZONE_NAME.zone";
};
type:
該zone的類型,主要類型有:
hint:根
master:主DNSslave: 從DNSforward: 專用于轉(zhuǎn)發(fā)
創(chuàng)建zone:
[root@centos6 ~]#vim /etc/named.rfc1912.zones
zone "liansir99.com" IN {
type master;
file "liansir99.com.zone";
};
"/etc/named.rfc1912.zones" 47L, 1005C written
創(chuàng)建zone的數(shù)據(jù)庫文件:
[root@centos6 /var/named]#vim liansir99.com.zone
$TTL 86400
@ IN SOA ns1.liansir99.com. admin.liansir99.com. (
2016100401
1H
5M
7D
1D)
@ NS ns1.liansir99.com.
@ MX 10 mail.liansir99.com.
@ NS slave.liansir99.com.
ns1 A 10.1.1.1
slave A 10.1.1.4
www A 10.1.1.2
www A 10.1.1.3
mail A 10.1.1.5
ftp A 10.1.1.4
web CNAME ftp
修改解析庫文件的屬主屬組并重啟DNS服務(wù)
[root@centos6 /var/named]#chown named.named liansir99.com.zone
[root@centos6 /var/named]#chmod 640 liansir99.com.zone
[root@centos6 /var/named]#service named restart
Stopping named: . [ OK ]
Starting named: [ OK ]
[root@centos6 /var/named]#
如果沒有報錯信息,則說明配置正常,若有相關(guān)報錯,則查看系統(tǒng)日志/var/log/messages.
也可進(jìn)行語法檢測:
[root@centos6 ~]#named-checkconf
[root@centos6 /var/named]#named-checkzone "liansir99.com" ./liansir99.com.zone zone
liansir99.com/IN: loaded serial 2016100401
OK
[root@centos6 /var/named]#
測試
[root@centos6 ~]#rndc reload
server reload successful
[root@centos6 ~]#
[root@centos6 ~]#dig www.tjdsmy.cn @10.1.1.1
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> www.tjdsmy.cn @10.1.1.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 27361;;
flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0;;
QUESTION SECTION:
;www.tjdsmy.cn IN A
;; ANSWER SECTION:
www.tjdsmy.cn 86400 IN CNAME websrv.liansir99.com.
;; AUTHORITY SECTION:
liansir99.com. 86400 IN SOA ns1.liansir99.com. admin.liansir99.com. 2016100401 3600 300 604800 86400
;; Query time: 1 msec
;; SERVER: 10.1.1.1#53(10.1.1.1)
;; WHEN: Wed Oct 5 17:16:20 2016
;; MSG SIZE rcvd: 102
[root@centos6 ~]#
查看53端口是否正常開啟:
找一客戶端,修改其/etc/resolv.conf文件,將nameserver指向主DNS10.1.1.1
注:重啟服務(wù)后失效,可在網(wǎng)卡配置文件里面修改
在客戶端上ping
在Windows上添加dns條目:
OK,我們再在DNS服務(wù)端開啟httpd功能:
[root@centos6 ~]#service httpd status
httpd (pid 6499) is running...
[root@centos6 ~]#cat /var/www/html/index.html welcome
liansir99.com [root@centos6 ~]#
在客戶端上links:
[root@rhel5.4 ~]#dig -t A www.tjdsmy.cn @10.1.1.1; <<>> DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5 <<>> -t A www.tjdsmy.cn @10.1.1.1
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31319
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;www.tjdsmy.cn IN A
;; ANSWER SECTION:
www.tjdsmy.cn 86400 IN A 10.1.1.3www.tjdsmy.cn 86400 IN A 10.1.1.2;; AUTHORITY SECTION:
liansir99.com. 86400 IN NS ns1.liansir99.com.
;; ADDITIONAL SECTION:
ns1.liansir99.com. 86400 IN A 10.1.1.1
;; Query time: 12 msec
;; SERVER: 10.1.1.1#53(10.1.1.1)
;; WHEN: Tue Oct 4 21:45:11 2016
;; MSG SIZE rcvd: 101
[root@rhel5.4 ~]#
可看出DNS是用了53號端口進(jìn)行網(wǎng)絡(luò)服務(wù)的,那此處其走的是TCP還是UDP呢?分別屏蔽TCP與UDP53端口,然后dig。
[root@centos6 ~]#iptables -A INPUT -p tcp --dport 53 -j REJECT
[root@centos6 ~]#iptables -F
[root@centos6 ~]#iptables -A INPUT -p udp --dport 53 -j REJECT
此由可知,DNS在一般情況下是用UDP進(jìn)行查詢的,誰叫人家UDP天生快人一步呢!至此,一個極簡風(fēng)格的DNS便配置完成了!步驟其實就不多,首先修改主配置文件/etc/named.con, 然后在主配置文件/etc/named.rfc1912.zones里面添加zone條目,最后在/var/named/目錄下創(chuàng)建相關(guān)zone的解析庫并重啟name即可!
資源記錄RR小結(jié):
資源記錄定義的格式:
語法:name [TTL] IN rr_type value
注意:
(1) TTL可從全局繼承
(2) @可用于引用當(dāng)前區(qū)域的名字
(3) 同一個名字可以通過多條記錄定義多個不同的值;此時DNS服務(wù)器會以輪詢方式
響應(yīng)
(4) 同一個值也可能有多個不同的定義名字;通過多個不同的名字指向同一個值進(jìn)
行定義;此僅表示通過多個不同的名字可以找到同一個主機
[文章來源于網(wǎng)絡(luò)]
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP