歡迎您光臨本站 註冊首頁

LINUX-DNS配置

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

DNS服務的配置.

DNS的簡介:

DNSBIND的關係:DNS是一種網路通信的名稱.BIND是提供DNS服務的軟體.DNS使用TCPUDP53號埠,一般情況下為了查詢速度使用的是

UDP53埠.正向解析就是輸入域名解析到IP地址,反向解析就是輸入IP 地址解析到域名.正向解析和反向解析一般不需要配套配置,也就是說有一個正向解析不一定非要一個反向解析.事實上,需要正反解析成對的僅有郵件伺服器.

DNS的搜索流程:

當我們在瀏覽器中輸入一個網址時,計算機是怎樣查找到一個IP地址的呢?首先,計算機會查找緩存,如果緩存沒有,那麼查找hosts文件(linux中這個文件對應的是

/etc/hosts),如果hosts文件也沒有的話,那麼就向頂域查找(根域),如果根域沒有就會向該主機提供二級域的IP地址,然後主機再向二級域查找,如果二級域還不能查到,二級域就會向主機提供三級域的IP地址,然後主機再向三級域查找……,直到查找完成.當查找到后,主機會把該域名和IP地址的映射關係存入到緩存中,以便下一次對同一主機名稱的查詢請求,默認會在緩存中保留24小時.

DNS基本配置:

第一步:安裝軟體:

[root@localhost ~]# rpm -ivh /misc/cd/Server/bind-9.3.4-10.P1.el5.i386.rpm

DNS伺服器的主程序.

[root@localhost ~]# rpm –ivh /misc/cd/Server/bind-chroot-9.3.4-10.P1.el5.i386.rpm

bind目錄關在一個目錄裡面在.

[root@localhost ~]# rpm -ivh /misc/cd/Server/bind-utils-9.3.4-10.P1.el5.i386.rpm

DNS服務的工具包.

[root@localhost ~]# rpm -ivh /misc/cd/Server/caching-nameserver-9.3.4-10.P1.el5.i386.rpm

DNS緩存.

第二步:編輯配置文件:

[root@localhost ~]# vi /var/named/chroot/etc/named.caching-nameserver.conf

修改如下內容:(一個IP,三個any.)

listen-on port 53 { 192.168.100.200; }; //修改為本機IP地址.

allow-query { any; };

//允許所有人查詢.

match-clients { any; }; //允許任意客房端.

match-destinations { any; }; //允許任意目標.

編輯區域文件:

[root@localhost ~]# vi /var/named/chroot/etc/named.rfc1912.zones

新建一個正向rhel.com區域:

zone "rhel.com" IN {

type master; //設置主從.

file "rhel.com.zone"; //配置文件的名稱.

allow-update { none; };

};

編輯區域配置文件:

[root@localhost ~]# cd /var/named/chroot/var/named/

[root@localhost named]# cp -p localhost.zone rhel.com.zone

//一定要加-p這個參數,否則發現不能解析,-p是複製后不更改文件的許可權.

[root@localhost named]# vi rhel.com.zone

$TTL 86400

@ IN SOA @ root (

42 ; serial (d. adams)

3H ; refresh

15M

; retry

1W ; expiry

1D ) ; minimum

IN NS @

IN A 127.0.0.1

IN AAAA ::1

www IN A 192.168.100.200

mail

IN A 192.168.1.1

配置文件詳解:

$TTL 86400 表示默認的TTL值.(單位:秒)

@ IN SOA @ root (

第一個@表示區域,第二個@表示主機名,SOA是主從認證、授權方面的記錄,root是管理員郵箱,如果管理員郵箱是

root@rhel.com,在這裡可以寫成root,如果寫全就是root.rhel.com,@在這裡表示本機的意思,就以.代替.

SOA的五個參數的含義:

42 // serial,這是一個序列號,主從之間更新的依據.

3H // refresh,更新時間,從伺服器多久主動請求更新一次.

15M // retry,重試時間,當從伺服器更新失敗后,多久再更新.

1W // expiry,失效時間,當從伺服器多長時間沒有成功更新時,就不再更新.

1D // minimum,相當於TTL值.

這幾個參數的大小限制如下:

serial<=2^32=4294967296

refresh>=retry*2

refresh retry<expiry

expiry>=retry*10

expiry>=7 day

IN NS @ //NS記錄,後面跟域名伺服器的名稱.@代表本機.前面的@可以省略.

www IN A 192.168.100.200 //主機記錄.

新建一個反向rhel.com區域:

[root@localhost ~]# vi /var/named/chroot/etc/named.rfc1912.zones

zone "100.168.192.in-addr.arpa" IN {

type master;

file "in-addr.rhel.com.zone";

allow-update { none; };

};

[root@localhost ~]# cd /var/named/chroot/var/named/

[root@localhost named]# cp -p named.local in-addr.rhel.com.zone

[root@localhost named]# vi in-addr.rhel.com.zone

$TTL 86400

@ IN SOA localhost. root.localhost. (

1997022700 ; Serial

28800 ; Refresh

14400 ; Retry

3600000 ; Expire

86400 ) ; Minimum

IN NS localhost.

200 IN PTR www.rhel.com.

1 IN PTR mail.rhel.com

這裡和正向區域的配置基本一樣,只是多了一條PTR記錄.

PTR的格式:前面是對應的IP地址,後面是主機名.

第三步:配置完成,重啟服務.

[root@localhost named]# service named restart

第四步:測試:

windows下:

D:\Users\chenbin>nslookup

默認伺服器: UnKnown

Address: 202.43.150.244

> server 192.168.100.200 //更改DNS伺服器

DNS request timed out.

timeout was 2 seconds.

默認伺服器: [192.168.100.200]

Address: 192.168.100.200

> www.rhel.com

伺服器: [192.168.100.200]

Address: 192.168.100.200

名稱: www.rhel.com

Address: 192.168.100.200

> mail.rhel.com

伺服器: [192.168.100.200]

Address: 192.168.100.200

名稱: mail.rhel.com

Address: 192.168.1.1

已經成功解析.或者這樣測試:nslookup mail.rhel.com.但這樣不能指定DNS伺服器的地址(或者是我不知道而已).

清除DNS緩存:

D:\Users\chenbin>ipconfig /flushdns

Windows IP 配置

已成功刷新 DNS 解析緩存.

linux下:

首先,設置DNS伺服器地址:

[root@linux3 ~]# vi /etc/resolv.conf

nameserver 192.168.100.200 //添加DNS SERVER地址.

使用nslookup測試:

[root@linux3 ~]# nslookup

> mail.rhel.com

Server: 192.168.100.200

Address: 192.168.100.200#53

Name: mail.rhel.com

Address: 192.168.1.1

同樣也可以使用 server命令更改dns地址.

> server 192.168.100.1

Default server: 192.168.100.1

Address: 192.168.100.1#53

使用dig測試:

[root@linux3 ~]# dig mail.rhel.com

; <<>> DiG 9.3.4-P1 <<>> mail.rhel.com

;; global options: printcmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27292

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; QUESTION SECTION:

;mail.rhel.com. IN A

;; ANSWER SECTION:

mail.rhel.com. 86400 IN A 192.168.1.1

;; AUTHORITY SECTION:

rhel.com. 86400 IN NS rhel.com.

;; ADDITIONAL SECTION:

rhel.com. 86400 IN A 127.0.0.1

rhel.com. 86400 IN AAAA ::1

;; Query time: 16 msec

;; SERVER: 192.168.100.200#53(192.168.100.200)

;; WHEN: Wed Apr 7 07:09:28 2010

;; MSG SIZE rcvd: 105

使用host命令:

[root@linux3 ~]# host mail.rhel.com

mail.rhel.com has address 192.168.1.1

[root@linux3 ~]# host 192.168.100.200

200.100.168.192.in-addr.arpa domain name pointer www.rhel.com.

DNS的主輔伺服器配置:

為了不間斷的提供DNS查詢,我們需要兩台以上的

DNS伺服器,如果有多個DNS伺服器,一般只要一台Master DNS,其他的都為Slave DNS伺服器,Slave DNS沒有資料庫,它的資料庫是由Master DNS提供.主、輔伺服器之間必需能夠相互傳送區域文件信息.

第一步:配置主DNS伺服器.

剛才已經配置好了主DNS伺服器,這裡就省略.

第二步:配置輔

DNS伺服器.

安裝軟體:

[root@linux3 ~]# cd /misc/cd/Server/

[root@linux3 Server]# rpm -ivh bind-9.3.4-10.P1.el5.i386.rpm

[root@linux3 Server]# rpm -ivh caching-nameserver-9.3.4-10.P1.el5.i386.rpm

[root@linux3 Server]# rpm -ivh bind-chroot-9.3.4-10.P1.el5.i386.rpm

修改配置文件:

[root@linux3 ~]# vi /var/named/chroot/etc/named.caching-nameserver.conf

listen-on port 53 { 192.168.100.201; }; //修改為本機地址.監聽這個地址的53埠.

allow-query { any; };

match-clients { any; };

match-destinations { any; };

新建區域:

[root@linux3 ~]# vi /var/named/chroot/etc/named.rfc1912.zones

zone "rhel.com" IN {

type Slave; //設為輔伺服器.

file "slaves/rhel.com.zone"; //別忘了前面的slaves.還有後面的

s.

Masters {192.168.100.200;}; //指定主伺服器.

allow-update { none; };

};

zone "100.168.192.in-addr.arpa" IN {

type Slave;

file "slaves/in-addr.rhel.com.zone";

Masters {192.168.100.200;};

allow-update { none; };

};

輔伺服器的區域配置文件是從主伺服器上複製過來的,這裡就不需要區域配置文件了.

重啟服務:

[root@linux3 named]# service named restart

測試:(windows為例)

D:\Users\chenbin>nslookup

默認伺服器: www.rhel.com

Address:

192.168.100.200

> server 192.168.100.201

默認伺服器: [192.168.100.201]

Address: 192.168.100.201

> mail.rhel.com

伺服器: [192.168.100.201]

Address: 192.168.100.201

名稱: mail.rhel.com

Address: 192.168.1.1

DNS轉發伺服器的配置:

使用forward forwarders設置轉發.forward用於指定轉發方式,forwarders用於指定要轉發到的伺服器.轉發方式有兩種,一種是forward first,這是默認轉發方式,當有查詢請求時,首先轉發到forwarders設置的轉發器查詢,如果查詢不到,則再到本地伺服器上查詢;另一種是forward only,當有查詢請求時,只轉發到forwarders設置的轉發器查詢,查詢不到也不在本地查詢.

forwarders後面跟的是要轉發到的伺服器地址,如有多個地址,則用分號隔開.

在所有區域上轉發:

[root@linux3 named]# vi /var/named/chroot/etc/named.caching-nameserver.conf

在選項里添加:

options {

listen-on port 53 { 192.168.100.201; };

listen-on-v6 port 53 { ::1; };

forwarders {192.168.100.200;}; //

如有多個地址用分號隔開.

重啟服務后測試:

> mail.rhel.com

伺服器: [192.168.100.201]

Address: 192.168.100.201

非權威應答: //注意這裡,不是本機查找到的會有這個非權威應答.

名稱

: mail.rhel.com

Address: 192.168.1.1

在單個區域轉發:

新建一個轉發區域:

[root@linux3 named]# vi /var/named/chroot/etc/named.rfc1912.zones

zone "rhel.com"IN{

type forward;

forwarders {192.168.100.200;};

};

重啟服務后測試.

DNS的子域授權配置:

配置主伺服器.

[root@localhost ~]# rpm -ivh /misc/cd/Server/bind-9.3.4-10.P1.el5.i386.rpm

[root@localhost ~]# rpm -ivh /misc/cd/Server/bind-chroot-9.3.4-10.P1.el5.i386.rpm

[root@localhost ~]# rpm -ivh /misc/cd/Server/caching-nameserver-9.3.4-10.P1.el5.i386.rpm

[root@localhost ~]# vi /var/named/chroot/etc/named.caching-nameserver.conf

[root@localhost ~]# vi /var/named/chroot/etc/named.rfc1912.zones

[root@localhost ~]# cd /var/named/chroot/var/named/

[root@localhost named]# cp -p localhost.zone rhel.com.zone

[root@localhost named]# vi rhel.com.zone

添加如下幾行:

xyz IN NS xyz.rhel.com //xyz.rhel.com區域的解析由xyz.rhel.com主機來完成..

xyz IN A 192.168.100.201 //添加主機IP地址.

www IN A 192.168.100.200

mail IN A 192.168.100.1

子域的配置:

[root@linux3 ~]# rpm -ivh /misc/cd/Server/bind-9.3.4-10.P1.el5.i386.rpm

[root@linux3 ~]# rpm -ivh /misc/cd/Server/bind-chroot-9.3.4-10.P1.el5.i386.rpm

[root@linux3 ~]# rpm -ivh /misc/cd/Server/caching-nameserver-9.3.4-10.P1.el5.i386.rpm

[root@linux3 ~]# vi /var/named/chroot/etc/named.caching-nameserver.conf

[root@linux3 ~]# vi /var/named/chroot/etc/named.rfc1912.zones

[root@linux3 ~]# cd /var/named/chroot/var/named/

[root@linux3 named]# cp -p localhost.zone xyz.rhel.com.zone

[root@linux3 named]# vi xyz.rhel.com.zone

www IN A 192.168.100.201

mail IN A 192.168.10.10

添加兩條A記錄.

重啟服務后測試.

DNS常用命令:

ipconfig /flushdns //windows系統下清除DNS緩存.

rndc flush //liunx下清除DNS緩存.

nslookup //可用於在

windowstlinux下測試DNS.

dig //用於在linux下測試DNS.

host //用於在linux下測試DNS.

service named restart //重啟DNS服務.

service named status //查看

DNS狀態.

netstat –ln //查看DNS的埠狀態.

DNS排錯:

一、 如果所有都做正確后,發現不能解析,看是不是防火牆的問題,把防火牆關閉再試試,曾經這個差點放棄了才想起來.

二、

從伺服器的區域文件是放在/var/named/chroot/var/named/slaves目錄下的,在新建區域時,區域文件前要加個slaves,不要忘了後面的s.

三、 要注意寫主機名的時候別忘了後面的.了,這很重要.

四、 如果遇到不能解析時,也許是DNS緩存在做怪.

五、 如果遇到不能解析時,也許是複製區域配置文件時忘了加-p參數了,引起許可權問題.


[火星人 ] LINUX-DNS配置已經有672次圍觀

http://coctec.com/docs/linux/show-post-51004.html