DNS域名解析服务配置会不会?
目錄
微信公眾號(hào)【廈門微思網(wǎng)絡(luò)】
一、DNS
1.1 DNS 服務(wù)介紹
DNS(Domain Name System,域名系統(tǒng)),因特網(wǎng)上作為域名和 IP 地址相互映射的一個(gè)分布式數(shù)據(jù)庫(kù),能夠使用戶更方便的訪問(wèn)互聯(lián)網(wǎng),而不用去記住能夠被機(jī)器直接讀取的IP數(shù)串。通過(guò)主機(jī)名,最終得到該主機(jī)名對(duì)應(yīng)的IP地址的過(guò)程叫做域名解析(或主機(jī)名解析)。
-
DNS 協(xié)議運(yùn)行在UDP和TCP之上,使用53號(hào)端口
-
其中在DNS解析查詢時(shí)用到UDP協(xié)議,而在主從傳遞區(qū)域數(shù)據(jù)庫(kù)文件時(shí),用到TCP協(xié)議
1.2 互聯(lián)網(wǎng)域名結(jié)構(gòu)
一般結(jié)構(gòu)
-
主機(jī)名.二級(jí)域名.頂級(jí)域名.根
-
www.wsescape.com.
管理方式
-
Internet?的頂級(jí)域名由 Internet 網(wǎng)絡(luò)協(xié)會(huì)域名注冊(cè)查詢負(fù)責(zé)網(wǎng)絡(luò)地址分配的委員會(huì)進(jìn)行登記和管理
-
它還為 Internet 的每一臺(tái)主機(jī)分配唯一的?IP?地址
1.3 DNS 的功能
每個(gè) IP 地址都可以有一個(gè)主機(jī)名,主機(jī)名由一個(gè)或多個(gè)字符串組成,字符串之間用小數(shù)點(diǎn)隔開(kāi)。有了主機(jī)名,就不要死記硬背每臺(tái) IP 設(shè)備的 IP 地址,只要記住相對(duì)直觀有意義的主機(jī)名就行了。
主機(jī)名到 IP 地址映射的兩種方式
-
靜態(tài)映射
/etc/hosts文件
在每臺(tái)設(shè)備上都有主機(jī)到IP的映射關(guān)系,只供此設(shè)備使用
-
動(dòng)態(tài)映射
/etc/resolv.conf文件
指通過(guò)DNS服務(wù)器配置主機(jī)到IP的映射關(guān)系
#?cat?/etc/hosts
127.0.0.1???localhost?localhost.localdomain?localhost4?localhost4.localdomain4
::1?????????localhost?localhost.localdomain?localhost6?localhost6.localdomain6
#?cat?/etc/resolv.conf
nameserver?172.16.242.2
解析方式 - FQDN(Full Qualified Domain Name)
-
正向 ==> FQDN --> IP
-
反向 ==> IP --> FQDN
-
權(quán)威
-
非權(quán)威
解析順序
-
在解析域名時(shí),首先采用靜態(tài)域名解析的方法,如果靜態(tài)域名解析不成功,再采用動(dòng)態(tài)域名解析的方法
一次完整的查詢請(qǐng)求經(jīng)過(guò)的流程
1.4 技術(shù)實(shí)現(xiàn)
DNS通過(guò)允許一個(gè)名稱服務(wù)器把他的一部分名稱服務(wù),眾所周知的zone,委托給子服務(wù)器而實(shí)現(xiàn)了一種層次結(jié)構(gòu)的名稱空間,成為子域授權(quán)機(jī)制。
-
DNS還提供了一些額外的信息,例如系統(tǒng)別名、聯(lián)系信息以及哪一個(gè)主機(jī)正在充當(dāng)系統(tǒng)組或域的郵件樞紐
-
任何一個(gè)使用IP的計(jì)算機(jī)網(wǎng)絡(luò)可以使用DNS來(lái)實(shí)現(xiàn)他自己的私有名稱系統(tǒng)。
實(shí)現(xiàn) DNS 的軟件
-
BIND
-
DJBDNS
-
MaraDNS
-
Name Server Daemon
-
PowerDNS
-
Dnsmasq
DNS 查詢類型
-
迭代查詢
-
遞歸查詢
1.5 DNS 的類型
-
(1)Primary DNS Server(Master)
一個(gè)域的主服務(wù)器保存著該域的zone配置文件,該域所有的配置、更改都是在該服務(wù)器上進(jìn)行,本篇隨筆要講解的也是如何配置一個(gè)域的主DNS服務(wù)器。
-
(2)Secondary DNS Server(Slave)
域從服務(wù)器一般都是作為冗余負(fù)載使用,一個(gè)域的從服務(wù)器是從該域的主服務(wù)器上抓取zone配置文件,從服務(wù)器不會(huì)進(jìn)行任何信息的更改,zone配置文件的修改只能在主DNS服務(wù)器上進(jìn)行,所有的修改都有主服務(wù)器同步。
-
(3)Caching only Server(Cache)
DNS緩存服務(wù)器不存在任何的zone配置文件,僅僅依靠緩存來(lái)為客戶端提供服務(wù),通常用于負(fù)載均衡及加速訪問(wèn)操作。
-
(4)轉(zhuǎn)發(fā)服務(wù)器
只負(fù)責(zé)轉(zhuǎn)發(fā)功能
注解說(shuō)明:
主 DNS 服務(wù)器
-
維護(hù)所負(fù)責(zé)解析的區(qū)域內(nèi)解析庫(kù)服務(wù)器
-
解析庫(kù)由管理維護(hù),可以是手工也可以是自動(dòng)的
-
通知機(jī)制
-
一旦主 DNS 服務(wù)器解析庫(kù)發(fā)生改變會(huì)立即通知從服務(wù)器
從 DNS 服務(wù)器
-
從主DNS服務(wù)器或其他的從DNS服務(wù)器那里復(fù)制(區(qū)域傳送)一份解析庫(kù)
-
序列號(hào)
來(lái)表示解析庫(kù)的版本號(hào)
前提是,主服務(wù)器解析庫(kù)內(nèi)容發(fā)生改變,其序列遞增
-
刷新時(shí)間
從服務(wù)器從主服務(wù)器請(qǐng)求同步解析庫(kù)的時(shí)間間隔
-
重試時(shí)間
從服務(wù)器從服務(wù)器請(qǐng)求同步解析庫(kù)失敗的時(shí)候,再次嘗試的時(shí)間間隔
-
過(guò)期時(shí)長(zhǎng)
從服務(wù)器始終聯(lián)系不到主服務(wù)器時(shí),多久后放棄從服務(wù)器角度,停止提供服務(wù)
區(qū)域傳送
全量傳送
-
傳送整個(gè)解析庫(kù)
增量傳送
-
傳送解析庫(kù)變化的那部分內(nèi)容
1.6 資源記錄類型
DNS 系統(tǒng)中,常見(jiàn)的資源記錄類型:
-
主機(jī)記錄(A記錄)
FQDN --> IP
A記錄是用于名稱解析的重要記錄,它將特定的主機(jī)名映射到對(duì)應(yīng)主機(jī)的IP地址上
-
指針記錄(PTR記錄)
IP --> FQDN
引導(dǎo)至一個(gè)規(guī)范名稱(Canonical Name),最常用來(lái)運(yùn)行反向DNS查找
-
權(quán)威記錄的起始(SOA記錄)
一個(gè)區(qū)域解析庫(kù)有且僅能有一個(gè)SOA記錄,而必須為解析庫(kù)的第一條記錄
-
名稱服務(wù)器記錄(NS記錄)
專用于標(biāo)明當(dāng)前區(qū)域的DNS服務(wù)器
-
別名記錄(CNAME記錄)
CNAME記錄用于將某個(gè)別名指向到某個(gè)A記錄上,這樣就不需要再為某個(gè)新名字另外創(chuàng)建一條新的A記錄
-
MX 記錄(MX記錄)
引導(dǎo)域名到該域名的郵件傳輸代理(Message Transfer Agents)列表
-
IPv6 主機(jī)記錄(AAAA記錄)
FQDN --> IP
與 A 記錄對(duì)應(yīng),用于將特定的主機(jī)名映射到一個(gè)主機(jī)的IPv6地址。
-
服務(wù)位置記錄(SRV記錄)
用于定義提供特定服務(wù)的服務(wù)器的位置,如主機(jī)hostname,端口port
-
NAPTR 記錄
它提供了正則表達(dá)式方式去映射一個(gè)域名。NAPTR記錄非常著名的一個(gè)應(yīng)用是用于ENUM查詢。
1.7 資源記錄格式
語(yǔ)法
name?[TTL]?IN?rr_type?value
-
(1) TTL如果從全局繼承可以省略,為緩存時(shí)長(zhǎng)
-
(2)IN表示Internet
-
(3)rr_type表示資源記錄類型
-
(4) @可用于引用當(dāng)前區(qū)域的名字
-
(5) 同一個(gè)名字可以通過(guò)多條記錄定義多個(gè)不同的值,此時(shí)DNS服務(wù)器會(huì)以輪詢方式響應(yīng)
-
(6) 同一個(gè)值也可能有多個(gè)不同的定義名字,通過(guò)多個(gè)不同的名字指向同一個(gè)值進(jìn)行定義,此僅表示通過(guò)多個(gè)不同的名字可以找到同一個(gè)主機(jī)而已
SOA
-
name: 當(dāng)前區(qū)域的名字,例如wsescape.com.
-
value: 有多部分組成:
(1) 當(dāng)前區(qū)域的主DNS服務(wù)器的FQDN,也可以使用當(dāng)前區(qū)域的名字
(2) 當(dāng)前區(qū)域管理員的郵箱地址,但地址中不能使用@符號(hào),一般用.替換,例如linuxmail.wsescape.com
(3) 主從服務(wù)協(xié)調(diào)屬性的定義以及否定的答案的統(tǒng)一的TTL
#?86400為TTL值,單位為秒鐘
#?主DNS服務(wù)器地址為ns.wsescape.com.
#?郵箱地址為nsadmin.wsescape.com.
#?第一版為2016052201,標(biāo)識(shí)版本號(hào)
wsescape.com.86400INSOAns.nsadmin.wsescape.com.(
2016052201??;序列號(hào)
2H??????????;刷新時(shí)間,2小時(shí)
10M;重試時(shí)間,10分鐘
1W;過(guò)期時(shí)間,一周
1D;否定答案的TTL值,一天
)
NS
-
name: 當(dāng)前區(qū)域的名字
-
value: 當(dāng)前區(qū)域的某DNS服務(wù)器的名字,例如ns.wsescape.com.
-
注意:
(1) 相鄰的兩個(gè)資源記錄的name相同時(shí),后續(xù)的可省略
(2) 對(duì)NS記錄而言,任何一個(gè)NS記錄后面的服務(wù)器名字,都應(yīng)該在后續(xù)有一個(gè)A記錄
#?一個(gè)區(qū)域可以有多個(gè)NS記錄
#?ns1.wsescape.com.和ns2.wsescape.com.都應(yīng)該在后續(xù)有一個(gè)A記錄
wsescape.com.INNS??ns1.wsescape.com.
wsescape.com.INNS??ns2.wsescape.com.
MX
-
name: 當(dāng)前區(qū)域的名字
-
value: 當(dāng)前區(qū)域的某郵件服務(wù)器(smtp服務(wù)器)的主機(jī)名
(1)一個(gè)區(qū)域內(nèi),MX記錄可以有多個(gè)
(2)但每個(gè)記錄的value之前應(yīng)該有一個(gè)數(shù)字(0-99),表示此服務(wù)器的優(yōu)先級(jí)
(3)數(shù)字越小優(yōu)先級(jí)越高
-
注意
(1) 相鄰的兩個(gè)資源記錄的name相同時(shí),后續(xù)的可省略
(2) 對(duì)MX記錄而言,任何一個(gè)MX記錄后面的服務(wù)器名字,都應(yīng)該在后續(xù)有一個(gè)A記錄
#?mx1.wsescape.com.和mx2.wsescape.com.都應(yīng)該在后續(xù)有一個(gè)A記錄
wsescape.com.IN??MX??10??mx1.wsescape.com.
INMX??20??mx2.wsescape.com.
A
-
name: 某主機(jī)的FQDN,例如www.wsescape.com.
-
value: 主機(jī)名對(duì)應(yīng)主機(jī)的 IP 地址;
-
注意
避免用戶寫錯(cuò)名稱時(shí)給錯(cuò)誤答案,可通過(guò)泛域名解析進(jìn)行解析至某特定地址
#?輪詢
www.wsescape.com.IN??A1.1.1.1
www.wsescape.com.IN??A??1.1.1.2
#?一個(gè)主機(jī)有多個(gè)名稱而已
mx1.wsescape.com.IN????A???1.1.1.3
mx2.wsescape.com.??IN??A???1.1.1.3
#?避免用戶寫錯(cuò)名稱時(shí)給錯(cuò)誤答案,可通過(guò)泛域名解析進(jìn)行解析至某特定地址
*.wsescape.com.IN??A??1.1.1.4
wsescape.com.IN??A???1.1.1.4
AAAA
與 `A` 記錄類似,這是只是表示IPv6地址而已
#?輪詢
www.wsescape.com.IN??AAAA1.1.1.1
www.wsescape.com.IN??AAAA??1.1.1.2
#?一個(gè)主機(jī)有多個(gè)名稱而已
mx1.wsescape.com.IN????AAAA???1.1.1.3
mx2.wsescape.com.??IN??AAAA???1.1.1.3
#?避免用戶寫錯(cuò)名稱時(shí)給錯(cuò)誤答案,可通過(guò)泛域名解析進(jìn)行解析至某特定地址
*.wsescape.com.IN??AAAA??1.1.1.4
wsescape.com.IN??AAAA???1.1.1.4
PTR
-
name: 這里的name表示的是IP地址
-
IP地址有特定格式,把IP地址反過(guò)來(lái)寫,如果是1.2.3.4需要寫作4.3.2.1
-
還有特定后綴in-addr.arpa.,完整寫法為4.3.2.1.in-addra.arpa.
-
value: 這里的value值為FQDN
-
注意
網(wǎng)絡(luò)地址及后綴可省略,主機(jī)地址依然需要反著寫
#?實(shí)例
4.3.2.1.in-addr.arpa.INPTRwww.wsescape.com.
#?如果3.2.1是網(wǎng)絡(luò)地址簡(jiǎn)寫成為
4???IN??PTRwww.wsescape.com.
#?如果2.1是網(wǎng)絡(luò)地址簡(jiǎn)寫成為
4.3??IN??PTRwww.wsescape.com.
CNAME
-
name: 別名的FQDN
-
value: 正工名字的FQDN
web.escapelife.com.IN??CNAME??www.escapelife.com.
1.8 個(gè)人使用
子域授權(quán)就是每個(gè)域的名稱服務(wù)器,都是通過(guò)其上級(jí)名稱服務(wù)器在解析庫(kù)進(jìn)行授權(quán)
類似根域授權(quán)tld
.com.INNS?????ns1.com.
.com.???IN????NSns2.com.
ns1.com.INA???2.2.2.1
ns2.com.??????INA2.2.2.2
這里以wsescape.com為例
#?wsescape.com.?在.com的名稱服務(wù)器上,解析庫(kù)中添加資源記錄
wsescape.com.INNSns1.wsescape.com.
wsescape.com.INNSns2.wsescape.com.
wsescape.com.INNSns3.wsescape.com.
ns1.wsescape.com.INA??3.3.3.1
ns2.wsescape.com.INA??3.3.3.2
ns3.wsescape.com.INA??3.3.3.3
域名注冊(cè)
-
代理商
-
萬(wàn)網(wǎng)
-
新網(wǎng)
-
godaddy
綁定服務(wù)器
-
注冊(cè)完成以后,想自己用專用服務(wù)來(lái)解析?
-
管理后臺(tái),把 NS 記錄指向的服務(wù)器名稱和 A 記錄指向的服務(wù)器地址
二、常用命令
2.1 dig命令
dig用于測(cè)試dns系統(tǒng),因此不會(huì)查詢hosts文件進(jìn)行解析
-
用于詢問(wèn) DNS 域名服務(wù)器的靈活的工具
-
除非被告知請(qǐng)求特定域名服務(wù)器,dig將嘗試 /etc/resolv.conf中列舉的任何服務(wù)器
-
當(dāng)未指定任何命令行參數(shù)或選項(xiàng)時(shí),dig將對(duì).(根)執(zhí)行NS查詢
格式
dig?[-t?type]?name?[@SERVER]?[query?options]
語(yǔ)法
-
類型查詢
dig?-t?NS?wsescape.com?@172.16.242.178
dig?-t?MX?wsescape.com?@172.16.242.178
dig?-t?A?www.baidu.com
-
查詢選項(xiàng)
+[no]trace:跟蹤解析過(guò)程
+[no]recurse:進(jìn)行遞歸解析
測(cè)試反向解析:
dig?-x?IP?@SERVER
dig?-x?172.16.100.11?@172.16.242.178
-
模擬區(qū)域傳送:
dig?-t?axfr?ZONE_NAME?@SERVER
dig?-t?axfr?wsescape.com?@172.16.242.178
2.2 host命令
host命令用于查詢DNS的工具
-
它通過(guò)常轉(zhuǎn)換指定主機(jī)名稱的主機(jī)名稱為 IP 地址
-
當(dāng)不指定參數(shù)時(shí),它顯示host命令的幫助信息
格式
host?[-t?type]?name?[SERVER]
語(yǔ)法
-
-a
等同于-v -t
-
-C
在需要認(rèn)證的域名服務(wù)器上查找 SOA 記錄
-
-l
列出一個(gè)域內(nèi)所有的主機(jī)
-
-i
反向查找
-
-r
不使用遞歸處理
-
-v
運(yùn)行時(shí)顯示詳細(xì)的處理信息
-
-4
用于 IPv4 的查詢
-
-6
用于 IPv6 的查詢
-
-t <類型>
指定類型,包括a、all、mx、ns等
實(shí)例展示
[root@localhost?~]#?host?-t?A?www.wsescape.com?172.16.242.178
Using?domain?server:
Name:?172.16.242.178
Address:?172.16.242.178#53
Aliases:
www.wsescape.com?has?address?172.16.100.11
www.wsescape.com?has?address?172.16.100.12
[root@localhost?~]#?host?-t?A?www.wsescape.com?172.16.242.178
Using?domain?server:
Name:?172.16.242.178
Address:?172.16.242.178#53
Aliases:
www.wsescape.com?has?address?172.16.100.12
www.wsescape.com?has?address?172.16.100.11
[root@localhost?~]#?host?--help
host:?illegal?option?--?-
Usage:?host?[-aCdlriTwv]?[-c?class]?[-N?ndots]?[-t?type]?[-W?time]
????????????[-R?number]?[-m?flag]?hostname?[server]
???????-a?is?equivalent?to?-v?-t?ANY
???????-c?specifies?query?class?for?non-IN?data
???????-C?compares?SOA?records?on?authoritative?nameservers
???????-d?is?equivalent?to?-v
???????-l?lists?all?hosts?in?a?domain,?using?AXFR
???????-i?IP6.INT?reverse?lookups
???????-N?changes?the?number?of?dots?allowed?before?root?lookup?is?done
???????-r?disables?recursive?processing
???????-R?specifies?number?of?retries?for?UDP?packets
???????-s?a?SERVFAIL?response?should?stop?query
???????-t?specifies?the?query?type
???????-T?enables?TCP/IP?mode
???????-v?enables?verbose?output
???????-w?specifies?to?wait?forever?for?a?reply
???????-W?specifies?how?long?to?wait?for?a?reply
???????-4?use?IPv4?query?transport?only
???????-6?use?IPv6?query?transport?only
???????-m?set?memory?debugging?flag?(trace|record|usage)
2.3 nslookup命令
nslookup 命令用于查找域名服務(wù)器的程序,有兩種模式為互交和非互交
格式
nslookup?[-option]?[name?|?-]?[server]
語(yǔ)法
-
非交互模式
-
直接查詢即可
-
交互式模式
nslookup>
server IP:?指明使用哪個(gè)DNS server進(jìn)行查詢;
set?q=RR_TYPE:?指明查詢的資源記錄類型;
NAME:?要查詢的名稱;
實(shí)例展示
[root@localhost?~]#?nslookup
>?server?172.16.242.178
Default?server:?172.16.242.178
Address:?172.16.242.178#53
>?set?q=A
>?www.wsescape.com
Server:172.16.242.178
Address:172.16.242.178#53
Name:www.wsescape.com
Address:?172.16.100.11
Name:www.wsescape.com
Address:?172.16.100.12
>?set?q=NS
>?wsescape.com
Server:172.16.242.178
Address:172.16.242.178#53
wsescape.comnameserver?=?ns2.wsescape.com.
wsescape.comnameserver?=?ns1.wsescape.com.
#?非交互模式查詢
[root@rudder?~]#?nslookup?baidu.com
Server:?????????8.8.8.8
Address:????????8.8.8.8#53
Non-authoritative?answer:
Name:???baidu.com
Address:?123.125.114.144
Name:???baidu.com
Address:?220.181.111.85
Name:???baidu.com
Address:?220.181.111.86
#?非交互模式查詢
[root@rudder?~]#?nslookup
>?www.baidu.com
Server:172.17.0.254
Address:172.17.0.254#53
Non-authoritative?answer:?????#非權(quán)威答案,表明是在緩存中讀取的
www.baidu.comcanonical?name?=?www.a.shifen.com.
Name:www.a.shifen.com
Address:?61.135.169.105???????#返回第一個(gè)IP地址
Name:www.a.shifen.com
Address:?61.135.169.125???????#返回第二個(gè)IP地址
>?server?8.8.8.8??????????????#設(shè)置域名服務(wù)器為?8.8.8.8
Default?server:?8.8.8.8
Address:?8.8.8.8#53
>?www.baidu.com???????????????#再次請(qǐng)求百度的IP地址
Server:8.8.8.8
Address:8.8.8.8#53
Non-authoritative?answer:
www.baidu.comcanonical?name?=?www.a.shifen.com.
Name:www.a.shifen.com
Address:?220.181.111.147??????#不同的DNS獲取的IP地址是不同的。
2.4 rndc命令
rndc客戶端是通過(guò)建立套接字連接服務(wù)端,監(jiān)聽(tīng)在TCP的953端口,來(lái)對(duì)服務(wù)端的named進(jìn)行修改操作,但由于安全考慮,所以rndc的客戶端和服務(wù)端安裝在同一臺(tái)主機(jī)之上。
語(yǔ)法 1
-
-b
source-address 使用 source-address 作為連接服務(wù)器的源地址允許多個(gè)實(shí)例設(shè)置 IPv4 和 IPv6 源地址
-
-c config-file
使用config-file 作為缺省的配置文件/etc/rndc.conf 的替代
-
-k key-file
使用 key-file 作為缺省的密鑰文件/etc/rndc.key 的替代 如果config-file 不存在,/etc/rndc.key 中的密鑰將用于認(rèn)證發(fā)向服務(wù)器的命令
-
-s server server
是與rndc的配置文件中server語(yǔ)句匹配的服務(wù)器的名字或地址 如果命令行沒(méi)有提供服務(wù)器,會(huì)使用rndc配置文件中options語(yǔ)句中的default-server子句所命名的主機(jī)
-
-p port
發(fā)送命令到TCP端口port,以取代BIND 9的缺省控制通道端口 953
-
-V
打開(kāi)冗余日志
-
-y key_id
使用配置文件中的密鑰key_id
語(yǔ)法 2
-
reload
重載主配置文件和區(qū)域解析庫(kù)文件
-
reload zone
重載區(qū)域解析庫(kù)文件
-
refresh zone
安排區(qū)域的立即維護(hù)
-
retransfer zone
手動(dòng)啟動(dòng)區(qū)域傳送過(guò)程,而不管序列號(hào)是否增加
-
notify zone
重新對(duì)區(qū)域傳送發(fā)通知
-
reconfig
重載主配置文件
-
status
將服務(wù)器統(tǒng)計(jì)信息寫入統(tǒng)計(jì)文件中
-
querylog
開(kāi)啟或關(guān)閉查詢?nèi)罩?/p>
建議調(diào)試的時(shí)候開(kāi)啟,否則日志消耗太多性能
-
dumpdb
將高速緩存轉(zhuǎn)儲(chǔ)到轉(zhuǎn)儲(chǔ)文件 (named_dump.db)
-
stop
將暫掛更新保存到主文件并停止服務(wù)器
-
halt
停止服務(wù)器,但不保存暫掛更新
-
trace
將調(diào)試級(jí)別增加一級(jí)
建議調(diào)試的時(shí)候開(kāi)啟,否則日志消耗太多性能
-
trace level
更改調(diào)試級(jí)別
-
notrace
將調(diào)試級(jí)別設(shè)置為0
-
flush
刷新服務(wù)器的所有高速緩存
-
status
顯示服務(wù)器的狀態(tài)
-
restart
重新啟動(dòng)服務(wù)器
實(shí)例展示
#?rndc工具能夠幫助我們輸出系統(tǒng)信息
[root@localhost?~]#?rndc?status
version:?9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6
CPUs?found:?1
worker?threads:?1
number?of?zones:?20
debug?level:?0
xfers?running:?0
xfers?deferred:?0
soa?queries?in?progress:?0
query?logging?is?OFF
recursive?clients:?0/0/1000
tcp?clients:?0/100
server?is?up?and?running
#?rndc不重啟加載區(qū)域文件
[root@localhost?~]#?rndc?reload
三、BIND的安裝配置
DNS服務(wù),程序包名bind,程序名named。
3.1 程序包
只需要安裝bind、bind-libs和bind-utils即可
-
bind
主包
-
bind-libs
依賴的庫(kù)文件,包括 32 位和 64 位
-
bind-utils
提供客戶端工具,例如dig、host、nslookup和nsupdate
-
bind-chroot
建立不要安裝,很容易被入侵
bind-chroot 包的作用是提高安全性,將 DNS 服務(wù)的配置文件/etc/named.conf 等,創(chuàng)建一個(gè)硬鏈接轉(zhuǎn)到/var/named/chroot/etc/ 文件夾下面,而且使用服務(wù)帳號(hào)登錄,不使用root用戶登錄
注意,修改配置文件要修改/etc/下面的,這樣會(huì)自動(dòng)同步到chroot下面的鏈接文件中
bind-sdb
bind-dyndb-ldap
以上這兩種方式,是將解析庫(kù)文件放在不同的數(shù)據(jù)庫(kù)中進(jìn)行存儲(chǔ)
3.2 BIND配置文件
配置文件
-
服務(wù)啟動(dòng)腳本
在CentOS6下
/etc/rc.d/init.d/named
-
主配置文件
/etc/named.conf
/etc/rndc.key
為rndc的秘鑰共享文件,提供認(rèn)證用的
-
rndc是什么?
遠(yuǎn)程名稱控制器
默認(rèn)與bind安裝在同一主機(jī),且只能通過(guò)本地回環(huán)地址127.0.0.1來(lái)連接named進(jìn)程
提供輔助性的管理功能,如查看解析狀態(tài)等
默認(rèn)工作在 953/tcp 端口上
/etc/named.rfc1912.zones
請(qǐng)求注解文檔
-
解析庫(kù)文件
/var/named/ZONE_NAME.ZONE
在/var/named/目錄下存在多個(gè)解析庫(kù)文件
/var/named/named.ca
指向根DNS該文件不需要管理員更改,而是系統(tǒng)自帶
/var/named/named.local
本地子域解析,將localhost反向解析為127.0.0.1
-
注意
(1) 一臺(tái)物理服務(wù)器可同時(shí)為多個(gè)區(qū)域提供解析
(2) 必須要有根區(qū)域文件,在named.ca中包含13根節(jié)點(diǎn)地址,由dig命令生成而來(lái)的
(3) 應(yīng)該有兩個(gè)(如果包括ipv6的,應(yīng)該更多)實(shí)現(xiàn)localhost和本地回環(huán)地址的解析庫(kù)
#??在CentOS6下
[root@localhost?~]#?rpm?-ql?bind?|?less
/etc/NetworkManager/dispatcher.d/13-named
/etc/logrotate.d/named
/etc/named
/etc/named.conf
/etc/named.iscdlv.key
/etc/named.rfc1912.zones
/etc/named.root.key
/etc/portreserve/named
/etc/rc.d/init.d/named
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/usr/lib64/bind
/usr/sbin/arpaname
......
#?@表示當(dāng)前區(qū)域的區(qū)域名稱,在主配置文件/etc/named.conf中定義的
#?TTL的值沒(méi)寫,因?yàn)槎x了宏$TTL?1D,直接繼承
#?rname.invalid.表示管理員的郵箱地址
#?后面的如NS、A等缺省,因?yàn)槔^承前者的
[root@localhost?named]#?cat?/var/named/named.localhost
$TTL?1D
@IN?SOA@?rname.invalid.?(
0;?serial
1D;?refresh
1H;?retry
1W;?expire
3H?);?minimum
NS@
A127.0.0.1
AAAA::1
[root@localhost?named]#?cat?/var/named/named.loopback
$TTL?1D
@IN?SOA@?rname.invalid.?(
0;?serial
1D;?refresh
1H;?retry
1W;?expire
3H?);?minimum
NS@
A127.0.0.1
AAAA::1
PTRlocalhost.
主配置文件
-
全局配置
options {}
-
日志子系統(tǒng)配置
logging {}
-
區(qū)域定義
本機(jī)能夠?yàn)槟男﹝one進(jìn)行解析,就要定義哪些zone
如zone "ZONE_NAME" IN {}
-
注意
任何服務(wù)程序如果期望其能夠通過(guò)網(wǎng)絡(luò)被其它主機(jī)訪問(wèn),至少應(yīng)該監(jiān)聽(tīng)在一個(gè)能與外部主機(jī)通信的IP地址上
[root@localhost?~]#?cat?/etc/named.conf
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?????{?localhost;?};
recursion?yes;
dnssec-enable?yes;
dnssec-validation?yes;
dnssec-lookaside?auto;
/*?Path?to?ISC?DLV?key?*/
bindkeys-file?"/etc/named.iscdlv.key";
managed-keys-directory?"/var/named/dynamic";
};
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";
#?localhost.localdomain就是區(qū)域名稱,也就是@
[root@localhost?~]#?cat?/etc/named.rfc1912.zones
zone?"localhost.localdomain"?IN?{
type?master;
file?"named.localhost";
allow-update?{?none;?};
};
zone?"localhost"?IN?{
type?master;
file?"named.localhost";
allow-update?{?none;?};
};
zone?"1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa"?IN?{
type?master;
file?"named.loopback";
allow-update?{?none;?};
};
zone?"1.0.0.127.in-addr.arpa"?IN?{
type?master;
file?"named.loopback";
allow-update?{?none;?};
};
zone?"0.in-addr.arpa"?IN?{
type?master;
file?"named.empty";
allow-update?{?none;?};
};
3.3 緩存名稱服務(wù)器配置
安裝上bind之后,其實(shí)就算的上是一個(gè)緩存名稱服務(wù)器,只需要進(jìn)行少許的配置即可完成
-
修改listen-on port 53
-
修改allow-query
-
修改recursion
(1)安裝
[root@localhost?~]#yum?install?bind
(2)啟動(dòng)
[root@localhost?~]#?service?named?start
Generating?/etc/rndc.key:??????????????????????????????????[??OK??]
Starting?named:????????????????????????????????????????????[??OK??]
(3)查看
#?為了安全,安裝上bind之后,默認(rèn)只會(huì)監(jiān)聽(tīng)本地,不對(duì)外提供服務(wù)
#?任何服務(wù)程序如果期望其能夠通過(guò)網(wǎng)絡(luò)被其它主機(jī)訪問(wèn),至少應(yīng)該監(jiān)聽(tīng)在一個(gè)能與外部主機(jī)通信的`IP`地址上
#?編輯主配置文件即可
[root@localhost?~]#?ss?-tunlp?|?grep?:53
udp????UNCONN?????0??????0??????????????127.0.0.1:53????????????????????*:*??????users:(("named",39822,512))
udp????UNCONN?????0??????0????????????????????::1:53???????????????????:::*??????users:(("named",39822,513))
tcp????LISTEN?????0??????3????????????????????::1:53???????????????????:::*??????users:(("named",39822,21))
tcp????LISTEN?????0??????3??????????????127.0.0.1:53????????????????????*:*??????users:(("named",39822,20))
(4)修改
#?修改之前先備份一下
#?逗號(hào)之前沒(méi)有內(nèi)容,默認(rèn)為前一個(gè)的名稱,后面為復(fù)制的內(nèi)容
[root@localhost?~]#?cp?/etc/named.conf{,.bak}
[root@localhost?~]#?ll?/etc/named*
-rw-r-----.?1?root?named??984?11月?20?2015?/etc/named.conf
-rw-r-----.?1?root?root???984?6月??20?21:53?/etc/named.conf.bak
#?//表示單行注釋,注釋ipv6
#?/**/表示多行注釋
#?修改的時(shí)候必須以;結(jié)尾且{}的兩端必須有空格,否則為語(yǔ)法錯(cuò)誤
#?directory用來(lái)定義區(qū)域解析庫(kù)文件存放位置
#?建議關(guān)閉dnssec功能
#?將dnssec-enable和dnssec-validation改為no,并注釋key文件即可
#?把能夠以外網(wǎng)進(jìn)行通信的地址寫在listen-on?port?53之后,如果有多個(gè)可以多個(gè)添加,不能省略
#?如果將listen-on?port?53進(jìn)行注釋或者刪除,默認(rèn)是監(jiān)聽(tīng)在所有
#?將allow-query注釋或改為allow-query?{?any;?};
#?是否允許遞歸recursion,必須為yes
[root@localhost?~]#?vim?/etc/named.conf
options?{
????????listen-on?port?53?{?172.16.242.178;?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?????{?localhost;?};
????????recursion?yes;
????????dnssec-enable?no;
????????dnssec-validation?no;
????????/*?Path?to?ISC?DLV?key?*/
//??????bindkeys-file?"/etc/named.iscdlv.key";
//??????managed-keys-directory?"/var/named/dynamic";
};
(5)重啟生效
#?重啟之后才能生效配置
[root@localhost?~]#?service?named?restart
Stopping?named:?.??????????????????????????????????????????[??OK??]
Starting?named:????????????????????????????????????????????[??OK??]
[root@localhost?~]#?ss?-tunlp?|?grep?:53
udp????UNCONN?????0??????0?????????172.16.242.178:53????????????????????*:*??????users:(("named",40086,513))
udp????UNCONN?????0??????0??????????????127.0.0.1:53????????????????????*:*??????users:(("named",40086,512))
udp????UNCONN?????0??????0????????????????????::1:53???????????????????:::*??????users:(("named",40086,514))
tcp????LISTEN?????0??????3????????????????????::1:53???????????????????:::*??????users:(("named",40086,22))
tcp????LISTEN?????0??????3?????????172.16.242.178:53????????????????????*:*??????users:(("named",40086,21))
tcp????LISTEN?????0??????3??????????????127.0.0.1:53????????????????????*:*??????users:(("named",40086,20))
3.4 主 DNS 名稱服務(wù)器配置
主 DNS 名稱服務(wù)器配置就是在緩存DNS服務(wù)器的基礎(chǔ)之上增加zone配置文件就可以了
-
在/etc/named.rfc1912.zones添加zone記錄
-
在/var/named/增加zone文件
(1) 在主配置文件中定義區(qū)域
格式
#?master表示主DNS
#?slave表示從DNS
#?hint表示根
#?forward做轉(zhuǎn)發(fā)
#?file使用的是主配置文件directory定義的路徑
zone?"ZONE_NAME"?IN?{
type?{master|slave|hint|forward};
file?"ZONE_NAME.zone";
};
修改配置
#?在/etc/named.rfc1912.zones文件內(nèi)定義域名
#?named-checkconf用來(lái)檢查語(yǔ)法錯(cuò)誤
[root@localhost?~]#?vim?/etc/named.rfc1912.zones
zone?"wsescape.com"?IN?{
????????type?master;
????????file?"wsescape.com.zone";
};
[root@localhost?~]#?named-checkconf
(2) 定義區(qū)域解析庫(kù)文件
格式
出現(xiàn)的內(nèi)容:
宏定義;
資源記錄;
修改配置
#?這里$TTL用于定義TTL的值,86400為秒,可以使用1D來(lái)代替
#?$ORIGIN用于指定域名詞尾,如ns以及mx都為缺省了
#?named-checkzone
#?兩個(gè)www,在訪問(wèn)的時(shí)候會(huì)進(jìn)行輪詢操作的
#?泛域名解析這里的*,表示無(wú)論用戶輸入什么都不報(bào)錯(cuò)
#?或者寫成*??IN??A??172.16.100.11,因?yàn)镃NAME不能輸入ip地址
[root@localhost?~]#?cd?/var/named/
[root@localhost?named]#?vim?wsescape.com.zone
$TTL?86400
$ORIGIN?wsescape.com.
@????IN????SOA????ns1.wsescape.com.????admin.wsescape.com?(
2016042201
1H
5M
7D
1D?)
?IN????NS????????ns1
?IN????NS????????ns2
?IN????MX?10?????mx1
?IN????MX?20?????mx2
ns1??IN????A172.16.100.11
ns2?IN????A172.16.100.12
mx1?IN????A172.16.100.13
mx2?IN????A172.16.100.14
www?IN????A172.16.100.11
www?IN????A172.16.100.12
ftp?INCNAMEwww
*????IN?CNAME???www
[root@localhost?named]#?named-checkzone?"wsescape.com"?/var/named/wsescape.com.zone
zone?wsescape.com/IN:?loaded?serial?2016042201
OK
更改權(quán)限
#?可以查出進(jìn)程是以named運(yùn)行的
#?其中/etc/named.conf文件的屬主為root,屬組為named
#?為了安全起見(jiàn),對(duì)自己創(chuàng)建的文件進(jìn)行權(quán)限修改
[root@localhost?named]#?ps?-aux?|?grep?named
named?????40086??0.0??1.1?160072?11736??????????Ssl??22:07???0:00?/usr/sbin/named?-u?named
root??????40785??0.0??0.0?103324???864?pts/0????S+???23:19???0:00?grep?named
[root@localhost?named]#?ll?/etc/named.conf
-rw-r-----.?1?root?named?1004?6月??20?22:23?/etc/named.conf
[root@localhost?named]#?id?named
uid=25(named)?gid=25(named)?組=25(named)
[root@localhost?named]#?ll
總用量?32
drwxrwx---.?2?named?named?4096?6月??20?21:45?data
drwxrwx---.?2?named?named?4096?6月??20?21:45?dynamic
-rw-r-----.?1?root??named?3171?1月??11?22:12?named.ca
-rw-r-----.?1?root??named??152?12月?15?2009?named.empty
-rw-r-----.?1?root??named??152?6月??21?2007?named.localhost
-rw-r-----.?1?root??named??168?12月?15?2009?named.loopback
drwxrwx---.?2?named?named?4096?5月??11?07:07?slaves
-rw-r--r--.?1?root??root???408?6月??20?22:53?wsescape.com.zone
[root@localhost?named]#?chmod?640?wsescape.com.zone
[root@localhost?named]#?chown?:named?wsescape.com.zone
[root@localhost?named]#?ll
總用量?32
drwxrwx---.?2?named?named?4096?6月??20?21:45?data
drwxrwx---.?2?named?named?4096?6月??20?21:45?dynamic
-rw-r-----.?1?root??named?3171?1月??11?22:12?named.ca
-rw-r-----.?1?root??named??152?12月?15?2009?named.empty
-rw-r-----.?1?root??named??152?6月??21?2007?named.localhost
-rw-r-----.?1?root??named??168?12月?15?2009?named.loopback
drwxrwx---.?2?named?named?4096?5月??11?07:07?slaves
-rw-r-----.?1?root??named??408?6月??20?22:53?wsescape.com.zone
重啟生效
[root@localhost?~]#?service?named?restart
Stopping?named:?.??????????????????????????????????????????[??OK??]
Starting?named:????????????????????????????????????????????[??OK??]
#?使用dig命令來(lái)幫助我們驗(yàn)證信息
#?因?yàn)橹暗呐渲?#xff0c;這里會(huì)進(jìn)行輪詢操作
[root@localhost?~]#?dig?-t?A?wsescape.com?@172.16.242.178
3.5 反向區(qū)域
反向解析和正向解析各為獨(dú)立的系統(tǒng),所以可以部署在不同的或者是相同的機(jī)器之上,都是可以
-
一個(gè)區(qū)域只能有一個(gè)主服務(wù)器,無(wú)論是正向還是反向
-
一個(gè)主服務(wù)器可以有多個(gè)從服務(wù)器
根據(jù)配置文件中定義的主機(jī)地址,來(lái)確定網(wǎng)絡(luò)地址
-
如果都為172.16.100內(nèi)的主機(jī),那么網(wǎng)絡(luò)地址就是172.16.100.
-
存在多種地址,如172.16.100.12、172.16.200.121等,那么網(wǎng)絡(luò)地址就是172.16.
-
以此類推
什么是反向區(qū)域
不變的部分用來(lái)當(dāng)做區(qū)域名稱,變化的部分用來(lái)當(dāng)做實(shí)現(xiàn)解析時(shí)候的name
格式
-
區(qū)域名稱:網(wǎng)絡(luò)地址反寫.in-addr.arpa.
-
如172.16.100. ==> 100.16.172.in-addr.arpa.
如何定義反向區(qū)域
(1) 定義區(qū)域
#?file同樣是一個(gè)相對(duì)路徑,/var/named/
#?如果有多個(gè)正向域?qū)?yīng)同一個(gè)網(wǎng)絡(luò)的話,多個(gè)區(qū)域就重名了,所以這里的網(wǎng)絡(luò)地址其實(shí)自己可以隨意定義,如"網(wǎng)絡(luò)地址1.zone"、"網(wǎng)絡(luò)地址2.zone"等
#?如果只有一個(gè)反向區(qū)域的話,就只需要書(shū)寫一個(gè)反向解析庫(kù),就可以"網(wǎng)絡(luò)地址.zone"這樣命名了
zone?"ZONE_NAME"?IN?{
type?{master|slave|forward};
file?"網(wǎng)絡(luò)地址.zone";
};
#?因?yàn)?72.16.242.178和我們的其他服務(wù)器(172.16.100.12/172.16.100.11),所以只能寫成"16.172.in-addr.arpa"和"172.16.zone"
#?最后添加如下內(nèi)容
[root@localhost?~]#?vim?/etc/named.rfc1912.zones
zone?"16.172.in-addr.arpa"?IN?{
type?master;
file?"172.16.zone";
};
(2) 區(qū)域解析庫(kù)文件
-
以PTR記錄為主
-
不需要MX和A以及AAAA記錄
#?$TTL表示宏定義的TTL值
#?$ORIGIN這里表示反向區(qū)域的名稱
#?反向的主機(jī)名稱不能省略
#?這里的11和12會(huì)自動(dòng)補(bǔ)充上16.172.in-addr.arpa.
#?別名記錄不用反解,所以ftp沒(méi)有書(shū)寫反向解析
#?這里可以使用vim?-o?wsescape.com.zone?16.172.zone來(lái)同時(shí)編輯兩個(gè)文件的
[root@localhost?~]#?cd?/var/named/
[root@localhost?named]#?vim?100.16.zone
$TTL?86400
$ORIGIN?16.172.in-addr.arpa.
@IN??SOAns1.wsescape.com.?admin.wsescape.com.?(
??2016042201
??1H
??5M
??7D
??1D?)
IN??NSns1.wsescape.com.
IN????NSns2.wsescape.com.
11.100IN??PTRns1.wsescape.com.
11.100IN??PTRwww.wsescape.com.
12.100IN??PTRmx1.wsescape.com.
12.100IN??PTRwww.wsescape.com.
13.100IN??PTRmx2.wsescape.com.
#?反向解析如果沒(méi)有$ORIGIN的情況下,也可以這樣寫
[root@localhost?named]#?vim?100.16.zone
$TTL?86400
@IN??SOAns1.wsescape.com.?admin.wsescape.com.?(
??2016042201
??1H
??5M
??7D
??1D?)
16.172.in-addr.arpa.IN??NSns1.wsescape.com.
IN????NSns2.wsescape.com.
11.100IN??PTRns1.wsescape.com.
11.100IN??PTRwww.wsescape.com.
12.100IN??PTRmx1.wsescape.com.
12.100IN??PTRwww.wsescape.com.
13.100IN??PTRmx2.wsescape.com.
(3) 修改權(quán)限并重啟
[root@localhost?named]#?chmod?640?16.172.zone
[root@localhost?named]#?chmod?:named?16.172.zone
#?語(yǔ)法
[root@localhost?named]#?named-checkconf
[root@localhost?named]#?named-checkzone?"16.172.inaddr-addr"?16.172.zone
ok
[root@localhost?named]#?service?named?reload
#?檢測(cè)
[root@localhost?named]#?host?-t?PRT?172.16.100.12?172.16.242.178
[root@localhost?named]#?dig?-x?172.16.100.12?@172.16.242.178
3.6 從 DNS 名稱服務(wù)器配置
定義從 DNS 服務(wù)器就是在緩存服務(wù)器的基礎(chǔ)上,進(jìn)行修改配置
-
在/etc/named.rfc1912.zones添加zone記錄
主從復(fù)制
(1)應(yīng)該為一臺(tái)獨(dú)立的名稱服務(wù)器
(2)主服務(wù)器的區(qū)域解析庫(kù)文件中必須有一條 NS 記錄是指向從服務(wù)器
(3)從服務(wù)器只需要定義區(qū)域,而無(wú)須提供解析庫(kù)文件;解析庫(kù)文件應(yīng)該放置于/var/named/slaves/目錄中
(4)主服務(wù)器得允許從服務(wù)器作區(qū)域傳送
(5)主從服務(wù)器時(shí)間應(yīng)該同步,可通過(guò)ntp進(jìn)行
(6)bind程序的版本應(yīng)該保持一致;否則,應(yīng)該從高逐低
定義從區(qū)域的方法
-
正向從服務(wù)器格式
#?從服務(wù)器同步主服務(wù)器的解析文件會(huì)放在/var/named/slaves/中
zone?"ZONE_NAME"?IN?{
type?slave;
masters?{?MASTER_IP;?};
file?"slaves/ZONE_NAME.zone";
};
-
反向從服務(wù)器格式
#?從服務(wù)器同步主服務(wù)器的解析文件會(huì)放在/var/named/slaves/中
zone?"Reverse_Net_Addr.in-addr.arpa"?IN?{
type?master;
file?"SOMEFILE.zone";
};
-
(1)正向從服務(wù)器的實(shí)例
#?注意這里的從DNS服務(wù)器,需要在主DNS服務(wù)器中定義上NS記錄
#?這樣才能在主DNS的解析庫(kù)發(fā)生改變的時(shí)候通知從DNS服務(wù)器進(jìn)行同步,否則不會(huì)同步的
[root@localhost?~]#?vim?/etc/named.rfc1912.zones
zone?"wsescape.com"?IN?{
type?slave;
masters?{?172.16.242.178;?};
file?"slaves/wsescape.com.zone";
};
#?重起服務(wù)即可成效
[root@localhost?~]#?rndc?reload
#?可以通過(guò)log進(jìn)行查看
[root@localhost?~]#?tail?/var/log/messages
-
(2)反向從服務(wù)器的實(shí)例
#?注意這里的從DNS服務(wù)器,需要在主DNS服務(wù)器中定義上NS記錄
#?這樣才能在主DNS的解析庫(kù)發(fā)生改變的時(shí)候通知從DNS服務(wù)器進(jìn)行同步,否則不會(huì)同步的
[root@localhost?~]#?vim?/etc/named.rfc1912.zones
zone?"16.172.in-addr.arpa"?IN?{
type?slave;
masters?{?172.16.242.178;?};
file?"slaves/172.16.zone";
};
#?重起服務(wù)即可成效
[root@localhost?~]#?rndc?reload
#?可以通過(guò)log進(jìn)行查看
[root@localhost?~]#?tail?/var/log/messages
四、高級(jí)功能之子域授權(quán)
4.1 子域授權(quán)的特點(diǎn)
子域授權(quán)其實(shí)就是在你有域名的情況下,進(jìn)行細(xì)分的狀況。比如說(shuō),你注冊(cè)了wsescap.com這個(gè)域名,由于業(yè)務(wù)關(guān)系等,你需要分開(kāi)為ops部門和fin部門,分別使用自己的DNS服務(wù)器,這個(gè)時(shí)候你就需要進(jìn)行子域授權(quán)了。
特點(diǎn)
-
分布式數(shù)據(jù)庫(kù)
-
正向解析區(qū)域的子域授權(quán)比較常見(jiàn),而反向的相對(duì)來(lái)說(shuō)比較難做
4.2 子域授權(quán)的方法
正向解析區(qū)域子域方法
#?定義一個(gè)子區(qū)域
#?在/var/named/下的指定文件中進(jìn)行配置,如這里的/var/named/wsescape.com.zone
#?在我們授權(quán)了wsescape.com的前提下,定義兩個(gè)子域,分別為ops和fin兩個(gè)
ops.wsescape.com.INNSns1.ops.wsescape.com.
ops.wsescape.com.INNSns2.ops.wsescape.com.
ns1.ops.wsescape.com.INA1.1.1.1
ns2.ops.wsescape.com.INA1.1.1.2
fin.wsescape.com.INNSns1.fin.wsescape.com.
fin.wsescape.com.INNSns2.fin.wsescape.com.
ns1.fin.wsescape.com.INA3.1.1.1
ns2.fin.wsescape.com.INA3.1.1.2
4.3 解析方式
前提:如果在wsescape.com下,定義了一個(gè)子域?yàn)閛ps,并在ops下創(chuàng)建了一個(gè)www的服務(wù)。
外部解析
(1)當(dāng)www.test.org中的一臺(tái)主機(jī)需要訪問(wèn)ops下的www主機(jī)時(shí),就需要進(jìn)過(guò)以下幾個(gè)階段:
-
先找根(.),根說(shuō)你去找com
-
再找com,com說(shuō)你去找wsescape
-
再找wsescape,wsescape說(shuō)你去找ops
-
最后ops返回需要的信息
內(nèi)部解析
(1)當(dāng)wsescape.com下的一臺(tái)主機(jī)需要訪問(wèn)ops下的www主機(jī)時(shí),雖然wsescape.com的DNS主機(jī)不給于解析,但是它知道子域的位置,所以會(huì)立即指向ops的DNS服務(wù)器。
(2)當(dāng)ops下的一臺(tái)主機(jī)需要訪問(wèn)wsescape.com下的www主機(jī)時(shí),就需要進(jìn)過(guò)以下幾個(gè)階段:
-
先找ops,ops說(shuō)你找根
-
再找根(.),根說(shuō)你去找com
-
再找com,com說(shuō)你去找wsescape
-
最后wsescape返回需要的信息
我們會(huì)發(fā)現(xiàn)這個(gè)饒了一大圈,為了避免這樣的問(wèn)題,就需要定義轉(zhuǎn)發(fā)服務(wù)器。
4.4 定義轉(zhuǎn)發(fā)服務(wù)器
注意
(1)關(guān)閉dnssec功能
dnssec-enable no
dnssec-validation no
(2)被轉(zhuǎn)發(fā)的服務(wù)器需要能夠?yàn)檎?qǐng)求者做遞歸,否則轉(zhuǎn)發(fā)請(qǐng)求不予進(jìn)行
(3)即定義了全局轉(zhuǎn)發(fā)又定義了區(qū)域轉(zhuǎn)發(fā),優(yōu)先級(jí)為能夠精確匹配到的先通過(guò)區(qū)域轉(zhuǎn)發(fā),不能再通過(guò)全局轉(zhuǎn)發(fā)
轉(zhuǎn)發(fā)模式
(1) 全局轉(zhuǎn)發(fā)
凡是對(duì)非本機(jī)所有負(fù)責(zé)解析的區(qū)域的請(qǐng)求,統(tǒng)統(tǒng)轉(zhuǎn)發(fā)給指定的服務(wù)器
#?forward定義轉(zhuǎn)發(fā)模式
#?first表示先轉(zhuǎn)發(fā)給指定解析服務(wù)器,如無(wú)響應(yīng)的話再找根服務(wù)器,即先遞歸在迭代
# only表示轉(zhuǎn)發(fā)給指定解析服務(wù)器,僅僅遞歸
#?fowwarders定義轉(zhuǎn)發(fā)給誰(shuí)
Options?{
forward?{?first|only?};
forwarders;
}
(2) 區(qū)域轉(zhuǎn)發(fā)
僅轉(zhuǎn)發(fā)對(duì)特定的區(qū)域的請(qǐng)求至某服務(wù)器
需要自己定義區(qū)域和區(qū)域類型等信息
#?forward定義轉(zhuǎn)發(fā)模式
#?first表示先轉(zhuǎn)發(fā)給指定解析服務(wù)器,如無(wú)響應(yīng)的話再找根服務(wù)器,即先遞歸在迭代
# only表示轉(zhuǎn)發(fā)給指定解析服務(wù)器,僅僅遞歸
#?fowwarders定義轉(zhuǎn)發(fā)給誰(shuí)
zone?"ZONE_NAME"?IN?{
type?forward;
forward?{?first|only?};
forwarders;
}
4.5 子域父域配置
前提:
-
父域IP地址 ==> 172.16.100.11
-
子域IP地址 ==> 172.16.100.12
-
能訪問(wèn)互聯(lián)網(wǎng)的IP地址 ==> 172.16.0.1
(1)父域服務(wù)器配置
#?一臺(tái)獨(dú)立的主機(jī),這里配置父域就是在主服務(wù)器配置的基礎(chǔ)上,添加子域而已
#?注釋的話,默認(rèn)監(jiān)聽(tīng)所有
#?如果發(fā)現(xiàn)測(cè)試無(wú)法成功,查看/etc/named.conf中的dnssec改為no而非注釋掉,否則導(dǎo)致本地客戶端不接受
[root@localhost?~]#?yum?installl?-y?bind
[root@localhost?~]#?vim?/etc/named.conf
options?{
//??????listen-on?port?53?{?172.16.242.178;?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?????{?localhost;?};
????????recursion?yes;
????????dnssec-enable?no;
????????dnssec-validation?no;
????????/*?Path?to?ISC?DLV?key?*/
//??????bindkeys-file?"/etc/named.iscdlv.key";
//??????managed-keys-directory?"/var/named/dynamic";
};
[root@localhost?~]#?service?named?start
[root@localhost?~]#?ss?-tunl?|?grep?:53
udp????UNCONN?????0??????0??????????????127.0.0.1:53????????????????????*:*
udp????UNCONN?????0??????0????????????????????::1:53???????????????????:::*
tcp????LISTEN?????0??????3????????????????????::1:53???????????????????:::*
tcp????LISTEN?????0??????3??????????????127.0.0.1:53????????????????????*:*
[root@localhost?~]#?vim?/etc/named.rfc1912.zones
zone?"wsescape.com"?IN?{
type?master;
file?"wsescape.com.zone";
};
#?ops、ns2.ops和ns1.ops都會(huì)自動(dòng)補(bǔ)全wsescape.com.
#?這里沒(méi)有定義ns2.ops的A記錄,是因?yàn)閚s2.ops我們沒(méi)有配置主機(jī)
#?如果父域需要查找子域的時(shí)候,可能會(huì)跑到我們這個(gè)沒(méi)有配置的機(jī)器上,導(dǎo)致服務(wù)解析,所以這就是沒(méi)有定義的原因
[root@localhost?~]#?vim?/var/named/wsescape.com.zone
$TTL?1D
$ORIGIN?wsescape.com.
@????IN????SOA????ns1.wsescape.com.????admin.wsescape.com?(
??2016042201
??1H
??5M
??7D
??1D?)
???IN????NS???ns1
???IN????NS???ns2
ns1????IN????A????172.16.100.11
ns2????IN????A????172.16.100.18
www????IN?A????172.16.100.11
*??????IN????A????172.16.100.11
ops????IN????NS???ns1.ops
ops????IN????NS???ns2.ops
ns1.ops????IN????A????172.16.100.12
[root@localhost?~]#?cd?/var/named/
[root@localhost?named]#?chown?:named?wsescape.com.zone
[root@localhost?named]#?chmod?640?wsescape.com.zone
[root@localhost?~]#?rndc?reload
server?reload?successful
[root@localhost?~]#?tail?/var/log/messages
(2)子域服務(wù)器配置
#?配置子域服務(wù)器,即一臺(tái)獨(dú)立的主機(jī),和父域配置沒(méi)什么大的差別
#?注釋的話,默認(rèn)監(jiān)聽(tīng)所有
#?如果發(fā)現(xiàn)測(cè)試無(wú)法成功,查看/etc/named.conf中的dnssec改為no而非注釋掉,否則導(dǎo)致本地客戶端不接受
[root@localhost?~]#?yum?installl?-y?bind
[root@localhost?~]#?vim?/etc/named.conf
options?{
//??????listen-on?port?53?{?172.16.242.178;?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?????{?localhost;?};
????????recursion?yes;
????????dnssec-enable?no;
????????dnssec-validation?no;
????????/*?Path?to?ISC?DLV?key?*/
//??????bindkeys-file?"/etc/named.iscdlv.key";
//??????managed-keys-directory?"/var/named/dynamic";
};
[root@localhost?~]#?service?named?start
[root@localhost?~]#?ss?-tunl?|?grep?:53
udp????UNCONN?????0??????0??????????????127.0.0.1:53????????????????????*:*
udp????UNCONN?????0??????0????????????????????::1:53???????????????????:::*
tcp????LISTEN?????0??????3????????????????????::1:53???????????????????:::*
tcp????LISTEN?????0??????3??????????????127.0.0.1:53????????????????????*:*
[root@localhost?~]#?vim?/etc/named.rfc1912.zones
zone?"ops.wsescape.com"??IN?{
type?master;
file?"ops.wsescape.com.zone";
};
#?ns1和ns2都會(huì)自動(dòng)補(bǔ)全ops.wsescape.com.
#?這里也省略了ns2的定義,因?yàn)闆](méi)有這里機(jī)器,如果父域需要查找子域的時(shí)候
#?可能會(huì)跑到我們這個(gè)沒(méi)有配置的機(jī)器上,導(dǎo)致服務(wù)解析,所以這就是沒(méi)有定義的原因
[root@localhost?~]#?vim?/var/named/ops.wsescape.com.zone
$TTL?1D
$ORIGIN?ops.wsescape.com.
@????IN????SOA????ns1.ops.wsescape.com.????admin.ops.wsescape.com?(
??2016042201
??1H
??5M
??7D
??1D?)
???IN????NS???ns1
???IN????NS???ns2
ns1????IN????A????172.16.100.12
www????IN?A????172.16.100.20
*??????IN????A????172.16.100.20
[root@localhost?~]#?cd?/var/named/
[root@localhost?named]#?chown?:named?wsescape.com.zone
[root@localhost?named]#?chmod?640?wsescape.com.zone
[root@localhost?~]#?rndc?reload
server?reload?successful
[root@localhost?~]#?tail?/var/log/messages
(3)測(cè)試配置
#?當(dāng)這里,我們會(huì)發(fā)現(xiàn)如下問(wèn)題
#?在子域服務(wù)器中,執(zhí)行命令后可以查看ops的信息
#?172.16.100.12為子域服務(wù)器
[root@localhost?~]#?dig?-t?A?www.ops.wsescape.com?@172.16.100.12
#?在子域服務(wù)器中,執(zhí)行命令后在無(wú)網(wǎng)絡(luò)的情況下不能查看父域的信息,在有網(wǎng)的情況下會(huì)根據(jù)根返回的信息來(lái)定位父域信息
[root@localhost?~]#?dig?-t?A?www.wsescape.com?@172.16.100.12
#?在父域服務(wù)器中,執(zhí)行命令后可以查看子域ops的信息
#?這里dig命令默認(rèn)執(zhí)行一個(gè)遞歸操作,所以這里需要加上+norecurse非遞歸即可
#?172.16.100.11為父域服務(wù)器
[root@localhost?~]#?dig?-t?A?ops.wsescape.com?@172.16.100.11?+norecurse
[root@localhost?~]#?dig?-t?A?www.ops.wsescape.com?@172.16.100.11?+norecurse
4.6 定義轉(zhuǎn)發(fā)域
注意
-
如果發(fā)現(xiàn)測(cè)試無(wú)法成功,查看/etc/named.conf中的dnssec改為no而非注釋掉,否則導(dǎo)致本地客戶端不接受
-
如果測(cè)試應(yīng)該為不能解析但是還是解析了,可能需要清空緩存rndc flush
服務(wù)配置
(1)全局轉(zhuǎn)發(fā)
#?在父域中配置
#?全局轉(zhuǎn)發(fā),就是通通轉(zhuǎn)發(fā)給172.16.0.1來(lái)查詢
#?在父域服務(wù)器上編輯/etc/named.conf,在options添加如下信息
#?由于上述的機(jī)器沒(méi)有連接互聯(lián)網(wǎng),所以可以通過(guò)172.16.0.1進(jìn)行解析
[root@localhost?~]#?vim?/etc/named.conf
Options?{
forward?first;
forwarders { 172.16.0.1;?};
}
[root@localhost?~]#?rndc?reload
server?reload?successful
[root@localhost?~]#?tail?/val/log/messages
#?父域中測(cè)試可以
[root@localhost?~]#?dig?-t?A?www.baidu.com?@172.16.100.11
(2)區(qū)域轉(zhuǎn)發(fā)
#?在子域中配置
#?區(qū)域轉(zhuǎn)發(fā),就是將wsescape.com這個(gè)域內(nèi)的查詢轉(zhuǎn)發(fā)給172.16.100.11來(lái)查詢
#?在子域服務(wù)器上編輯/etc/named.rfc1912.zones最后添加一個(gè)zone
[root@localhost?~]#?vim?/etc/named.rfc1912.zones
zone?"wsescape.com"??IN??{
type?forword;
forward?only;
forwarders?{?172.16.100.11;?};
};
[root@localhost?~]#?rndc?reload
server?reload?successful
[root@localhost?~]#?tail?/val/log/messages
#?子域中測(cè)試可以,成功
[root@localhost?~]#?dig?-t?A?www.wsescape.com?@172.16.100.12
(3)測(cè)試配置
#?父域中測(cè)試,成功
[root@localhost?~]#?dig?-t?A?www.ops.wsescape.com?@172.16.100.11
[root@localhost?~]#?dig?-t?A?www.baidu.com?@172.16.100.11
#?子域中測(cè)試,子域知道父域在哪里,成功
#?在子域中還是無(wú)法解析,因?yàn)橹付ㄒ硕x區(qū)域wsescape.com可以解析
#?如果在子域中,即定義了全局轉(zhuǎn)發(fā)有定義了區(qū)域轉(zhuǎn)發(fā),優(yōu)先級(jí)為能夠精確匹配到的先通過(guò)區(qū)域轉(zhuǎn)發(fā),不能再通過(guò)全局轉(zhuǎn)發(fā)
[root@localhost?~]#?dig?-t?A?www.wsescape.com?@172.16.100.12
#?子域解析失敗
[root@localhost?~]#?dig?-t?A?www.baidu.com?@172.16.100.12
五、高級(jí)功能之view視圖
5.1 BIND中基礎(chǔ)的安全相關(guān)的配置
(1)acl機(jī)制
-
把一個(gè)或多個(gè)地址歸并為一個(gè)集合,并通過(guò)一個(gè)統(tǒng)一的名稱調(diào)用
-
只能先定義后使用,其一般定義在配置文件中options的前面
(2)acl格式
#?acl表示關(guān)鍵字,acl_name表示自定義名稱
#?ip表示單個(gè)的IP地址,net表示網(wǎng)絡(luò),意思就是單個(gè)IP和網(wǎng)絡(luò)都可以定義
acl?acl_name?{
ip;
ip;
net/prelen;
};
(3)四個(gè)內(nèi)置的acl
因?yàn)檫@四個(gè)是內(nèi)置的acl,所以在我們自己定義的時(shí)候不能使用這幾個(gè)名稱,否則會(huì)導(dǎo)致誤用發(fā)生。
-
none ==> 沒(méi)有一個(gè)主機(jī)
-
any ==> 任意主機(jī)
-
local ==> 本機(jī)
-
localnet ==> 本機(jī)的IP同掩碼運(yùn)算后得到的網(wǎng)絡(luò)地址
(4)訪問(wèn)控制的指令
以下的這幾個(gè)指令,可以用在/etc/named.conf中表示全局生效,也可以用在/etc/named.rfc1912.zones中,定義在單獨(dú)的zone中表示局部生效。同時(shí),{}內(nèi)可以包含定義的acl或者主機(jī)IP地址,包括內(nèi)置的和我們自己定義的。
-
allow-query {} ==> 允許查詢的主機(jī),即白名單
-
allow-transfer {} ==> 允許區(qū)域傳送的主機(jī),即白名單
-
allow-recursion {} ==> 允許遞歸的主機(jī)
-
allow-update {} ==> 允許更新區(qū)域數(shù)據(jù)庫(kù)中的內(nèi)容,建議設(shè)置為none
(5)演示示例
#?這里我們定義的acl,可以在主配置文件/etc/named.conf中的option中使用,可以在`/etc/named.rfc1912.zones`中使用
#?定義自己的acl
acl?mynet?{
172.16.1.100;
172.16.0.0/16;
}
#?在/etc/named.conf中的option中使用
[root@localhost?~]#?vim?/etc/named.conf
acl?mynet?{
172.16.1.100;
172.16.0.0/16;
}
options?{
//??????listen-on?port?53?{?172.16.242.178;?127.0.0.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?????{?mynet;?};
????????recursion?yes;
????????dnssec-enable?no;
????????dnssec-validation?no;
};
...
#?在`/etc/named.rfc1912.zones`中使用
[root@localhost?~]#?vim?/etc/named.rfc1912.zones
zone?"wsescape.com"??IN?{
type?master;
file?"wsescape.com.zone";
allow-query?{?mynet;?};
};
...
5.2 BIND view
用途:
主要適用于對(duì)于用戶的分類,提高網(wǎng)站訪問(wèn)效率。
-
如按照內(nèi)、外網(wǎng)指定不同訪問(wèn)方式來(lái)訪問(wèn)網(wǎng)站
-
如按照運(yùn)營(yíng)商類型制定不同用戶訪問(wèn)指定的服務(wù)器來(lái)訪問(wèn)網(wǎng)站
-
其實(shí)?BIND view就是實(shí)現(xiàn)分布式緩存,類似于CDN的一致方式
解析過(guò)程
-
當(dāng)一個(gè)用戶請(qǐng)求接收之后,首先判斷用戶的來(lái)源,然后自上而下逐個(gè)與各個(gè)view自己的用戶節(jié)系列表進(jìn)行匹配,最終來(lái)確定view系統(tǒng)解析功能,返回指定的區(qū)域解析庫(kù)文件
-
一般用view1匹配第一個(gè)網(wǎng)絡(luò), 用view2匹配第二個(gè)網(wǎng)絡(luò), 用view3匹配其余網(wǎng)絡(luò),保證不會(huì)有缺漏
(1)視圖
-
一個(gè)bind服務(wù)器可定義多個(gè)view,每個(gè)view中可定義一個(gè)或多個(gè)zone區(qū)域
-
每個(gè)view用來(lái)匹配一組請(qǐng)求的客戶端
-
多個(gè)view內(nèi)可能需要對(duì)同一個(gè)區(qū)域進(jìn)行解析,但使用不同的區(qū)域解析庫(kù)文件
(2)格式
-
view是自上而下,逐一匹配
-
大多數(shù)用在option中的指令,都可以用在view中
view?VIEW_NAME?{
match-clients?{??};
}
(3)注意
(1)一旦啟用了view,所有的zone都只能定義在view中,一個(gè)都不允許例外
(2) 僅有必要在匹配到允許遞歸請(qǐng)求的客戶所在view中定義根區(qū)域
(3)客戶端請(qǐng)求到達(dá)時(shí)是自上而下檢查每個(gè)view所服務(wù)的客戶端列表
(4)實(shí)驗(yàn)演示
-
將來(lái)自172.16網(wǎng)絡(luò)并訪問(wèn)www.wsescape.com的用戶,使用172.16.100.11這個(gè)DNS服務(wù)器來(lái)指定www服務(wù)器的地址
-
將非來(lái)自172.16網(wǎng)絡(luò)并訪問(wèn)www.wsescape.com的用戶,使用公網(wǎng)2.2.2.1這個(gè)DNS服務(wù)器來(lái)指定www服務(wù)器的地址
#?在172.16.100.11的主機(jī)中
#?定義acl并將/etc/named.conf中定義的根zone刪除
[root@localhost?~]#?vim?/etc/named.conf
#?刪除如下根zone
zone??"."??IN??{
type?hint;
file?"named.ca";
};
#?添加acl
acl?mynet??{
172.16.0.0/16;
127.0.0.0/8;
};
#?在172.16.100.11的主機(jī)中
#?將根移到/etc/named.rfc1912.zones中,并將所有的zone包含在view中
#?并添加內(nèi)部訪問(wèn)配置internal
[root@localhost?~]#?vim?/etc/named.rfc1912.zones
#?添加view,限制mynet用戶可以訪問(wèn)并允許遞歸
view??internal??{
match-chlients?{?mynet;?};
allow-recursion?{?mynet;?};
#?添加根
zone??"."??IN??{
type?hint;
file?"named.ca";
};
#?由于之前的設(shè)置,這里是有wsescape.com,并配置了wsescape.com.zone文件
zone??"wsescape.com"??IN??{
type?master;
file?"wsescape.com.zone";
}
...
};
#?在172.16.100.11的主機(jī)中
#?如果我們?cè)?etc/named.conf中增加192.168.0.0/24網(wǎng)絡(luò),就可以在192.168.0.13中可以解析,這里沒(méi)有添加進(jìn)去
[root@localhost?~]#?named-checkconf
[root@localhost?~]#?service?named?restart
#?在172.16.100.11主機(jī)上,成功
[root@localhost?~]#?dig?-t?A?www.wsescape.com?@172.16.100.11
#?如果配置了,在192.168.0.13主機(jī)上,成功
[root@localhost?~]#?dig?-t?A?www.wsescape.com?@172.16.100.11
#?在172.16.100.11的主機(jī)中
#?在/etc/named.rfc1912.zones中,添加外部訪問(wèn)配置
#?這里對(duì)沒(méi)有匹配到的主機(jī),不進(jìn)行遞歸,所以在external就沒(méi)有添加根域
[root@localhost?~]#?vim?/etc/named.rfc1912.zones
view?external?{
match-clents?{?any;?};
zone?"wsescape.com"??IN??{
type?master;
file?"wsescape.com.external";
allow-update?{?none;?};
};
};
[root@localhost?~]#?cd?/var/named/
#?歸檔復(fù)制
[root@localhost?named]#?cp?-a?wsescape.com.zone?wsescape.com.external
#?這里的2.2.2.1表示的是wsescape.com網(wǎng)站的公網(wǎng)DNS服務(wù)器
[root@localhost?named]#?vim?wsescape.com.external
$TTL?1D
$ORIGIN?wsescape.com.
@????IN????SOA????ns1.wsescape.com.????admin.wsescape.com?(
??2016042201
??1H
??5M
??7D
??1D?)
???IN????NS???ns1
???IN????NS???ns2
ns1????IN????A????172.16.100.11
ns2????IN????A????172.16.100.18
www????IN?A????2.2.2.1
*??????IN????A????2.2.2.1
[root@localhost?~]#?service?named?restart
#?在172.16.100.11主機(jī)上,成功來(lái)自172.16.100.11
[root@localhost?~]#?dig?-t?A?www.wsescape.com?@172.16.100.11
#?在192.168.0.13主機(jī)上,成功來(lái)自2.2.2.1
[root@localhost?~]#?dig?-t?A?www.wsescape.com?@172.16.100.1
六、高級(jí)功能之編譯安裝BIND
#?最小化安裝機(jī)器
[root@localhost?~]#?yum??groupinstall?"Development?Tools"?"Server?Platform?Development"
#?去官網(wǎng)isc.org下載安裝包,bind-9.10.1-P1.tar.gz
#?bind9和bind10的區(qū)別很大,而且bind10還在測(cè)試階段
#?創(chuàng)建named用戶和組
#?安裝在同一目錄下/usr/local/bind9,系統(tǒng)文件放在/etc/named/
#?禁用IPv6功能,禁用chroot功能,啟動(dòng)線程多核工作
#?自己手動(dòng)編譯安裝bind可能會(huì)出現(xiàn)的問(wèn)題
#?(1)在/etc/named/沒(méi)有配置文件或者為空,需要自己創(chuàng)建
#?(2)沒(méi)有任何區(qū)域解析庫(kù)文件,即/var/named,所以也沒(méi)有13個(gè)根節(jié)點(diǎn),需要自己創(chuàng)建
#?(3)沒(méi)有rndc的配置文件,需要自己創(chuàng)建
#?(4)沒(méi)有啟動(dòng)腳本,沒(méi)有/etc/init.d/named文件
#?這里由于自定義安裝到了/usr/local/bind9中,所以像dig、host等工具不能直接調(diào)用,需要完整路徑
[root@localhost?~]#?tar?xf?bind-9.10.1-P1.tar.gz
[root@localhost?~]#?cd?bind-9.10.1-P1
[root@localhost?~]#?groupadd?-r?-g?53?named
[root@localhost?~]#?useradd?-r?-u?53?-g?53?named
[root@localhost?~]#?./configure?--prefix=/usr/local/bind9?--sysconfdir=/etc/named/?--disable-ipv6?--disable-chroot?--enable-threads
[root@localhost?~]#?make
[root@localhost?~]#?make?install
#?添加環(huán)境變量,就可以調(diào)用相關(guān)命令
[root@localhost?~]#?vim?/etc/profile.d/named.sh
export?PATH=/usr/local/bind9/bin:/usr/local/bind9/sbin:$PATH
[root@localhost?~]#?.?/etc/profile.d/named.sh
#?導(dǎo)出庫(kù)文件
[root@localhost?~]#?vim?/etc/ld.so.conf.d/named.conf
/usr/loacl/bind9/lib
#?重新載入庫(kù)文件
[root@localhost?~]#?ldconfig?-v
#?如果有頭文件,導(dǎo)出頭文件
[root@localhost?~]#?ln?-sv?/usr/local/bind9/include?/usr/include/named
#?之后就可以使用/usr/include/named來(lái)訪問(wèn)/usr/local/bind9/中的頭文件了
[root@localhost?~]#?ls?/usr/include/named
#?在/usr/local/bind9/下有share的幫助文件,添加MANPATH將其放入man中
[root@localhost?~]#?vim?/etc/man.conf
MANPATH?/usr/local/bind9/share/man
#?添加主配置文件,這里只添加directory就可以了
[root@localhost?~]#?vim?/etc/named/named.conf
option??{
directory?"/var/named"
};
zone??"."??IN??{
type?hint;
file?"named.ca";
};
zone??"localhost"??IN??{
type?master;
file?"localhost.zone";
allow-update?{?none;?};
};
zone??"0.0.127.in-addr.arpa"??IN??{
type?master;
file?"named.local";
allow-update?{?none;?};
};
[root@localhost?~]#?mkdir?/var/named/{named.ca,?localhost.zone,?named.local}
#?使用dig命令來(lái)生成13個(gè)根節(jié)點(diǎn),172.16.0.1為網(wǎng)關(guān)地址,可以幫助我們連接外網(wǎng)的地址,獲取13個(gè)根節(jié)點(diǎn)
[root@localhost?~]#?dig?-t?NS?.?@172.16.0.1?>?/var/named/named.ca
[root@localhost?~]#?vim?/var/named/localhost.zone
$TTL?1D
@????IN????SOA????localhost.????admin.localhost.?(
??2016042201
??1H
??5M
??7D
??1D?)
???IN????NS???localhost.
localhost.????IN????A????172.0.0.1
[root@localhost?~]#?vim?/var/named/named.local
$TTL?1D
@????IN????SOA????localhost.????admin.localhost.?(
??2016042201
??1H
??5M
??7D
??1D?)
???IN????NS???localhost.
1????IN????PRT????localhost.
[root@localhost?~]#?cd?/var/named/
[root@localhost?named]#?chmod?640?./*
[root@localhost?named]#?chown?:named?*
[root@localhost?named]#?chmod?640?/etc/named/named.conf
#?查看幫助文檔
[root@localhost?~]#?man?named
#?啟動(dòng)named服務(wù),調(diào)試
[root@localhost?~]#?named?-u?named?-f?-g?-d?3
#?啟動(dòng)named服務(wù),不調(diào)試
[root@localhost?~]#?named?-u?named
#?查看是否啟動(dòng)
[root@localhost?~]#?ss?-tunl?named?|?grep?:53
#?關(guān)閉named服務(wù)
[root@localhost?~]#?killall?named
#?添加解析區(qū)域
[root@localhost?~]#?vim?/etc/named/named.conf
zone??"wsescape.com"??IN??{
type?master;
file?"wsescape.com.zone";
allow-update?{?none;?};
};
[root@localhost?~]#?vim?/var/named/wsescape.com.zone
$TTL?1D
$ORIGIN?wsescape.com.
@????IN????SOA????ns.wsescape.com.????admin.wsescape.com.?(
??2016042201
??1H
??5M
??7D
??1D?)
???IN????NS???ns
ns?????IN????A????172.16.100.11
www????IN????A????172.16.100.11
[root@localhost?named]#?chmod?640?wsescape.com.zone
[root@localhost?named]#?chown?:named?wsescape.com.zone
#?啟動(dòng)
[root@localhost?named]#?named?-u?named
#?解析正常
[root@localhost?named]#?dig?-t?A?www.wsescape.com?@172.16.100.11
#?當(dāng)我們使用rndc?reload等的時(shí)候,會(huì)提示我們沒(méi)有配置文件
#?想讓rndc可用,使用rndc-confgen來(lái)生成配置文件
#?如果使用rndc-confgen發(fā)生堵塞,可以使用rndc-confgen -r /dev/urandom來(lái)生成隨機(jī)數(shù)
#?用rndc-confgen生成的文件,將#Start和#End之間的配置文件放到/etc/named/rndc.conf中,之后根據(jù)提示將后續(xù)的內(nèi)容放到/etc/named/named.conf中
[root@localhost?~]#?rndc-confgen
#?Start?of?rndc.conf
key?"rndc-key"?{
algorithm?hmac-md5;
secret?"ZeE7NXZTprjARrGN/KRANQ==";
};
options?{
default-key?"rndc-key";
default-server?127.0.0.1;
default-port?953;
};
#?End?of?rndc.conf
#?Use?with?the?following?in?named.conf,?adjusting?the?allow?list?as?needed:
#?key?"rndc-key"?{
#algorithm?hmac-md5;
#secret?"ZeE7NXZTprjARrGN/KRANQ==";
#?};
#
#?controls?{
#inet?127.0.0.1?port?953
#allow?{?127.0.0.1;?}?keys?{?"rndc-key";?};
#?};
#?End?of?named.conf
#?現(xiàn)在rndc?reload可以使用了
[root@localhost?~]#?rndc?reload
#?之后就只需要給提供一個(gè)腳本來(lái)像service一樣,啟動(dòng)和關(guān)閉服務(wù),不難的
#?編譯安裝,在bind-9.10.1-P1源碼目錄下,有一個(gè)contrib目錄
#?其中包含的是第三方貢獻(xiàn)的補(bǔ)充增強(qiáng)bind的功能
#?其中有一個(gè)目錄為scripts包含一些腳本,我們可以參考
#?還有一個(gè)目錄為queryperf來(lái)評(píng)估查詢性能的,做壓測(cè)的,需要編譯安裝才能使用
#?編譯安裝queryperf,只需要在其目錄下執(zhí)行./configure和make即可完成
#?就會(huì)生成一個(gè)queryperf的可執(zhí)行文件,執(zhí)行下列操作就可以直接使用了
[root@localhost?queryperf]#?cp?queryperf?/usr/local/bind9/bin/
#?在測(cè)試的時(shí)候,需要指定一個(gè)測(cè)試的文件,如test
[root@localhost?~]#?vim?test
www.wsescape.com?A
wsescape.com?NS
[root@localhost?~]#?queryperf?-d?test?-s?172.16.100.11
總結(jié)
以上是生活随笔為你收集整理的DNS域名解析服务配置会不会?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Linux命令速查表
- 下一篇: 运维基础(13)日志切割工具 Logro