主頁(yè) > 知識(shí)庫(kù) > 在Linux系統(tǒng)上安裝配置DNS服務(wù)器的教程

在Linux系統(tǒng)上安裝配置DNS服務(wù)器的教程

熱門(mén)標(biāo)簽:小語(yǔ)股票電銷(xiāo)機(jī)器人 金華呼叫中心外呼系統(tǒng)廠(chǎng)家 襄陽(yáng)地圖標(biāo)注店 柯城手機(jī)地圖如何做地圖標(biāo)注 高德地圖標(biāo)注在電腦上 申請(qǐng)400電話(huà)流程好嗎 萊蕪移動(dòng)外呼系統(tǒng) 杭州電銷(xiāo)機(jī)器人有效果嗎 軟件電話(huà)機(jī)器人

簡(jiǎn)介
DNS 是計(jì)算機(jī)域名系統(tǒng) (Domain Name System 或Domain Name Service) 的縮寫(xiě),它是由解析器和域名服務(wù)器組成的。域名服務(wù)器是指保存有該網(wǎng)絡(luò)中所有主機(jī)的域名和對(duì)應(yīng)IP地址,并具有將域名轉(zhuǎn)換為IP地址功能的服務(wù)器。其中域名必須對(duì)應(yīng)一個(gè)IP地址,而IP地址不一定有域名。域名系統(tǒng)采用類(lèi)似目錄樹(shù)的等級(jí)結(jié)構(gòu)。域名服務(wù)器為客戶(hù)機(jī)/服務(wù)器模式中的服務(wù)器方,它主要有兩種形式:主服務(wù)器和轉(zhuǎn)發(fā)服務(wù)器。將域名映射為IP地址的過(guò)程就稱(chēng)為“域名解析”。在Internet上域名與IP地址之間是一對(duì)一(或者多對(duì)一)的,也可采用DNS輪循實(shí)現(xiàn)一對(duì)多,域名雖然便于人們記憶,但機(jī)器之間只認(rèn)IP地址,它們之間的轉(zhuǎn)換工作稱(chēng)為域名解析,域名解析需要由專(zhuān)門(mén)的域名解析服務(wù)器來(lái)完成,DNS就是進(jìn)行域名解析的服務(wù)器。DNS 命名用于 Internet等 TCP/IP網(wǎng)絡(luò)中,通過(guò)用戶(hù)友好的名稱(chēng)查找計(jì)算機(jī)和服務(wù)。當(dāng)用戶(hù)在應(yīng)用程序中輸入 DNS 名稱(chēng)時(shí),DNS 服務(wù)可以將此名稱(chēng)解析為與之相關(guān)的其他信息,如 IP 地址。因?yàn)椋阍谏暇W(wǎng)時(shí)輸入的網(wǎng)址,是通過(guò)域名解析系統(tǒng)解析找到了相對(duì)應(yīng)的IP地址,這樣才能上網(wǎng)。其實(shí),域名的最終指向是IP。 [1]

DNS分為Client和Server,Client扮演發(fā)問(wèn)的角色,也就是問(wèn)Server一個(gè)Domain Name,而Server必須要回答此Domain Name的真正IP地址。而當(dāng)?shù)氐腄NS先會(huì)查自己的資料庫(kù)。如果自己的資料庫(kù)沒(méi)有,則會(huì)往該DNS上所設(shè)的DNS服務(wù)器詢(xún)問(wèn),依此得到答案之后,將收到的答案存起來(lái),并回答客戶(hù)。DNS服務(wù)器會(huì)根據(jù)不同的授權(quán)區(qū)(Zone),記錄所屬該網(wǎng)域下的各名稱(chēng)資料,這個(gè)資料包括網(wǎng)域下的次網(wǎng)域名稱(chēng)及主機(jī)名稱(chēng)。在每一個(gè)名稱(chēng)服務(wù)器中都有一個(gè)快取緩存區(qū)(Cache),這個(gè)快取緩存區(qū)的主要目的是將該名稱(chēng)服務(wù)器所查詢(xún)出來(lái)的名稱(chēng)及相對(duì)的IP地址記錄快取緩存區(qū)中,這樣當(dāng)下一次還有另外一個(gè)客戶(hù)端到此服務(wù)器上去查詢(xún)相同的名稱(chēng) 時(shí),服務(wù)器就不用在到別臺(tái)主機(jī)上去尋找,而直接可以從緩存區(qū)中找到該筆名稱(chēng)記錄資料,傳回給客戶(hù)端,加速客戶(hù)端對(duì)名稱(chēng)查詢(xún)的速度。例如:

當(dāng)DNS客戶(hù)端向指定的DNS服務(wù)器查詢(xún)網(wǎng)際網(wǎng)路上的某一臺(tái)主機(jī)名稱(chēng) DNS服務(wù)器會(huì)在該資料庫(kù)中找尋用戶(hù)所指定的名稱(chēng) 如果沒(méi)有,該服務(wù)器會(huì)先在自己的快取緩存區(qū)中查詢(xún)有無(wú)該筆紀(jì)錄,如果找到該筆名稱(chēng)記錄后,會(huì)從DNS服務(wù)器直接將所對(duì)應(yīng)到的IP地址傳回給客戶(hù)端 ,如果名稱(chēng)服務(wù)器在資料記錄查不到且快取緩存區(qū)中也沒(méi)有時(shí),會(huì)向最接近的名稱(chēng)服務(wù)器去要求幫忙找尋該名稱(chēng)的IP地址 ,在另一臺(tái)服務(wù)器上也有相同的動(dòng)作的查詢(xún),當(dāng)查詢(xún)到后會(huì)回復(fù)原本要求查詢(xún)的服務(wù)器,該DNS服務(wù)器在接收到另一臺(tái)DNS服務(wù)器查詢(xún)的結(jié)果后,先將所查詢(xún)到的主機(jī)名稱(chēng)及對(duì)應(yīng)IP地址記錄到快取緩存區(qū)中 ,最后在將所查詢(xún)到的結(jié)果回復(fù)給客戶(hù)端。


任何運(yùn)作中的域名至少有兩臺(tái)DNS服務(wù)器,一臺(tái)稱(chēng)為主域名服務(wù)器(比如叫做ns1),而另一臺(tái)稱(chēng)為從域名服務(wù)器(比如叫做ns2)。這些服務(wù)器通常用于故障轉(zhuǎn)移:如果一臺(tái)宕機(jī),另外一臺(tái)就激活成為DNS服務(wù)器(譯注:此處譯者有不同意見(jiàn),事實(shí)上兩個(gè)或更多的DNS服務(wù)器是共同工作的,并不是第一臺(tái)停止服務(wù)后,第二臺(tái)才接替工作。解析器是隨機(jī)選擇一個(gè)DNS服務(wù)器進(jìn)行詢(xún)問(wèn),如果超時(shí)則會(huì)詢(xún)問(wèn)下一個(gè),這是多個(gè)DNS的故障容錯(cuò)機(jī)制)。也可以實(shí)現(xiàn)包括負(fù)載均衡、防火墻和集群在內(nèi)的更為復(fù)雜的故障轉(zhuǎn)移機(jī)制。

一個(gè)域的所有DNS條目都會(huì)被添加到主域名服務(wù)器,從服務(wù)器只會(huì)根據(jù)主服務(wù)器上的SOA記錄的序列號(hào)參數(shù)從主服務(wù)器同步所有信息。

此教程將會(huì)講述如何創(chuàng)建一臺(tái)在CentOS上運(yùn)行的主DNS服務(wù)器。請(qǐng)注意,本教程中提到的DNS服務(wù)器將會(huì)是一臺(tái)開(kāi)放DNS服務(wù)器,這也就是說(shuō)該服務(wù)器將會(huì)回應(yīng)來(lái)自任何IP地址的查詢(xún)。對(duì)于DNS服務(wù)器的訪(fǎng)問(wèn)控制將在此教程中討論。

在開(kāi)始之前,我想要提一下的是,DNS可以在chroot環(huán)境中配置,也可以在非chroot環(huán)境中配置。chroot環(huán)境將DNS服務(wù)器限制在系統(tǒng)中某個(gè)特定目錄中,以避免讓服務(wù)器具有系統(tǒng)級(jí)的訪(fǎng)問(wèn)權(quán)限。在此環(huán)境中,任何DNS服務(wù)器的安全漏洞不會(huì)導(dǎo)致整個(gè)系統(tǒng)的破壞。將DNS服務(wù)器置于chroot環(huán)境中,對(duì)于部署測(cè)試也很有用。

目標(biāo)

我們將在基于域名example.tst的測(cè)試環(huán)境中配置一臺(tái)DNS服務(wù)器,這個(gè)域名是虛假的(并不真實(shí)存在的)。這樣,我們就不會(huì)意外干擾到其它真實(shí)的域名。

在該域中,有以下三臺(tái)服務(wù)器。

我們將會(huì)配置一臺(tái)主域名服務(wù)器,并添加上表中必要的域和DNS記錄。

過(guò)程
設(shè)置主機(jī)名

所有的主機(jī)名必須以完全限定域名的方式正確定義,可以通過(guò)以下方法完成設(shè)置。

復(fù)制代碼
代碼如下:

# vim /etc/sysconfig/network
HOSTNAME=ns1.example.tst

注:該文件中指定的主機(jī)名參數(shù)在服務(wù)器啟動(dòng)后才會(huì)啟用(譯注:或者網(wǎng)絡(luò)服務(wù)重啟后),因此,該設(shè)置不會(huì)馬上生效。下面的命令可以立刻臨時(shí)性地修改主機(jī)名。

復(fù)制代碼
代碼如下:

# hostname ns1.example.tst

一旦設(shè)置,主機(jī)名可以通過(guò)以下命令驗(yàn)證。

復(fù)制代碼
代碼如下:

# hostname
ns1.example.tst

在進(jìn)入下一步之前,請(qǐng)確保上述三臺(tái)服務(wù)器上的主機(jī)名已經(jīng)設(shè)置正確。

安裝軟件包

我們將使用bind來(lái)配置DNS服務(wù),該軟件可以很方便地通過(guò)yum來(lái)安裝。

不使用chroot環(huán)境的:

復(fù)制代碼
代碼如下:

# yum install bind bind-chroot

使用chroot環(huán)境的:

復(fù)制代碼
代碼如下:

# yum install bind bind-chroot

準(zhǔn)備配置文件

正如前面提到的,bind可以在chroot環(huán)境下配置,或者在非chroot環(huán)境下配置,配置文件的路徑會(huì)因?yàn)槭欠癜惭bchroot包而不同。

可以使用默認(rèn)提供的named.conf配置文件,但是為了更方便使用,我們將使用另外一個(gè)簡(jiǎn)單的配置文件模板。

chroot環(huán)境

復(fù)制代碼
代碼如下:

# cp /usr/share/doc/bind-9.8.2/sample/etc/named.rfc1912.zones /etc/named.conf

chroot環(huán)境

復(fù)制代碼
代碼如下:

# cp /usr/share/doc/bind-9.8.2/sample/etc/named.rfc1912.zones /var/named/chroot/etc/named.conf

現(xiàn)在來(lái)備份并修改配置文件。

chroot環(huán)境

復(fù)制代碼
代碼如下:

# vim /etc/named.conf

chroot環(huán)境

復(fù)制代碼
代碼如下:

# vim /var/named/chroot/etc/named.conf

添加/修改以下行:

復(fù)制代碼
代碼如下:

options {
## 區(qū)域文件存放目錄 ##
directory "/var/named";
## 對(duì)于非本地權(quán)威域的請(qǐng)求轉(zhuǎn)發(fā)到 Google 的公開(kāi) DNS 服務(wù)器 ##
forwarders { 8.8.8.8; };
};
## 申明一個(gè)本地域 example.tst ##
zone "example.tst" IN {
type master;
file "example-fz"; ## 存儲(chǔ)文件名,放在 /var/named ##
allow-update { none; };
};
## 為IP段 172.16.1.0 提供反向解析 ##
zone "1.16.172.in-addr.arpa" IN {
type master;
file "rz-172-16-1"; ## 存儲(chǔ)文件名,放在 /var/named ##
allow-update { none; };
};

準(zhǔn)備區(qū)域文件

那些默認(rèn)的區(qū)域文件會(huì)自動(dòng)創(chuàng)建到/var/named 或者/var/named/chroot/var/named (chroot環(huán)境)。如果在這些地方找不到這些文件,/usr/share/doc/bind目錄中提供了模板文件,可以從這里拷貝。

假設(shè)默認(rèn)區(qū)域文件沒(méi)有提供,我們可以從/usr拷貝模板文件。

chroot環(huán)境

復(fù)制代碼
代碼如下:

# cp /usr/share/doc/bind-9.8.2/sample/var/named/named.* /var/named/

chroot環(huán)境

復(fù)制代碼
代碼如下:

# cp /usr/share/doc/bind-9.8.2/sample/var/named/named.* /var/named/chroot/var/named

很好!由于現(xiàn)在默認(rèn)的區(qū)域文件已經(jīng)準(zhǔn)備好,我們可以為example.tst和172.16.1.0網(wǎng)絡(luò)創(chuàng)建區(qū)域文件了,以下要點(diǎn)必須時(shí)刻謹(jǐn)記。

區(qū)域文件中的特殊字符‘@’意味著空。(譯注:意即代表本域。)

所有的完全限定域名必須以點(diǎn)‘.’結(jié)束。如:example.tst.如果沒(méi)有這個(gè)點(diǎn),你會(huì)發(fā)生問(wèn)題。(譯注:即會(huì)被當(dāng)做當(dāng)前@所代表的域的子域。)

1. 轉(zhuǎn)發(fā)區(qū)域(本地權(quán)威域)

轉(zhuǎn)發(fā)區(qū)域包含了名稱(chēng)到IP地址的映射。對(duì)于公開(kāi)的域,域名托管提供商的DNS服務(wù)器存儲(chǔ)了轉(zhuǎn)發(fā)區(qū)域文件。(譯注:轉(zhuǎn)發(fā)區(qū)域即本地的權(quán)威域,由這個(gè)服務(wù)器自身提供權(quán)威的解析數(shù)據(jù))

chroot環(huán)境

復(fù)制代碼
代碼如下:

# vim /var/named/example-fz

chroot環(huán)境

復(fù)制代碼
代碼如下:

# vim /var/named/chroot/var/named/example-fz

$TTL 1D
 
@       IN SOA  ns1.example.tst. sarmed.example.tst. (
 
                                        0       ; serial
 
                                        1D      ; refresh
 
                                        1H      ; retry
 
                                        1W      ; expire
 
                                        3H )    ; minimum
 
IN NS      ns1.example.tst.
 
IN A       172.16.1.3
 
mail        IN A        172.16.1.1
 
        IN MX 10    mail.example.tst.
 
www     IN A        172.16.1.2
 
ns1     IN A        172.16.1.3
 
ftp     IN CNAME    www.example.tst.
說(shuō)明:在區(qū)域文件中,SOA是開(kāi)始授權(quán)(Start Of Authority)的意思。它的值的第一段是授權(quán)名稱(chēng)服務(wù)器的完全限定域名。完全限定域名后面跟著的是電子郵件地址。由于不能在sarmed@example.tst這樣的格式中使用‘@’符號(hào)(譯注:@有特定意義,代表本域。),我們將電子郵件地址重寫(xiě)成sarmed.example.tst.這樣的格式。

以下是典型的常用DNS記錄類(lèi)型:

NS:域名服務(wù)器

A: 地址記錄,記錄主機(jī)名到IP地址的映射(譯注,此處原文有誤。)

MX: 郵件交換記錄。這里我們只用了一個(gè)郵件交換記錄,設(shè)置其優(yōu)先級(jí)為10。如果有多個(gè)郵件交換記錄,我們可以使用多個(gè)數(shù)值優(yōu)先級(jí),數(shù)字小的優(yōu)先級(jí)最高。例如,MX 0比MX 1優(yōu)先級(jí)更高。

CNAME: 標(biāo)準(zhǔn)名。如果在一臺(tái)單一服務(wù)器上托管了多個(gè)服務(wù),也很可能將多個(gè)名稱(chēng)解析到某個(gè)單一服務(wù)器。CNAME指定了一臺(tái)服務(wù)器可能有的其它名稱(chēng),并且將它們指向具有實(shí)際A記錄的名稱(chēng)。

2. 反向區(qū)域

反向區(qū)域包含了IP地址到名稱(chēng)的映射。這里,我們?yōu)?72.16.1.0網(wǎng)絡(luò)創(chuàng)建反向區(qū)域。在正式的域中,公共IP區(qū)塊的擁有者擁有的DNS服務(wù)器存儲(chǔ)反向區(qū)域文件。(某些服務(wù),如郵件服務(wù),要求IP地址具備正確的反向解析才能正常工作。而IP的反向解析,通常是由IP的擁有者如接入商或IDC來(lái)負(fù)責(zé)解析。)

chroot環(huán)境

復(fù)制代碼
代碼如下:

# vim /var/named/rz-172-16-1
  
chroot環(huán)境

復(fù)制代碼
代碼如下:

# vim /var/named/chroot/var/named/rz-172-16-1

$TTL 1D

@       IN SOA  ns1.example.tst. sarmed.example.tst. (

                                        0       ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H )    ; minimum

IN NS      ns1.example.tst.

1       IN PTR  mail.example.tst.

2       IN PTR  www.example.tst.

3       IN PTR  ns1.example.tst.
說(shuō)明:除了下面的參數(shù)外,反向區(qū)域文件中的大多數(shù)參數(shù)和轉(zhuǎn)發(fā)區(qū)域文件中的相同。

PTR: IP反向解析記錄,指向一個(gè)反向限定域名。

結(jié)束工作

既然區(qū)域文件已經(jīng)準(zhǔn)備好,我們接下來(lái)調(diào)整它們的權(quán)限。

chroot環(huán)境

復(fù)制代碼
代碼如下:

# chgrp named /var/named/*

chroot環(huán)境

復(fù)制代碼
代碼如下:

# chgrp named /var/named/chroot/var/named/*

現(xiàn)在,我們?yōu)镈NS服務(wù)器設(shè)置IP地址。

復(fù)制代碼
代碼如下:

# vim /etc/resolv.conf
nameserver 172.16.1.3

最后,我們可以啟動(dòng)DNS服務(wù),并確保將它添加到啟動(dòng)服務(wù)中。

復(fù)制代碼
代碼如下:

# service named restart
# chkconfig named on

DNS服務(wù)器起動(dòng)后,建議關(guān)注一下日志文件/var/log/messages,這里頭包含了后臺(tái)運(yùn)行的一些有用信息。如果沒(méi)有發(fā)現(xiàn)錯(cuò)誤,我們可以開(kāi)始測(cè)試DNS服務(wù)器。

測(cè)試DNS

我們可以使用dig或者nslookup來(lái)測(cè)試DNS。首先,我們需要安裝必要的軟件包。

復(fù)制代碼
代碼如下:

# yum install bind-utils

1. 使用dig測(cè)試轉(zhuǎn)發(fā)區(qū)域

使用dig來(lái)測(cè)試時(shí),必須時(shí)刻關(guān)注狀態(tài)信息:“NOERROR”,任何其它值都表明存在問(wèn)題。

復(fù)制代碼
代碼如下:

# dig example.tst

;; ->>HEADER- opcode: QUERY,  status: NOERROR, id: 31184

 

;; QUESTION SECTION:

;example.com.                   IN      A

 

;; ANSWER SECTION:

example.com.            86400   IN      A       172.16.1.3

 

;; AUTHORITY SECTION:

example.com.            86400   IN      NS      ns1.example.com.

 

;; ADDITIONAL SECTION:

ns1.example.com.        86400   IN      A       172.16.1.3
2. 使用dig測(cè)試PTR記錄

使用dig來(lái)測(cè)試時(shí),必須時(shí)刻關(guān)注狀態(tài)信息:“NOERROR”,任何其它值都表明存在問(wèn)題。(譯注,也可用 dig 1.1.16.172.in-addr.arpa. ptr 來(lái)測(cè)試。)

復(fù)制代碼
代碼如下:

# dig -x 172.16.1.1

;; ->>HEADER- opcode: QUERY, status: NOERROR, id: 27415

 

;; QUESTION SECTION:

;1.1.17.172.in-addr.arpa.       IN      PTR

 

;; ANSWER SECTION:

1.1.16.172.in-addr.arpa. 86400  IN      PTR     mail.example.tst.

 

;; AUTHORITY SECTION:

1.16.172.in-addr.arpa.  86400   IN      NS      ns1.example.tst.

 

;; ADDITIONAL SECTION:

ns1.example.tst.        86400   IN      A       172.16.1.3
3. 使用dig測(cè)試MX記錄

復(fù)制代碼
代碼如下:

# dig example.tst mx

;; ->>HEADER- opcode: QUERY, status: NOERROR, id: 35405

 

;; QUESTION SECTION:

;example.tst.                        IN      MX

 

;; ANSWER SECTION:

example.tst.         14366   IN      MX     10  mail.example.tst.
排錯(cuò)提示

我已經(jīng)把SELinux關(guān)閉。

保證防火墻沒(méi)有阻擋UDP 53端口

萬(wàn)一出錯(cuò),可在/var/log/messages中查看到有用的信息

確保區(qū)域文件的屬主為‘named’

確保DNS服務(wù)器的IP地址是/etc/resolv.conf中的第一條目

如果你使用example.tst作為實(shí)驗(yàn)環(huán)境,確保將服務(wù)器從互聯(lián)網(wǎng)斷開(kāi),因?yàn)閑xample.tst是一個(gè)不存在的域。

最后小結(jié),該教程關(guān)注的是實(shí)驗(yàn)環(huán)境中配置example.tst域用作為演示。請(qǐng)注意,該教程中創(chuàng)建了一臺(tái)公共DNS服務(wù)器,此服務(wù)器會(huì)回應(yīng)來(lái)自任何源IP地址的查詢(xún)。如果你是在配置DNS生產(chǎn)服務(wù)器,請(qǐng)確保檢查與公共DNS相關(guān)的策略。其它教程涵蓋了創(chuàng)建從DNS服務(wù)器, 限制對(duì)DNS服務(wù)器的訪(fǎng)問(wèn)以及部署DNSSEC。

標(biāo)簽:欽州 鶴壁 威海 天門(mén) 景德鎮(zhèn) 河南 黔南 海北

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《在Linux系統(tǒng)上安裝配置DNS服務(wù)器的教程》,本文關(guān)鍵詞  在,Linux,系統(tǒng),上,安裝,配置,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《在Linux系統(tǒng)上安裝配置DNS服務(wù)器的教程》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于在Linux系統(tǒng)上安裝配置DNS服務(wù)器的教程的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章