您好,登錄后才能下訂單哦!
背景介紹
DNS服務(wù)作為互聯(lián)網(wǎng)上一個(gè)基礎(chǔ)服務(wù)承擔(dān)著將用戶請(qǐng)求的名稱轉(zhuǎn)換成對(duì)應(yīng)的IP或?qū)P轉(zhuǎn)換為名稱的功能。DNS實(shí)際上是將互聯(lián)網(wǎng)上所有主機(jī)的FQDN以“.”分割成若干個(gè)區(qū)域,每一個(gè)區(qū)域都有特定的主機(jī)來進(jìn)行管理。以正向解析為例:當(dāng)用戶發(fā)起對(duì)www.contoso.com名稱的解析請(qǐng)求時(shí),本地DNS服務(wù)器會(huì)先查詢緩存內(nèi)是否有該名稱的IP,如果沒有此時(shí)就分為兩種情況:
當(dāng)客戶端向本地的DNS服務(wù)器發(fā)起請(qǐng)求時(shí)(1),如果本地DNS服務(wù)器不允許遞歸查詢,他會(huì)立即向客戶端反饋找不到該名稱對(duì)應(yīng)的IP(2),此時(shí)的查詢過程稱為遞歸查詢;如果本地DNS服務(wù)器允許遞歸查詢,當(dāng)他在緩存及本地的區(qū)域解析庫(kù)文件中找不到該名稱對(duì)應(yīng)的IP時(shí),首先會(huì)去根域進(jìn)行查詢(3),根域會(huì)告訴本地DNS服務(wù)器.com域的IP(4),本地DNS服務(wù)器再去找.com域進(jìn)行查詢(5),以此類推直到獲得到www.contoso.com主機(jī)的IP后(10),本地DNS服務(wù)器才會(huì)將該地址告訴客戶端(2),客戶端再次使用得到的IP去訪問www.contoso.com主機(jī)(11),本地DNS服務(wù)器同時(shí)將該名稱和IP的對(duì)應(yīng)信息記錄在自己的緩存中。
通過上述得知,除了(2)是遞歸查詢外,(3)-(10)都是迭代查詢,由于允許遞歸會(huì)大量消耗服務(wù)器資源,所以很多大型的DNS服務(wù)器比如根域服務(wù)器就不允許做遞歸查詢,打開或關(guān)閉的方法是在bind的配置文件/etc/named.conf中定義。
當(dāng)用戶輸入一個(gè)地址后,例如www.contoso.com,如果本地DNS服務(wù)器沒有該地址的記錄它會(huì)去找根區(qū)域解析,通過前文得知區(qū)域是以“.”來進(jìn)行劃分的,每一個(gè)FQDN的結(jié)尾處其實(shí)都有一個(gè)用于結(jié)尾的“.”,只是該“.”可以省略,而結(jié)尾處的“.”就代表根區(qū)域的意思,www.contoso.com完整的FQDN為www.contoso.com.,DNS在解析時(shí)采用從后往前的方式逐一進(jìn)行區(qū)域查找,全球一共有13個(gè)根域名解析服務(wù)器,而根區(qū)域“.”默認(rèn)在安裝DNS服務(wù)時(shí)就已經(jīng)自帶,在bind的配置文件/etc/named.conf中可以查看到記錄根區(qū)域的文件。
創(chuàng)建正向解析DNS服務(wù)器
1.使用yum install bind -y 安裝DNS服務(wù)。DNS的配置文件采取分段的方式除了主配置文件/etc/named.conf外,也可以在/etc/named.rfc912.zones文件中定義,默認(rèn)情況下DNS服務(wù)安裝完成后只偵聽在自己的127.0.0.1:53套接字上,不對(duì)外提供任何服務(wù),如果需要對(duì)外提供服務(wù),需要將自己的IP地址添加到偵聽列表中,并設(shè)置allow-query為any,允許任何人訪問。dnssec是一種防止DNS被污染的機(jī)制,初學(xué)者或者測(cè)試階段建議關(guān)閉該選項(xiàng),bind配置文件中以//作為注釋符。directory定義了區(qū)域解析庫(kù)文件的存放目錄,一般情況下區(qū)域解析庫(kù)文件在/var/name目錄下以XXXX.zone的名稱存在。
完成上述修改后,可以重啟named服務(wù)或者使用rndc reload命令通知named服務(wù)重讀配置文件,如果該服務(wù)器能訪問互聯(lián)網(wǎng)此時(shí)就是一個(gè)緩存DNS服務(wù)器。
2.創(chuàng)建解析區(qū)域。在/etc/named.rfc912.zones文件中添加要解析的區(qū)域,type定義了這臺(tái)DNS服務(wù)器在contoso.com區(qū)域所扮演的角色,此處定義為主服務(wù)器,file指明了區(qū)域解析庫(kù)文件的位置,由于在/etc/named.conf配置文件中設(shè)置了directory的值,所以此處可以使用相對(duì)路徑,contoso.com.zone文件的絕對(duì)路徑為/var/named/contoso.com.zone。
3.創(chuàng)建區(qū)域解析庫(kù)文件。區(qū)域解析庫(kù)文件是由眾多RR(Resource Record)值組成,資源記錄的格式為:
domain_name [TTL] IN rr_type value
domain_name:當(dāng)前區(qū)域的名字,如contoso.com.(結(jié)尾的“.”不能省略),因?yàn)樵?etc/named.rfc912.zones配置文件中已經(jīng)定義的當(dāng)前區(qū)域名稱,所以此處可以使用@來簡(jiǎn)寫
TTL:可以從全局繼承,即在區(qū)域解析庫(kù)文件的首部使用$TTL來定義;
rr_type:SOA、A、CNAME、MX、NS等。一個(gè)區(qū)域解析庫(kù)有且僅能有一個(gè)SOA(Start Of Authority)記錄,而必須為解析庫(kù)的第一條記錄;
value:有多個(gè)部分組成。(1)當(dāng)前區(qū)域主DNS服務(wù)器的FQDN,也可以是當(dāng)前區(qū)域的名字(簡(jiǎn)寫為@) (2)當(dāng)前區(qū)域管理員的郵箱地址,因?yàn)锧在該文件中有特殊用法,所以郵箱中出現(xiàn)@的地方都已“.”來代替。
在該文件中如果下一行的相同位置與上一行一致,可以省略,他會(huì)繼承上一行對(duì)應(yīng)位置的值,如:NS的資源記錄類型;另外在該文件中如果不是以“.”結(jié)尾的值它會(huì)自動(dòng)補(bǔ)上區(qū)域名稱,所以此處可以是ns2,也可以是ns2.contoso.com. ,但如果是ns2.的話就是錯(cuò)誤的數(shù)值,他會(huì)認(rèn)為這是ns2.與contoso.com.兩個(gè)不同的區(qū)域。
創(chuàng)建完區(qū)域解析庫(kù)文件后,可以使用named-checkcong和named-checkzone兩條命令來檢查配置文件和區(qū)域解析庫(kù)文件是否存在語法錯(cuò)誤
檢查無誤后使用dig命令進(jìn)行測(cè)試,其中aa(authority answer)表示這是一個(gè)權(quán)威回答,只有本負(fù)責(zé)本區(qū)域的DNS服務(wù)器的回答才稱為權(quán)威回答,除此之外的回答全部都是非權(quán)威回答,如:遞歸過程中由其他DNS服務(wù)器緩存給出的回答。
需要注意的一點(diǎn)是:使用管理員創(chuàng)建完的區(qū)域解析庫(kù)文件任何人都可以讀取,在安全上會(huì)有風(fēng)險(xiǎn),建議將權(quán)限改為640并且將屬組改為named。
創(chuàng)建反向解析DNS服務(wù)器
首先需要說明的是:反向解析區(qū)域與正向解析區(qū)域是兩個(gè)不同的區(qū)域,每個(gè)區(qū)域都有各自的區(qū)域解析庫(kù)文件,并且這兩個(gè)區(qū)域可以不在同一臺(tái)服務(wù)器上,大多數(shù)場(chǎng)景是將正反解析區(qū)域部署在同一臺(tái)服務(wù)器,此處也在同一臺(tái)服務(wù)器上部署正反解析區(qū)域。
1.創(chuàng)建解析區(qū)域。反向解析域的解析區(qū)域名稱為:網(wǎng)絡(luò)地址反寫.in-addr.arpa,在/etc/named.rfc1912.zone配置文件中添加一個(gè)反向解析區(qū)域。對(duì)于解析區(qū)域(zone)其結(jié)尾的“.”可以省略,而區(qū)域解析庫(kù)文件(file)的名稱是可以隨意命名的。
2.在/var/named/目錄下創(chuàng)建一個(gè)名為172.16.10.zone的反向區(qū)域解析庫(kù)文件,反向區(qū)域解析庫(kù)文件不需要MX和A,以及AAAA記錄;以PTR記錄為主。$ORIGIN的作用是將名稱補(bǔ)全,如:10會(huì)補(bǔ)全為10.10.16.172.in-addr.arpa.(這個(gè)變量可以不用設(shè)置,因?yàn)樵趧?chuàng)建解析區(qū)域zone時(shí)就已經(jīng)定義過區(qū)域名稱),需要注意的是此處的value值不能簡(jiǎn)寫,否則他會(huì)使用10.16.172.in-addr.arpa.補(bǔ)全。
3.同樣使用chmod和chown命令更改創(chuàng)建的/etc/72.16.10.zone區(qū)域解析庫(kù)文件權(quán)限和屬組,使用named-checkcong和named-checkzone檢查無誤后,使用dig -x 172.16.10.20 @172.16.10.10或者h(yuǎn)ost命令驗(yàn)證,此處以host為例
補(bǔ)充說明
dig命令不會(huì)查詢本地host文件;
rndc: remote name domain controller,默認(rèn)與bind安裝在同一主機(jī),且只能通過127.0.0.1來連接named進(jìn)程;提供輔助性的管理功能,偵聽在TCP的953端口
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。