Linux上DNS实现工具之bind详叙
?一、DNS的描敘及層次結(jié)構(gòu):
1、DNS:domain name service,即域名服務(wù),是把復(fù)雜的IP地址解析成我們易于記憶并理解的域名,以方便在網(wǎng)絡(luò)上通信。
2、DNS的層次:DNS呈金字塔狀結(jié)構(gòu),根域在最頂層,向下依次為一級域、二級域、三級域(或有或無)、主機(jī)名。如下所示:
? ? ? ? ? ? ? ? A、根域:. ,以“.”來標(biāo)識(shí),全世界有13組根域服務(wù)器。
? ? ? ? ? ? ? ? B、一級域:(1)組織域:.com,,.org, .mil, .gov, .edu, .net
? ? ? ? ? ? ? ? ? ? ? ? ? ?(2)國家域:.cn,.hk,.tw,.jp,.ir,.iq,.us,.uk
? ? ? ? ? ? ? ? ? ? ? ? ? ?(3)反向域:.in-addr.arpa
? ? ? ? ? ? ? ? C、二級域:需要向一級域申請和注冊二級域名,如:xybbs.com,hello.net.
? ? ? ? ? ? ? ? D、三級域:可有可無,通常用在父子域關(guān)系中,如:tech.hello.edu.
? ? ? ? ? ? ? ? E、主機(jī):具體的主機(jī),即FQDN,Full Qualified Domain Name,完全合格的域名,如:www.baidu.com
二、linux上的DNS實(shí)現(xiàn)程序工具:
? ?1、實(shí)現(xiàn)工具:BIND(Berkeley Internet NameDomain), PowerDNS, dnsmasq。我們以bind為例來介紹DNS的安裝和使用。
? ?2、使用yum安裝bind程序包以及相應(yīng)的路徑:
? ? ? ?圖1
? ?圖2
三、名稱解釋:
? ? ? ? ? ?1、DNS查詢類型:
? ? ? ? ? ?(1)遞歸查詢:只發(fā)出一次請求就得到最終結(jié)果。只有客戶端主機(jī)才能向DNS服務(wù)器遞歸,且DNS服務(wù)器必須允許客戶端遞歸,即recursion yes,客戶端才能得到結(jié)果。根域是不允許客戶端主機(jī)遞歸的。
? ? ? ? ? ?(2)迭代查詢:經(jīng)過多次查詢才能返回結(jié)果。只有DNS服務(wù)器才能向其他DNS服務(wù)器進(jìn)行多次迭代查詢。
? ? ? ? ? ?2、名稱解析類型:
? ? ? ? ? ? ?(1)正向解析:通過完全合格的域名來解析IP地址。
? ? ? ? ? ? ?(2)反向解析:通過IP地址來解析完全合格的域名。
? ? ? ? ? ?3、資源記錄的類型:
? ? ? ? ? ? ?(1)SOA:Start OfAuthority,起始授權(quán),上級區(qū)域授權(quán)某一區(qū)域來管理的區(qū)域。SOA只能有一個(gè)。
? ? ? ? ? ? ?(2)NS:Name Server,域名服務(wù)器,標(biāo)明某一DNS服務(wù)器所管理的區(qū)域。NS可以有多個(gè),如輔助DNS服務(wù)器的NS記錄,子域的NS記錄。
? ? ? ? ? ? ?(3)MX:MaileXchanger,郵件交換器,標(biāo)明該區(qū)域的郵箱服務(wù)。
? ? ? ? ? ? ?(4)A:internetaddress,地址記錄,通常是正向解析。
? ? ? ? ? ? ?(5)PTR:PoiTeR,指針記錄,通常用于反向解析。
? ? ? ? ? ? ?(6)AAAA:address,IPV6的正向解析記錄。
? ? ? ? ? ?(7)CNAME: Canonical Name,別名記錄。通常用于A記錄的別名。
? ? ? ? ?4、DNS服務(wù)器類型:
? ? ? ? ? ?(1)主DNS服務(wù)器:只能有一個(gè)。
? ? ? ? ? ?(2)輔助DNS服務(wù)器:輔助主DNS服務(wù)器工作,在主DNS服務(wù)器宕機(jī)的時(shí)候能頂替上去,輔助DNS要實(shí)時(shí)從主DNS同步區(qū)域名稱和區(qū)域數(shù)據(jù)庫文件。輔助DNS可以有多個(gè)。
? ? ? ? ? ?(3)緩存名稱服務(wù)器:緩存其它客戶端向DNS服務(wù)器遞歸查詢后,DNS服務(wù)器迭代查詢所緩存的的DNS記錄。
? ? ? ? ? ?(4)轉(zhuǎn)發(fā)DNS服務(wù)器:某一DNS服務(wù)器無法查詢的記錄會(huì)轉(zhuǎn)發(fā)給其它DNS服務(wù)器進(jìn)行查詢,那么前一個(gè)DNS服務(wù)器就是一個(gè)轉(zhuǎn)發(fā)DNS服務(wù)器。
? ? ? ? ?5、區(qū)域傳送:輔助DNS服務(wù)器從主DNS服務(wù)器或其它的輔助DNS服務(wù)器請求傳輸數(shù)據(jù)的過程:
? ? ? ? ? ?(1)完全區(qū)域傳送:傳送區(qū)域的所有數(shù)據(jù),命令為AXFR。
? ? ? ? ? ?(2)增量區(qū)域傳送:傳送區(qū)域中改變的數(shù)據(jù)部分,命令為IXFR。
? ? ? ? ?6、子域授權(quán):父域DNS服務(wù)器授權(quán)子域DNS服務(wù)器所管理的區(qū)域。所以父域DNS服務(wù)器的配置文件中要有:授權(quán)的子區(qū)域名稱、子區(qū)域的名稱服務(wù)器、子區(qū)域的名稱服務(wù)器的IP地址,并且子域要設(shè)置好自己的區(qū)域數(shù)據(jù)文件,并把DNS服務(wù)器指向父域。如:父域?yàn)?#xff1a;yanhai.com.,子域?yàn)?/span>tech.yanhai.com.。
? ? ? ? ?7、轉(zhuǎn)發(fā)機(jī)制:配置好父子域之后,子域會(huì)無法解析父域的資源記錄,或子域想解析其它區(qū)域的資源記錄,那么就得在子域上做好轉(zhuǎn)發(fā),并把地址指向想要解析的區(qū)域。轉(zhuǎn)發(fā)分2種,區(qū)域轉(zhuǎn)發(fā)和全局轉(zhuǎn)發(fā),如果想解析某一或某些區(qū)域,則設(shè)置區(qū)域轉(zhuǎn)發(fā),如果想讓本地客戶端解析所有區(qū)域,則設(shè)置全局轉(zhuǎn)發(fā)。
? ? ? ? ?8、view視圖:通常是讓內(nèi)外網(wǎng)或不同地區(qū)訪問某一網(wǎng)站時(shí),訪問的FQDN都一樣,但解析的IP地址不同。View提高了不同地區(qū)訪問網(wǎng)站的速度。
? ? ? ? ?9、rndc: Remote Name Domain Controller,即遠(yuǎn)程名稱域控制器,是遠(yuǎn)程管理BIND的工具,能夠?qū)崿F(xiàn)重新載入?yún)^(qū)域數(shù)據(jù)文件、重新加載主配置文件等遠(yuǎn)程操作。
四、正向解析、反向解析的實(shí)現(xiàn):
1、配置bind的主配置文件/etc/named.conf:
圖片3
圖4
2、從一級域.com那里申請yanhai.com.的二級域名,并在/etc/named.rfc1912.zones中配置yanhai.com的區(qū)域:
圖片5
圖6
3、正向區(qū)域的區(qū)域數(shù)據(jù)庫文件:
圖7
圖8
說明:
資源記錄的格式:
? ? ? ? ? ? ? ?name ? ?[ttl] ? ?IN ? ? ? RRtype ? ? ? ? ? Value
(1)SOA:只能有一個(gè)
? ? name: 區(qū)域名稱, 通常可以簡寫為@,例如:yanhai.com.
? ? value: 主DNS服務(wù)器的FQDN
? ? 注意:SOA必須是區(qū)域數(shù)據(jù)庫文件第一條記錄
? ? 如:@ ? ?600 ? ? IN ? ? ? ? ?SOA ? ? ? ? ?dns.yanhai.com. ? ? ? admin.yanhai.com.(
? ? serialnumber ;序列號,十進(jìn)制數(shù)字,不能超過10位,通常使用日期,例如2014031301
? ? refreshtime;刷新時(shí)間,即每隔多久到主服務(wù)器檢查一次
? ? retrytime;重試時(shí)間,應(yīng)該小于refresh time
? ? expiretime;過期時(shí)間
? ? negativeanswer ttl;否定答案的ttl
(2) NS:可以有多條
? ?name: 區(qū)域名稱,通常可以簡寫為@
? ?value: DNS服務(wù)器的FQDN(可以使用相對名稱)
? ?如:@ ? ? ? ? ?600 ? ? ?IN ? ? ?NS ? ? ? ? ? dns
?(3)A:只能定義在正向區(qū)域數(shù)據(jù)庫文件中
? ? ?name: FQDN(可以使用相對名稱)
? ? ?value: IP
? ? ?如:www ? ? ? ? 600 ? ? ? ? ? IN ? ? ? ? A ? ? ? ? 172.16.35.100
? (4) MX: 可以有多個(gè)
? ? ? name: 區(qū)域名稱,用于標(biāo)識(shí)smtp服務(wù)器
? ? ? value: 包含優(yōu)先級和FQDN
? ? ? 優(yōu)先級:0-99, 數(shù)字越小,級別越高
? ? ? 如:@ ? ? 600 ? ?IN ? ? ? MX ? 10 ? ? ? ?mail
? ? ? ? ? @ ? ? 600 ? ?IN ? ? ? MX ? 20 ? ? ? ?mail2
?(5)CNAME: 別名
? ? ? name: FQDN
? ? ? value: FQDN
? ? ? 如:
? ? ? ? ?ftp ? ? ?IN ? ? ? CNAME ? ? ? ? ?www
? ? ? ? ?pop ? ? ?IN ? ? ? CNAME ? ? ? ? ?mail
?(6)PTR:IP-->FQDN, 只能定義在反向區(qū)域數(shù)據(jù)文件中,反向區(qū)域名稱為逆向網(wǎng)絡(luò)地址加.in-addr.arpa.后綴組成
? ?name: IP, 逆向的主機(jī)地址,例如172.16.35.100的name為100.35,完全格式為。100.35.16.172.in-addr.arpa.
? ?value: FQDN
? 4、反向區(qū)域的區(qū)域數(shù)據(jù)庫文件:
? 圖9
?圖10
5、更改主配置文件和區(qū)域數(shù)據(jù)庫文件的屬主為root,屬組為named,權(quán)限為640:
圖11
6、重啟bind的named服務(wù):
圖12
7、用dig工具模擬正向解析:
圖13
8、用dig工具模擬反向解析:
圖14
五、主DNS和輔助DNS服務(wù)器的實(shí)現(xiàn):
? ? 1、配置輔助DNS服務(wù)器的IP為172.16.35.2,并把DNS指向主DNS服務(wù)器的地址172.16.35.1:
? ? ? 圖15
2、輔助DNS服務(wù)器安裝bind程序。
3、在主DNS服務(wù)器上的正向區(qū)域數(shù)據(jù)庫文件中添加輔助DNS服務(wù)器的NS記錄及其A記錄:
? ?圖16
4、在輔助DNS服務(wù)器上的/etc/named.rfc1912.zones文件中定義區(qū)域yanhai.com,區(qū)域類型為slave,即輔助DNS服務(wù)器,masters中寫上主DNS服務(wù)器的IP,并指定輔助DNS服務(wù)器的區(qū)域數(shù)據(jù)庫文件在slaves目錄下:
圖17
5、在主DNS服務(wù)器上生成遠(yuǎn)程DNS控制器的配置文件:
? 圖18
? 圖19
6、把rndc配置文件中后半部分內(nèi)容復(fù)制到/etc/named.conf中去:
? 圖20
7、重啟named服務(wù),并查看rndc運(yùn)行狀態(tài):
? 圖21
8、重啟輔助DNS服務(wù)器后查看其數(shù)據(jù)庫文件已傳送成功:
圖22
9、在主DNS服務(wù)器上添加一條A記錄,并把序列號增加一個(gè)數(shù):
? 圖23
10、重啟主DNS服務(wù)器和輔助DNS服務(wù)器的named服務(wù),然后查看輔助DNS的數(shù)據(jù)庫文件中已成功傳送到一條A記錄:
? 圖24
11、在輔助DNS服務(wù)器上使用host解析2條A記錄:
? 圖25
六、子域授權(quán)和轉(zhuǎn)發(fā)機(jī)制:
1、在子域tech.yanhai.com中設(shè)置子域DNS服務(wù)器的IP為172.16.35.3,DNS地址指向父域172.16.35.1(yanhai.com):
? 圖26
2、注釋子域的主配置文件中的某些部分,見圖3。
3、在子域DNS服務(wù)器上的/etc/named.rfc1912.zones文件中配置子域信息:
圖27
4、配置子域的區(qū)域數(shù)據(jù)庫文件:
圖28
5、更改子域的區(qū)域數(shù)據(jù)庫文件的權(quán)限及屬主、屬組:
圖29
6、在父域yanhai.com的區(qū)域數(shù)據(jù)庫文件中添加子域的NS記錄和子域的A記錄:
圖30
7、分別重啟父域和子域的named服務(wù)。
8、在父域上能解析子域的A記錄:
? ? ?圖31
9、在子域上能解析本區(qū)域的A記錄:
?圖32
10、在子域上無法解析父域的資源記錄,原因是在子域上沒有配置轉(zhuǎn)發(fā):
?圖33
11、在子域的區(qū)域文件中配置對yanhai.com區(qū)域的解析都轉(zhuǎn)發(fā)到yanhai.com區(qū)域:
? ? 圖34
12、重啟子域的named服務(wù)后,子域能夠解析父域的主機(jī)了:
圖35
13、如果想讓子域內(nèi)客戶端能夠通過北京DNS服務(wù)器來上網(wǎng),可在主配置文件的全局選項(xiàng)中添加轉(zhuǎn)發(fā)地址為北京DNS服務(wù)商的地址,或是如果父域和互聯(lián)網(wǎng)相通,子域可在主配置文件的全局選項(xiàng)中添加轉(zhuǎn)發(fā)的IP為父域的IP:
? ? ? 圖36
七、view視圖:
? 1、在一臺(tái)linux服務(wù)器上配置2個(gè)IP,一個(gè)為內(nèi)網(wǎng)用戶解析,一個(gè)為外網(wǎng)用戶解析:
圖37
2、注釋掉viewDNS服務(wù)器的主配置文件的某些部分,如圖3。
3、在/etc/named.rfc1912.zones中定義視圖:
圖38
圖39
4、配置相同區(qū)域解析不同IP的區(qū)域數(shù)據(jù)庫文件:
圖40
? ? ? 圖41
5、更改2個(gè)區(qū)域數(shù)據(jù)庫文件的權(quán)限和屬主屬組:
圖42
6、重啟named服務(wù)后在內(nèi)網(wǎng)和外網(wǎng)各解析www.yanhai.com,解析的IP不同:
圖43
圖44
八、結(jié)束語:
至此,bind中基本的解析配置都已完成,DNS中還涉及一些高級的配置,還待我們進(jìn)一步研究。。。
轉(zhuǎn)載于:https://blog.51cto.com/yanhai/1376232
總結(jié)
以上是生活随笔為你收集整理的Linux上DNS实现工具之bind详叙的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 处理selinux方法
- 下一篇: STP(四)