背景介紹
創(chuàng)新互聯(lián)公司2013年成立,先為阜城等服務(wù)建站,阜城等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為阜城企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。DNS服務(wù)作為互聯(lián)網(wǎng)上一個(gè)基礎(chǔ)服務(wù)承擔(dān)著將用戶(hù)請(qǐng)求的名稱(chēng)轉(zhuǎn)換成對(duì)應(yīng)的IP或?qū)P轉(zhuǎn)換為名稱(chēng)的功能。DNS實(shí)際上是將互聯(lián)網(wǎng)上所有主機(jī)的FQDN以“.”分割成若干個(gè)區(qū)域,每一個(gè)區(qū)域都有特定的主機(jī)來(lái)進(jìn)行管理。以正向解析為例:當(dāng)用戶(hù)發(fā)起對(duì)www.contoso.com名稱(chēng)的解析請(qǐng)求時(shí),本地DNS服務(wù)器會(huì)先查詢(xún)緩存內(nèi)是否有該名稱(chēng)的IP,如果沒(méi)有此時(shí)就分為兩種情況:
當(dāng)客戶(hù)端向本地的DNS服務(wù)器發(fā)起請(qǐng)求時(shí)(1),如果本地DNS服務(wù)器不允許遞歸查詢(xún),他會(huì)立即向客戶(hù)端反饋找不到該名稱(chēng)對(duì)應(yīng)的IP(2),此時(shí)的查詢(xún)過(guò)程稱(chēng)為遞歸查詢(xún);如果本地DNS服務(wù)器允許遞歸查詢(xún),當(dāng)他在緩存及本地的區(qū)域解析庫(kù)文件中找不到該名稱(chēng)對(duì)應(yīng)的IP時(shí),首先會(huì)去根域進(jìn)行查詢(xún)(3),根域會(huì)告訴本地DNS服務(wù)器.com域的IP(4),本地DNS服務(wù)器再去找.com域進(jìn)行查詢(xún)(5),以此類(lèi)推直到獲得到www.contoso.com主機(jī)的IP后(10),本地DNS服務(wù)器才會(huì)將該地址告訴客戶(hù)端(2),客戶(hù)端再次使用得到的IP去訪問(wèn)www.contoso.com主機(jī)(11),本地DNS服務(wù)器同時(shí)將該名稱(chēng)和IP的對(duì)應(yīng)信息記錄在自己的緩存中。
通過(guò)上述得知,除了(2)是遞歸查詢(xún)外,(3)-(10)都是迭代查詢(xún),由于允許遞歸會(huì)大量消耗服務(wù)器資源,所以很多大型的DNS服務(wù)器比如根域服務(wù)器就不允許做遞歸查詢(xún),打開(kāi)或關(guān)閉的方法是在bind的配置文件/etc/named.conf中定義。
當(dāng)用戶(hù)輸入一個(gè)地址后,例如www.contoso.com,如果本地DNS服務(wù)器沒(méi)有該地址的記錄它會(huì)去找根區(qū)域解析,通過(guò)前文得知區(qū)域是以“.”來(lái)進(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ù)安裝完成后只偵聽(tīng)在自己的127.0.0.1:53套接字上,不對(duì)外提供任何服務(wù),如果需要對(duì)外提供服務(wù),需要將自己的IP地址添加到偵聽(tīng)列表中,并設(shè)置allow-query為any,允許任何人訪問(wèn)。dnssec是一種防止DNS被污染的機(jī)制,初學(xué)者或者測(cè)試階段建議關(guān)閉該選項(xiàng),bind配置文件中以//作為注釋符。directory定義了區(qū)域解析庫(kù)文件的存放目錄,一般情況下區(qū)域解析庫(kù)文件在/var/name目錄下以XXXX.zone的名稱(chēng)存在。
完成上述修改后,可以重啟named服務(wù)或者使用rndc reload命令通知named服務(wù)重讀配置文件,如果該服務(wù)器能訪問(wèn)互聯(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ū)域名稱(chēng),所以此處可以使用@來(lái)簡(jiǎn)寫(xiě)
TTL:可以從全局繼承,即在區(qū)域解析庫(kù)文件的首部使用$TTL來(lái)定義;
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)寫(xiě)為@) (2)當(dāng)前區(qū)域管理員的郵箱地址,因?yàn)锧在該文件中有特殊用法,所以郵箱中出現(xiàn)@的地方都已“.”來(lái)代替。
在該文件中如果下一行的相同位置與上一行一致,可以省略,他會(huì)繼承上一行對(duì)應(yīng)位置的值,如:NS的資源記錄類(lèi)型;另外在該文件中如果不是以“.”結(jié)尾的值它會(huì)自動(dòng)補(bǔ)上區(qū)域名稱(chēng),所以此處可以是ns2,也可以是ns2.contoso.com. ,但如果是ns2.的話(huà)就是錯(cuò)誤的數(shù)值,他會(huì)認(rèn)為這是ns2.與contoso.com.兩個(gè)不同的區(qū)域。
創(chuàng)建完區(qū)域解析庫(kù)文件后,可以使用named-checkcong和named-checkzone兩條命令來(lái)檢查配置文件和區(qū)域解析庫(kù)文件是否存在語(yǔ)法錯(cuò)誤
檢查無(wú)誤后使用dig命令進(jìn)行測(cè)試,其中aa(authority answer)表示這是一個(gè)權(quán)威回答,只有本負(fù)責(zé)本區(qū)域的DNS服務(wù)器的回答才稱(chēng)為權(quán)威回答,除此之外的回答全部都是非權(quán)威回答,如:遞歸過(guò)程中由其他DNS服務(wù)器緩存給出的回答。
需要注意的一點(diǎn)是:使用管理員創(chuàng)建完的區(qū)域解析庫(kù)文件任何人都可以讀取,在安全上會(huì)有風(fēng)險(xiǎn),建議將權(quán)限改為640并且將屬組改為named。
創(chuàng)建反向解析DNS服務(wù)器
首先需要說(shuō)明的是:反向解析區(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ū)域名稱(chēng)為:網(wǎng)絡(luò)地址反寫(xiě).in-addr.arpa,在/etc/named.rfc1912.zone配置文件中添加一個(gè)反向解析區(qū)域。對(duì)于解析區(qū)域(zone)其結(jié)尾的“.”可以省略,而區(qū)域解析庫(kù)文件(file)的名稱(chēng)是可以隨意命名的。
2.在/var/named/目錄下創(chuàng)建一個(gè)名為172.16.10.zone的反向區(qū)域解析庫(kù)文件,反向區(qū)域解析庫(kù)文件不需要MX和A,以及AAAA記錄;以PTR記錄為主。$ORIGIN的作用是將名稱(chēng)補(bǔ)全,如:10會(huì)補(bǔ)全為10.10.16.172.in-addr.arpa.(這個(gè)變量可以不用設(shè)置,因?yàn)樵趧?chuàng)建解析區(qū)域zone時(shí)就已經(jīng)定義過(guò)區(qū)域名稱(chēng)),需要注意的是此處的value值不能簡(jiǎn)寫(xiě),否則他會(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檢查無(wú)誤后,使用dig -x 172.16.10.20 @172.16.10.10或者h(yuǎn)ost命令驗(yàn)證,此處以host為例
補(bǔ)充說(shuō)明
dig命令不會(huì)查詢(xún)本地host文件;
rndc: remote name domain controller,默認(rèn)與bind安裝在同一主機(jī),且只能通過(guò)127.0.0.1來(lái)連接named進(jìn)程;提供輔助性的管理功能,偵聽(tīng)在TCP的953端口
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。