DNS服務(wù)器所提供的服務(wù)是完成將主機名和轉(zhuǎn)換為IP地址的工作。為什么需要將主機名轉(zhuǎn)換為IP地址的工作呢?這是因為,當(dāng)網(wǎng)絡(luò)上的一臺客戶機訪問某一服務(wù)器上的資源時,用戶在瀏覽器地址欄中輸入的是人類便于識記的主機名和域名。而網(wǎng)絡(luò)上的計算機之間實現(xiàn)連接卻是通過每臺計算機在網(wǎng)絡(luò)中擁有的惟一的IP地址來完成的,這樣就需要在用戶容易記憶的地址和計算機能夠識別的地址之間有一個解析,DNS服務(wù)器便充當(dāng)了地址解析的重要角色。
域名嚴格意義上的稱呼為FQDN(Full Qualified Domain Name)。域名按分類形式大概分為組織域,國家域名,頂級域,二級域等,如下: 組織域:.com, .net, .org, .gov, .edu, .mil 國家域:.iq, .tw, .hk, .jp, .cn 舉個例子:163.com就是一個頂級域名,而www.163.com卻不是頂級域名,他是在163.com 這個域里的一叫做www的主機。 一級域之后還有二級域,三級域,只要我買了一個頂級域,并且我搭建了自己BIND服務(wù)器(或者其他軟件搭建的)注冊到互聯(lián)網(wǎng)中,那么我就可以隨意在前面多加幾個域了(當(dāng)然長度是有限制的。 ####IP與域名轉(zhuǎn)換的機制: IP---->域名;依靠調(diào)用`getipbyhostname`庫來實現(xiàn); IP---->域名;依靠調(diào)用`gethostnamebyip`庫來實現(xiàn); #####DNS解析的大概流程##### 
以用戶訪問“http://www.niefei.com為例; 1)首先用戶客戶端先去查詢自己本機的host文件,如果host文件記載了該域名的IP地址,直接讀取host地址; 2)如果host記錄里不存在,那么去查詢指定DNS服務(wù)器緩存,如果緩存存在,結(jié)果返回,如果不存在,去查找本地的DNS服務(wù)器; 3)先去查找本地DN服務(wù)器,看是否是自己服務(wù)器指定權(quán)威服務(wù)器,如果有結(jié)果,那么就返回;如果權(quán)威服務(wù)器沒有結(jié)果,那么就去查找本地DNS服務(wù)器的緩存,獲取非權(quán)威結(jié)果,有結(jié)果就返回; 4)如果沒有結(jié)果,就要先去查找跟服務(wù)器,即.,跟服務(wù)器查找了沒有結(jié)果,但是會告訴本地DNS服務(wù)器,雖然我不知道,但是我知道com.頂級域可能會知道; 5)本地DNS服務(wù)器就com.頂級域去查找,com.查找后發(fā)現(xiàn),告訴本地DNS服務(wù)器發(fā)現(xiàn),本地并無記錄,但是niefei.com.應(yīng)該會知道; 6)本地DNS服務(wù)器去到com.域之后,發(fā)現(xiàn)有niefei.com,于是獲得結(jié)果,這時候就要現(xiàn)在本地DNS服務(wù)器緩存存取一份,方便再次查詢的時候獲??; 7)同時在本非緩存也存取一份,方便本地再次查詢的時候獲取。 這個過程中,客戶端去跟本地查詢的過程稱之為遞歸查詢;本地服務(wù)器獲取最終域名IP的過程為迭代查詢。 其中 FQDN->IP 反向解析 IP-->FQDN 正向解析 常見的DNS服務(wù)器類型: 1 2 3 4 5 6 7 8 9 10 | 緩存DNS服務(wù)器: 做DNS本地數(shù)據(jù)緩存
轉(zhuǎn)發(fā)服務(wù)器 : 對DNS查詢請求做轉(zhuǎn)發(fā)
主DNS : 維護所負責(zé)解析的域數(shù)據(jù)庫的那臺服務(wù)器;讀寫操作均可進行;
輔助DNS:從主DNS服務(wù)器那里或其它的從DNS服務(wù)器那里“復(fù)制”一份解析庫;但只能進行讀操作;
輔助dns服務(wù)器會定期按照設(shè)置時間去探測主dns上的數(shù)據(jù),依據(jù)以下5種屬性信息設(shè)置
seral number:版本號,定義版本號,主服務(wù)器數(shù)據(jù)庫內(nèi)容發(fā)生變化時,其版本號遞增;
refresh: 刷新時間,從服務(wù)器每多久到主服務(wù)器檢查序列號更新狀況;
retry: 重試時間,從服務(wù)器從主服務(wù)器請求同步解析庫失敗時,再次發(fā)起嘗試請求的時間間隔
expire :從服務(wù)器始終聯(lián)系不到主服務(wù)器時,多久之后放棄從主服務(wù)器同步數(shù)據(jù);停止提供服務(wù)
nagative answer ttl 否定答案的緩存時長
|
一般情況下,主服務(wù)器”通知“從服務(wù)器隨時更新數(shù)據(jù); DOMAIN 域:邏輯概念;理論上一個域里面有多個區(qū)域,而區(qū)域里面有定義了下一級的域。 ZONE 區(qū)域:物理概念;區(qū)域是真正存在的數(shù)據(jù)文件,定義了數(shù)據(jù)文件。 ###那么我們看一下區(qū)域的數(shù)據(jù)庫文件: 主要是資源記錄,Resource Record, 簡稱rr;其中記錄的類型有:A, AAAA, PTR, SOA, NS, CNAME, MX; 
SOA:Start Of Authority,起始授權(quán)記錄; 一個區(qū)域解析庫有且只能有一個SOA記錄,而且必須放在第一條;SOA記錄表明了DNS服務(wù)器之間的關(guān)系。SOA記錄表明了誰是這個區(qū)域的所有者。一個DNS服務(wù)器安裝后,需要創(chuàng)建一個區(qū)域,以后這個區(qū)域的查詢解析,都是通過DNS服務(wù)器來完成的。現(xiàn)在來說一下所有者,我這里所說的所有者,就是誰對這個區(qū)域有修改權(quán)利。常見的DNS服務(wù)器只能創(chuàng)建一個標(biāo)準區(qū)域,然后可以創(chuàng)建很多個輔助區(qū)域。標(biāo)準區(qū)域是可以讀寫修改的。而輔助區(qū)域只能通過標(biāo)準區(qū)域復(fù)制來完成,不能在輔助區(qū)域中進行修改。而創(chuàng)建標(biāo)準區(qū)域的DNS就會有SOA記錄,或者準確說SOA記錄中的主機地址一定是這個標(biāo)準區(qū)域的服務(wù)器IP地址。 NS:Name Service,域名服務(wù)記錄;一個區(qū)域解析庫可以有多個NS記錄;其中一個為主的;即是在DNS服務(wù)器之間,表明誰對某個區(qū)域有解釋權(quán),即權(quán)威DNS。我們來說明NS記錄的作用。比如你先在DNSPOD申請了一個域名ABC.COM。一般情況是DNSPOD的域名服務(wù)器替你來解析如www.niefei.com這樣的主機記錄。如果你想自己架設(shè)一個DNS服務(wù)器,讓這臺服務(wù)器從今往后替代DNSPOD的DNS服務(wù)器解析,那么你就需要在你的DNS上設(shè)置NS記錄,然后將DNSPOD域名管理系統(tǒng)中的NS記錄改成你的DNSIP。這樣以后就是你自己的DNS服務(wù)器負責(zé)提供解析了。 A記錄: Address, 地址記錄,F(xiàn)QDN --> IPv4; AAAA:地址記錄, FQDN --> IPv6; CNAME:Canonical Name,別名記錄; PTR:Pointer,IP --> FQDN MX:Mail eXchanger,郵件交換器; 定義一個資源記錄的格式為: name [TTL] INRR_TYPE value ###以SOA為例,解釋資源記錄的格式: name: 當(dāng)前區(qū)域的名字;例如”niefei.com.”,或者“2.3.4.in-addr.arpa.”; value:有多部分組成 1)當(dāng)前區(qū)域的區(qū)域名稱(也可以使用主DNS服務(wù)器名稱); 2)當(dāng)前區(qū)域管理員的郵箱地址;但地址中不能使用@符號,一般使用點號來替代; 3)(主從服務(wù)協(xié)調(diào)屬性的定義以及否定答案的TTL) 舉例: niefei.com. 3600 IN SOA niefei.com. admin.niefei.com. (
2016010901 ; serial 2H ; refresh
15M ; retry
1W ; expire
1D ; negative answer ttl ) #####NS舉例: name: 當(dāng)前區(qū)域的區(qū)域名稱 value:當(dāng)前區(qū)域的某DNS服務(wù)器的名字,例如ns.magedu.com.; 注意:一個區(qū)域可以有多個ns記錄; 舉例: niefei.com. 3600 IN NS ns1.niefei.com
niefei.com 3600 IN NS ns2.niefei.com
######MX舉例: name: 當(dāng)前區(qū)域的區(qū)域名稱 value:當(dāng)前區(qū)域某郵件交換器的主機名; 注意:MX記錄可以有多個;但每個記錄的value之前應(yīng)該有一個數(shù)字表示其優(yōu)先級; 如:
niefei.com. IN MX 10 mx1.niefei.com niefei.com. IN MX 20 mx2.niefei.com
#### A記錄: name:某FQDN,例如www.magedu.com. value:某IPv4地址; 例如: www.niefei.com.IN A1.1.1.1 www.niefei.com. IN A 2.2.2.2
bbs.niefei.com IN A 3.3.3.3
####AAAA記錄: name:FQDN value: IPv6 ##PTR name:IP地址,有特定格式,IP反過來寫,而且加特定后綴;例如1.2.3.4的記錄應(yīng)該寫為4.3.2.1.in-addr.arpa.; value:FQND 舉例:
4.3.2.1.in-addr.arpa. IN PTR www.niefei.com. ###CNAME name:FQDN格式的別名; value:FQDN格式的正式名字; 例如: fly.niefei.com. IN CNAME bbs.niefei.com 總概: 1)TTL可以從全局繼承; 2)@表示當(dāng)前區(qū)域的名稱; 3)相鄰的兩條記錄其name相同時,后面的可省略; 4)對于正向區(qū)域來說,各MX,NS等類型的記錄的value為FQDN,此FQDN應(yīng)該有一個A記錄; ######### 提供域名解析服務(wù)的服務(wù)器就被稱為DNS服務(wù)器,在centos系統(tǒng)上一般是通過Bind來實現(xiàn),服務(wù)啟動之后默認的進程端都為53端口。如圖所示:
1 2 3 4 5 6 7 8 9 | [root@wangxin ~] # netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID /Program name
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 3191 /named
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3008 /sshd
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 3191 /named
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2177 /master
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 3057 /sshd : root@pts
tcp6 0 0 ::1:53 :::* LISTEN 3191 /named
|
####bind解析###
主配置文件:/etc/named.conf,此文件可使用include包含其他文件,如下圖所示 1 2 3 4 5 6 7 8 9 10 11 12 | options {
listen-on port 53 { 127.0.0.1; };
listen-on-v6 port 53 { ::1; };
directory "/var/named" ;
dump- file "/var/named/data/cache_dump.db" ;
statistics- file "/var/named/data/named_stats.txt" ;
memstatistics- file "/var/named/data/named_mem_stats.txt" ;
allow-query { 172.16.0.0 /16 ; };
.....
include "/etc/named.rfc1912.zones" ;
include "/etc/named.root.key" ;
|
listen-on port:named監(jiān)聽的端口號、IP地址,監(jiān)聽能與外部主機通信的地址; directory:區(qū)域數(shù)據(jù)庫文件的默認存放位置 dump-file:域名緩存數(shù)據(jù)庫文件位置
statisstics:狀態(tài)統(tǒng)計文件位置
zone 定義那些由本機負責(zé)解析的區(qū)域,或轉(zhuǎn)發(fā)的區(qū)域。默認定義了根區(qū)域,根數(shù)據(jù)庫文件在/var/named/named.ca,這個文件定義了全世界根文件服務(wù)器 memstatistics-file:服務(wù)器輸出的內(nèi)存使用統(tǒng)計文件位置 allow-query:允許DNS查詢的客戶端地址,如允許172.16.0.0網(wǎng)段,設(shè)置為“172.16.0.0/16”
recursion:設(shè)置是否允許遞歸查詢 forwarders:設(shè)置轉(zhuǎn)發(fā)服務(wù)器的IP地址,用來列出要用來作為轉(zhuǎn)發(fā)器的服務(wù)器的IP地址,使用轉(zhuǎn)發(fā)器可繞過從根服務(wù)器開始按正常流程檢索的正常過程。 logging:定義bind服務(wù)的日志 channel(通道):日志輸出方式,如syslog、文本文件、標(biāo)準錯誤輸出或/dev/null, default_debug:只有當(dāng)服務(wù)器的debug級別非0時,才產(chǎn)生輸出。這里默認保存在/var/named/data目錄下 file(文件):輸出到文本文件 severity(嚴重性):消息的嚴重性等級 severity按照服務(wù)器當(dāng)前的debug級別記錄日志 include:指定的輔助文件選項:在/etc/named.conf文件中最下面使用include包含了兩個文件。其中,/etc/named.rfc1912.zones文件為輔助區(qū)域文件;/etc/named.root.key文件用來簽名和驗證DNS資源記錄的公共密鑰文件 注意:每個配置語句必須以分號結(jié)尾; 同時:關(guān)閉僅允許本地查詢: //allow-query { localhost; }; ####輔助區(qū)域文件:named.rfc1912.zones named.rfc1912.zones文件保存在/etc/目錄下,DNS服務(wù)的正、反向區(qū)域地址數(shù)據(jù)庫文件在該文件中配置。這兩個文件由一系列語句構(gòu)成,每條語句以分號結(jié)束,語句內(nèi)各關(guān)鍵字或數(shù)據(jù)之間用空白(空格、Tab鍵或換行)分割,并用大括號進行分組。每個語句以一個關(guān)鍵字開始,常用的語句如下:
acl:定義訪問控制表; key:定義驗證信息; server:指定每個服務(wù)器所特有的選項; options:設(shè)置DNS服務(wù)器的全局配置選項和默認值; directory:指定存放區(qū)文件的位置; zone:定義區(qū); masters:定義一個主DNS服務(wù)器列表。 ####解析庫文件
在/var/named/目錄下,一般名字為:ZONE_NAME.zone 綜上所述:
(1) 一臺DNS服務(wù)器可同時為多個區(qū)域提供解析; (2) 必須要有根區(qū)域解析庫文件: named.ca; (3) 還應(yīng)該有兩個區(qū)域解析庫文件:localhost和127.0.0.1的正反向解析庫; 正向:named.localhost 反向:named.loopback ###DNS服務(wù)的管理方式: rndc:remote name domain contoller,端口為953/tcp,但默認監(jiān)聽于127.0.0.1地址,因此僅允許本地使用; bind程序安裝完成之后,默認即可做緩存名稱服務(wù)器使用;如果沒有專門負責(zé)解析的區(qū)域,直接即可啟動服務(wù); 啟動方法: CentOS 6: service named start CentOS 7: systemctl start named.service 檢查配置文件語法錯誤:named-checkconf [/etc/named.conf] #####測試DNS工具 dig, host, nslookup等 dig命令: dig [-t RR_TYPE] name [@SERVER] [query options] 用于測試dns系統(tǒng),因此其不會查詢hosts文件; 查詢選項: +[no]trace:跟蹤解析過程; +[no]recurse:進行遞歸解析; 反向測試:dig -x IP 模擬完全區(qū)域傳送:dig -t axfr DOMAIN [@server] host命令: host [-t RR_TYPE] name SERVER_IP nslookup命令: nslookup [-options] [name] [server] #####配置一個DNS的正向區(qū)域 以niefei.com域為例; 1)定義區(qū)域
在主配置文件中或主配置文件的輔助文件中實現(xiàn);
比如我們編輯/etc/named.rfc1912.zones 1 2 3 4 | zone "niefei.com" IN {
type master;
file "niefei.com.zone" ;
};
|
zone :定義區(qū)域名稱 type:定義格式,有hint,master,slave,forward四種格式;此處定定義為主; file:設(shè)置正向區(qū)域配置的數(shù)據(jù)文件,此處為相對路徑,即在/var/named下,可寫成絕對路徑;
注意:區(qū)域名字即為域名; 2)建立區(qū)域數(shù)據(jù)文件(主要記錄為A或AAAA記錄) 在/var/named目錄下建立區(qū)域數(shù)據(jù)文件; 文件為:/var/named/niefei.com.zone 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | $TTL 3600
$ORIGIN niefei.com.
@ IN SOA ns1.niefei.com. admin.niefei.com. ( // 設(shè)置SOA標(biāo)記、域名、域管理郵箱
2017011001 // 更新序列號,用于標(biāo)記地址數(shù)據(jù)庫的變化
1H // 刷新時間,從域名服務(wù)器更新該地址數(shù)據(jù)庫文件的間隔時間
10M // 重試延時,從域名服務(wù)器更新地址數(shù)據(jù)庫失敗以后,等待多長時間再次嘗試
3D // 失效時間,超過該時間仍無法更新地址數(shù)據(jù)庫,則不再嘗試
1D ) // 設(shè)置無效地址解析記錄(該數(shù)據(jù)庫中不存在的地址)的默認緩存時間
IN NS ns1
IN MX 10 mx1
IN MX 20 mx2
ns1 IN A 172.16.249.70
mx1 IN A 172.16.249.70
mx2 IN A 172.16.41.71
www IN A 172.16.249.70
web IN CNAME www
bbs IN A 172.16.249.70
bbs IN A 172.16.41.71
|
$TTL:設(shè)置有效地址解析記錄的默認緩存時間; $ORIGIN:表示該zone文件用來描述的域(domain)名稱,說明下面的記錄源出何處; MX郵件交換(Mail Exchange)記錄,用于設(shè)置當(dāng)前域的郵件服務(wù)器域名地址; A地址(Address)記錄,用于記錄正向域名解析; CNAME別名(Canoical Name)記錄; 其中,NS、MX記錄行首的@符號可以省略(默認繼承SOA記錄行首的@信息),但是必須保留一個空格或者制表位; 注意如果ns用全名稱,com后面要有. 如果不是全名稱,后面一定不能有. 配置完成之后,要進行權(quán)限即屬組修改:
# chgrp named /var/named/niefei.com.zone # chmod o= /var/named/niefei.com.zone ###檢查語法錯誤: # named-checkzone niefei.com.zone /var/named/niefei.com.zone # named-checkconf ###(3) 讓服務(wù)器重載配置文件和區(qū)域數(shù)據(jù)文件 # rndc reload 或 # systemctl reload named.service ##測試驗證使用dig命令 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | [root@wangxin named] # dig -t A www.niefei.com @172.16.249.70
; <<>> DiG 9.9.4-RedHat-9.9.4-18.el7 <<>> -t A www.niefei.com @172.16.249.70
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id : 31905
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.niefei.com. IN A
;; ANSWER SECTION:
www.niefei.com. 3600 IN A 172.16.249.70
;; AUTHORITY SECTION:
niefei.com. 3600 IN NS ns1.niefei.com.
;; ADDITIONAL SECTION:
ns1.niefei.com. 3600 IN A 172.16.249.70
;; Query time : 0 msec
;; SERVER: 172.16.249.70 #53(172.16.249.70)
;; WHEN: 一 1月 11 10:52:37 CST 2016
;; MSG SIZE rcvd: 93
|
###查看NS 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | [root@wangxin named] # dig -t NS niefei.com @172.16.249.70
; <<>> DiG 9.9.4-RedHat-9.9.4-18.el7 <<>> -t NS niefei.com @172.16.249.70
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id : 47721
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;niefei.com. IN NS
;; ANSWER SECTION:
niefei.com. 3600 IN NS ns1.niefei.com.
;; ADDITIONAL SECTION:
ns1.niefei.com. 3600 IN A 172.16.249.70
;; Query time : 0 msec
;; SERVER: 172.16.249.70 #53(172.16.249.70)
;; WHEN: 一 1月 11 10:54:57 CST 2016
;; MSG SIZE rcvd: 73
|
####配置一個解析反向區(qū)域(主要記錄為PTR) (1) 定義區(qū)域 在主配置文件中或主配置文件輔助配置文件中實現(xiàn); 示例,區(qū)域名稱為41.16.172.in-addr.arpa; 1 2 3 4 | zone "41.16.172.in-addr.arpa" IN {
type master;
file "172.16.41.zone" ;
};
|
############## 區(qū)域數(shù)據(jù)文件172.16.41.zone 1 2 3 4 5 6 7 8 9 10 11 12 13 | $TTL 3600
$ORIGIN 41.16.172. in -addr.arpa.
@ IN SOA ns1.niefei.com. admin.niefie.com. (
2017011003
1H
10M
3D
12H )
IN NS ns1.niefei.com.
3 IN PTR ns1.niefei.com.
3 IN PTR bbs.niefei.com.
71 IN PTR bbs.niefei.com.
3 IN PTR www.niefei.com.
|
###權(quán)限及屬組修改: # chgrp named /var/named/172.16.41.zone # chmod o= /var/named/172.16.41.zone # 檢查語法錯誤: # named-checkzone 41.16.172.in-addr.arpa /var/named/172.16.41.zone # named-checkconf 3) 讓服務(wù)器重載配置文件和區(qū)域數(shù)據(jù)文件 # rndc reload 或 # systemctl reload named.service ################################## 輔助DNS服務(wù)器配置: 注意:從服務(wù)器是區(qū)域級別的概念; 配置一個從區(qū)域: 在從服務(wù)器上: (1) 定義區(qū)域 定義一個從區(qū)域; zone "ZONE_NAME" IN { type slave; file "slaves/ZONE_NAME.zone"; //文件不需要建立,會自動從master同步過來,此文件有寫權(quán)限 masters { MASTER_IP; }; //指定主IP }; 配置文件語法檢查:named-checkconf ###### 1 2 3 4 5 | zone "niefei.com" IN {
type slave;
file "slaves/niefei.com.zone" ;
masters { 172.16.41.3; };
};
|
(2) 重載配置 #rndc reload; #systemctl reload named.service ######## 在主服務(wù)器上 (1) 確保區(qū)域數(shù)據(jù)文件中為每個從服務(wù)配置NS記錄,并且在正向區(qū)域文件需要每個從服務(wù)器的NS記錄的主機名配置一個A記錄,且此A后面的地址為真正的從服務(wù)器的IP地址; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | $TTL 3600
$ORIGIN niefei.com.
@ IN SOA ns1.niefei.com. admin.niefei.com. (
2017011003
1H
10M
3D
1D )
IN NS ns1
IN NS ns2 // 注意添加此記錄
IN MX 10 mx1
IN MX 20 mx2
ns1 IN A 172.16.41.3
ns2 IN A 172.16.41.8 // 此記錄后面注意添加A記錄
mx1 IN A 172.16.41.3
mx2 IN A 172.16.41.3
www IN A 172.16.41.3
web IN CNAME www
bbs IN A 172.16.41.3
bbs IN A 172.16.41.71
|
#####驗證#### 從服務(wù)器上查看狀態(tài): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | [root@wangxin named] # systemctl status named.service
named.service - Berkeley Internet Name Domain (DNS)
Loaded: loaded ( /usr/lib/systemd/system/named .service; disabled)
Active: active (running) since 一 2016-01-11 17:39:15 CST; 9min ago
Process: 5673 ExecStart= /usr/sbin/named -u named $OPTIONS (code=exited, status=0 /SUCCESS )
Process: 5671 ExecStartPre= /usr/sbin/named-checkconf -z /etc/named .conf (code=exited, status=0 /SUCCESS )
Main PID: 5675 (named)
CGroup: /system .slice /named .service
└─5675 /usr/sbin/named -u named
1月 11 17:48:36 wangxin named[5675]: automatic empty zone: 8.B.D.0.1.0.0.2.IP6.ARPA
1月 11 17:48:36 wangxin named[5675]: reloading configuration succeeded
1月 11 17:48:36 wangxin named[5675]: reloading zones succeeded
1月 11 17:48:36 wangxin named[5675]: all zones loaded
1月 11 17:48:36 wangxin named[5675]: running
1月 11 17:48:36 wangxin named[5675]: zone niefei.com /IN : Transfer started.
1月 11 17:48:36 wangxin named[5675]: transfer of 'niefei.com/IN' from 172.16.41.3 #53: connected using 172.16.41.8#43346
1月 11 17:48:36 wangxin named[5675]: zone niefei.com /IN : transferred serial 2017011003
1月 11 17:48:36 wangxin named[5675]: transfer of 'niefei.com/IN' from 172.16.41.3 #53: Transfer completed: 1 messages, 14 records, 320 bytes, 0.002 secs (160000 bytes/sec)
1月 11 17:48:36 wangxin named[5675]: zone niefei.com /IN : sending notifies (serial 2017011003)
|
####去到/var/named/slaves,可以看到同步過來的數(shù)據(jù)庫配置文件 1 2 3 4 5 | [root@wangxin slaves] # pwd
/var/named/slaves
[root@wangxin slaves] # ll
總用量 4
-rw-r--r--. 1 named named 564 1月 11 17:48 niefei.com.zone
|
####使用dig驗證輔助DNS服務(wù)器是否能解析www.niefei.com域名 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | [root@wangxin slaves] # dig -t A www.niefei.com @172.16.41.8
; <<>> DiG 9.9.4-RedHat-9.9.4-18.el7 <<>> -t A www.niefei.com @172.16.41.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id : 19933
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.niefei.com. IN A
;; ANSWER SECTION:
www.niefei.com. 3600 IN A 172.16.41.3
;; AUTHORITY SECTION:
niefei.com. 3600 IN NS ns1.niefei.com.
niefei.com. 3600 IN NS ns2.niefei.com.
;; ADDITIONAL SECTION:
ns1.niefei.com. 3600 IN A 172.16.41.3
ns2.niefei.com. 3600 IN A 172.16.41.8
;; Query time : 0 msec
;; SERVER: 172.16.41.8 #53(172.16.41.8)
;; WHEN: 一 1月 11 17:55:08 CST 2016
;; MSG SIZE rcvd: 127
|
由此可見,解析成功。 ####主DNS新增域名解析 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | $TTL 3600
$ORIGIN niefei.com.
@ IN SOA ns1.niefei.com. admin.niefei.com. (
2017011004 // 序列號注意增加
1H
10M
3D
1D )
IN NS ns1
IN NS ns2
IN MX 10 mx1
IN MX 20 mx2
ns1 IN A 172.16.41.3
ns2 IN A 172.16.41.8
mx1 IN A 172.16.41.3
mx2 IN A 172.16.41.3
www IN A 172.16.41.3
web IN CNAME www
bbs IN A 172.16.41.3
bbs IN A 172.16.41.71
pop3 IN A 172.16.41.72 // 新增解析
|
####主DNS新增域名解析后,reload的結(jié)果 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | [root@wangxin named] # rndc reload
server reload successful
[root@wangxin named] # systemctl status named.service
named.service - Berkeley Internet Name Domain (DNS)
Loaded: loaded ( /usr/lib/systemd/system/named .service; disabled)
Active: active (running) since 一 2016-01-11 17:01:12 CST; 58min ago
Process: 10629 ExecStop= /bin/sh -c /usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TERM $MAINPID (code=exited, status=0 /SUCCESS )
Process: 10775 ExecReload= /bin/sh -c /usr/sbin/rndc reload > /dev/null 2>&1 || /bin/kill -HUP $MAINPID (code=exited, status=0 /SUCCESS )
Process: 10640 ExecStart= /usr/sbin/named -u named $OPTIONS (code=exited, status=0 /SUCCESS )
Process: 10639 ExecStartPre= /usr/sbin/named-checkconf -z /etc/named .conf (code=exited, status=0 /SUCCESS )
Main PID: 10643 (named)
CGroup: /system .slice /named .service
└─10643 /usr/sbin/named -u named
1月 11 17:59:33 wangxin named[10643]: automatic empty zone: B.E.F.IP6.ARPA
1月 11 17:59:33 wangxin named[10643]: automatic empty zone: 8.B.D.0.1.0.0.2.IP6.ARPA
1月 11 17:59:33 wangxin named[10643]: reloading configuration succeeded
1月 11 17:59:33 wangxin named[10643]: reloading zones succeeded
1月 11 17:59:33 wangxin named[10643]: zone niefei.com /IN : loaded serial 2017011004
1月 11 17:59:33 wangxin named[10643]: zone niefei.com /IN : sending notifies (serial 2017011004) // 主發(fā)送通知
1月 11 17:59:33 wangxin named[10643]: all zones loaded
1月 11 17:59:33 wangxin named[10643]: running
1月 11 17:59:33 wangxin named[10643]: client 172.16.41.8 #50455 (niefei.com): transfer of 'niefei.com/IN': AXFR-style IXFR started
1月 11 17:59:33 wangxin named[10643]: client 172.16.41.8 #50455 (niefei.com): transfer of 'niefei.com/IN': AXFR-style IXFR ended
|
從服務(wù)器收到通知,如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | [root@wangxin slaves] # systemctl status named.service
named.service - Berkeley Internet Name Domain (DNS)
Loaded: loaded ( /usr/lib/systemd/system/named .service; disabled)
Active: active (running) since 一 2016-01-11 17:39:15 CST; 22min ago
Process: 5673 ExecStart= /usr/sbin/named -u named $OPTIONS (code=exited, status=0 /SUCCESS )
Process: 5671 ExecStartPre= /usr/sbin/named-checkconf -z /etc/named .conf (code=exited, status=0 /SUCCESS )
Main PID: 5675 (named)
CGroup: /system .slice /named .service
└─5675 /usr/sbin/named -u named
1月 11 17:48:36 wangxin named[5675]: transfer of 'niefei.com/IN' from 172.16.41.3 #53: connected using 172.16.41.8#43346
1月 11 17:48:36 wangxin named[5675]: zone niefei.com /IN : transferred serial 2017011003
1月 11 17:48:36 wangxin named[5675]: transfer of 'niefei.com/IN' from 172.16.41.3 #53: Transfer completed: 1 messages, 14 records, 320 bytes, 0.002 secs (160000 bytes/sec)
1月 11 17:48:36 wangxin named[5675]: zone niefei.com /IN : sending notifies (serial 2017011003)
1月 11 17:59:33 wangxin named[5675]: client 172.16.41.3 #27879: received notify for zone 'niefei.com' //此處收到通知
1月 11 17:59:33 wangxin named[5675]: zone niefei.com /IN : Transfer started.
1月 11 17:59:33 wangxin named[5675]: transfer of 'niefei.com/IN' from 172.16.41.3 #53: connected using 172.16.41.8#50455
1月 11 17:59:33 wangxin named[5675]: zone niefei.com /IN : transferred serial 2017011004
1月 11 17:59:33 wangxin named[5675]: transfer of 'niefei.com/IN' from 172.16.41.3 #53: Transfer completed: 1 messages, 15 records, 341 bytes, 0.002 secs (170500 bytes/sec)
1月 11 17:59:33 wangxin named[5675]: zone niefei.com /IN : sending notifies (serial 2017011004)
|
#####測試輔助DNS是否同步新增的pop3域名 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | [root@wangxin slaves] # dig -t A pop3.niefei.com @172.16.41.8
; <<>> DiG 9.9.4-RedHat-9.9.4-18.el7 <<>> -t A pop3.niefei.com @172.16.41.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id : 20855
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;pop3.niefei.com. IN A
;; ANSWER SECTION:
pop3.niefei.com. 3600 IN A 172.16.41.72
;; AUTHORITY SECTION:
niefei.com. 3600 IN NS ns1.niefei.com.
niefei.com. 3600 IN NS ns2.niefei.com.
;; ADDITIONAL SECTION:
ns1.niefei.com. 3600 IN A 172.16.41.3
ns2.niefei.com. 3600 IN A 172.16.41.8
;; Query time : 1 msec
;; SERVER: 172.16.41.8 #53(172.16.41.8)
;; WHEN: 一 1月 11 18:03:16 CST 2016
;; MSG SIZE rcvd: 128
|
##########反向解析的輔助DNS
從服務(wù)器配置一個從區(qū)域: zone "41.16.172.in-addr.arpa" IN { type slave; file "slaves/172.16.41.zone"; masters { 172.16.41.3; }; }; 主服務(wù)增加一個NS記錄 $TTL 3600 $ORIGIN 41.16.172.in-addr.arpa. @ IN SOA ns1.niefei.com. admin.niefie.com. ( 2017011005 1H 10M 3D 12H ) IN NS ns1.niefei.com. IN NS ns2.niefei.com. 8 IN PTR ns2.niefei.com. 3 IN PTR ns1.niefei.com. 3 IN PTR bbs.niefei.com. 71 IN PTR bbs.niefei.com. 3 IN PTR www.niefei.com. 然后配置文件重置,反向主DNS會通知反向從DNS獲取數(shù)據(jù)。 驗證輔助DNS配置結(jié)果 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | [root@wangxin slaves] # dig -x 172.16.41.3 @172.16.41.8
; <<>> DiG 9.9.4-RedHat-9.9.4-18.el7 <<>> -x 172.16.41.3 @172.16.41.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id : 29758
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;3.41.16.172. in -addr.arpa. IN PTR
;; ANSWER SECTION:
3.41.16.172. in -addr.arpa. 3600 IN PTR www.niefei.com.
3.41.16.172. in -addr.arpa. 3600 IN PTR bbs.niefei.com.
3.41.16.172. in -addr.arpa. 3600 IN PTR ns1.niefei.com.
;; AUTHORITY SECTION:
41.16.172. in -addr.arpa. 3600 IN NS ns1.niefei.com.
41.16.172. in -addr.arpa. 3600 IN NS ns2.niefei.com.
;; ADDITIONAL SECTION:
ns1.niefei.com. 3600 IN A 172.16.41.3
ns2.niefei.com. 3600 IN A 172.16.41.8
;; Query time : 0 msec
;; SERVER: 172.16.41.8 #53(172.16.41.8)
;; WHEN: 一 1月 11 18:13:36 CST 2016
;; MSG SIZE rcvd: 181
|
可以解析,數(shù)據(jù)同步成功。 #### 注意:時間要同步; ######子域授權(quán)#### 正向解析區(qū)域授權(quán)子域的方法: ops.niefei.com. IN NS ns1.ops.magedu.com. ops.niefei.com. IN NS ns2.ops.magedu.com. ns1.ops.niefei.com. IN A IP.AD.DR.ESS ns2.ops.niefei.com. IN A IP.AD.DR.ESS 方法: 1)在主域數(shù)據(jù)庫文件授權(quán); 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | $TTL 3600
$ORIGIN niefei.com.
@ IN SOA ns1.niefei.com. admin.niefei.com. (
2016011007 ;serial
1H ;refresh
30M ;retry
1W ;expire
1D ) ;negative answer ttl
IN NS ns1
IN NS ns2
IN MX 10 mail
ns1 IN A 172.16.41.3
ns2 IN A 172.16.41.8
mail IN A 172.16.41.71
www IN A 172.16.41.3
web IN CNAME www
ops IN NS ns1.ops #定義二級域為ops.niefei.com
ns1.ops IN A 172.16.41.10 #并定義二級域的NS服務(wù)器地址
|
2)子域新裝bind并配置 1 2 3 4 5 6 7 | listen-on port 53 { 172.16.41.10; }; #定義監(jiān)聽端口及IP地址
directory "/var/named" ; #工作目錄
allow-query { 172.16.41.0 /16 ; }; #允許此網(wǎng)段進行查詢請求
allow-recursion { 172.16.0.0 /16 ; }; #允許指定網(wǎng)段的主機進行遞歸查詢
dnssec- enable no; #關(guān)閉dnssec功能選項
dnssec-validation no; #關(guān)閉dnssec功能選項
dnssec-lookaside no; #關(guān)閉dnssec功能選項
|
3)子域創(chuàng)建配置區(qū)域文件;
1 2 3 4 | zone "ops.niefei.com" IN { #定義域名稱為ops.niefei.com.
type master; #服務(wù)器類型為主NS
file "ops.niefei.com.zone" ; #資源配置文件位置
};
|
4)創(chuàng)建子域數(shù)據(jù)文件; 1 2 3 4 5 6 7 8 9 10 | $TTL 3600
$ORIGIN cw.weizhenping.me.
@ IN SOA ns1.ops.niefei.com. admin.ops.niefei.com. (
201701001
1D
30M
1D
1D )
IN NS ns1
ns1 IN A 172.16.41.10
|
5)驗證是否成功 1 | 在主域的主NS服務(wù)器中,使用 dig -t A www.ops.niefei.com ,如果能解析到,說明配置OK。
|
#########定義轉(zhuǎn)發(fā)#### 注意:被轉(zhuǎn)發(fā)的服務(wù)器必須允許為當(dāng)前服務(wù)做遞歸; 分為兩種: (1) 區(qū)域轉(zhuǎn)發(fā):僅轉(zhuǎn)發(fā)對某特定區(qū)域的解析請求;
zone "ZONE_NAME" IN { type forward; forward {first|only}; forwarders { SERVER_IP; }; }; first:首先轉(zhuǎn)發(fā);轉(zhuǎn)發(fā)器不響應(yīng)時,自行去迭代查詢; only:只轉(zhuǎn)發(fā);轉(zhuǎn)發(fā)不成功就只有等待 (2) 全局轉(zhuǎn)發(fā):針對凡本地沒有通過zone定義的區(qū)域查詢請求,通通轉(zhuǎn)給某轉(zhuǎn)發(fā)器; 定義主配置文件: options { ... ... forward {only|first}; forwarders { SERVER_IP; }; .. ... }; ########ACL及視圖的使用: acl:訪問控制列表;把一個或多個地址歸并一個命名的集合,隨后通過此名稱即可對此集全內(nèi)的所有主機實現(xiàn)統(tǒng)一調(diào)用; 格式: acl acl_name { ip; net/prelen; }; 示例: 1 2 3 4 5 6 7 8 9 | acl mynet {
10.189.9.0 /24 ;
127.0.0.1 /8 ;
172.16.0.0 /16 ;
};
options {
directory "/var/named" ;
allow-recursion { mynet; };
};
|
############### bind有四個內(nèi)置的acl: none:沒有一個主機; any:任意主機; local:本機; localnet:本機所在的IP所屬的網(wǎng)絡(luò); ############ 訪問控制指令:
allow-query {}; 允許查詢的主機;白名單; allow-transfer {}; 允許向哪些主機做區(qū)域傳送;默認為向所有主機;應(yīng)該配置僅允許從服務(wù)器; allow-recursion {}; 允許哪此主機向當(dāng)前DNS服務(wù)器發(fā)起遞歸查詢請求; allow-update {}; DDNS,允許進程動態(tài)更新區(qū)域數(shù)據(jù)庫文件中內(nèi)容; 定義某些權(quán)限允許的主機時,需要去主配置文件/etc/named.conf里定義,同時加在options之前;
例如: acl slaves { 172.16.41.8;
172.16.41.10;
}; ######## bind view:視圖: 格式:
view VIEW_NAME { zone zone zone } 針對來源地址的不同的,解析方式的不同 舉例: view internal { match-clients { 172.16.0.0/8; }; //針對內(nèi)網(wǎng) zone "magedu.com" IN { type master; file "magedu.com/internal"; }; }; view external { match-clients { any; }; zone "magecdu.com" IN { type master; file magedu.com/external"; }; }; ######ACL及視圖的配合使用,可實現(xiàn)智能DNS的實現(xiàn): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | root@localhost named] # cat /etc/named.conf
acl telecom {
10.189.9.0 /24 ;
};
#此ACL定義了電信IP的列表
acl unicom {
10.189.8.0 /24 ;
};
#此ACL定義了聯(lián)通IP的列表
options {
directory "/var/named" ;
allow-recursion { localnet; }; #定義了允許遞歸請求的主機為NS所在網(wǎng)絡(luò)的所有主機
allow-query { any; };
};
view telecom {
match-clients { telecom; };
zone "mageedua.com" IN {
type master;
file "telecom.mageedua.com.zone" ;
};
};
view unicom {
match-clients { unicom; };
zone "mageedua.com" IN {
type master;
file "unicom.mageedua.com.zone" ;
};
};
#在named.conf配置文件中,配置view功能,并在視圖區(qū)域定義match-clients 參數(shù),讓match-clients引用acl列表,acl可以為電信IP列表,或者聯(lián)通IP列表。最后在view視圖中定義需要智能DNS的區(qū)域。一般情況,可以將區(qū)域劃分三類: 1、內(nèi)網(wǎng)視圖 2、電信視圖 3、聯(lián)通視圖
[root@localhost named] # cat telecom.mageedua.com.zone
$TTL 86400
@ IN SOA ns1.mageedua.com. admin.mageedua.com. (
2015061101
1D
1H
7D
1D )
IN NS ns1
IN MX 10 mail
ns1 IN A 10.189.9.110
mail IN A 10.189.9.111
www IN A 10.189.9.112 #電信www服務(wù)器為112的地址
[root@localhost named] # cat unicom.mageedua.com.zone
$TTL 86400
@ IN SOA ns1.mageedua.com. admin.mageedua.com. (
2015061101
1D
1H
7D
1D )
IN NS ns1
IN MX 10 mail
ns1 IN A 10.189.9.110
mail IN A 10.189.9.111
www IN A 10.189.9.113 #聯(lián)通www服務(wù)器為113的地址
[root@localhost slaves] # dig -t A www.mageedua.com @10.189.9.110 #電信用戶查詢結(jié)果
; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7_0.1 <<>> -t A www.mageedua.com @10.189.9.110
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id : 58349
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.mageedua.com. IN A
;; ANSWER SECTION:
www.mageedua.com. 86400 IN A 10.189.9.112
;; AUTHORITY SECTION:
mageedua.com. 86400 IN NS ns1.mageedua.com.
;; ADDITIONAL SECTION:
ns1.mageedua.com. 86400 IN A 10.189.9.110
;; Query time : 1 msec
;; SERVER: 10.189.9.110 #53(10.189.9.110)
;; WHEN: 四 6月 11 10:26:21 CST 2015
;; MSG SIZE rcvd: 95
|
|