dns服務實踐

測試環境 VMware 虛擬機環境, linux平臺centos6.5 ,ip網段172.16.26.1-6

安裝dns服務器提供dns服務

安裝bind (named)

 

測試環境 centos6.5平臺, ip地址172.16.26.3

/etc/named.conf  ==>主要配置文件

options {

    //listen-on port 53 { 127.0.0.1; }; 監聽的端口和地址 只爲自己服務,咋行呢?

    //listen-on-v6 port 53 { ::1; }; IPV6,暫時用不上

    directory   "/var/named"; //dns的工作目錄 解析庫等各種文件要查找的位置

    dump-file   "/var/named/data/cache_dump.db";

    statistics-file "/var/named/data/named_stats.txt";

    memstatistics-file "/var/named/data/named_mem_stats.txt";

    //allow-query     { localhost; };   訪問法則,允許來查詢的主機

recursion yes; //是否允許遞歸    

//dnssec-enable yes;

    //dnssec-validation yes;

    //dnssec-lookaside auto;    /* Path to ISC DLV key */

//bindkeys-file "/etc/named.iscdlv.key"; 

//managed-keys-directory "/var/named/dynamic";

}; logging {

        channel default_debug {

                file "data/named.run";

                severity dynamic;

        };

}; zone "." IN { 根域

    type hint;

    file "named.ca"; 根域在此

}; 

include "/etc/named.rfc1912.zones"; //之後的zone在這裏定義,當然,也可以定義在這裏,不過這個文件太大,不好管理

//include "/etc/named.root.key";

 

named-checkconf 

service named configtest ==>檢查配置文件語法是否正確的兩種方法

service named start  如果啓動不了,說明隨機數沒生成,等會就好了 

/dev/urandom  先返回熵池中的隨機數,如果熵池耗盡軟件算法生成

/dev/random:  只返回熵池中的隨機數

熵池內容耗盡?怎麼辦?又不想等?

改配置腳本文件

/etc/rc.d/init.d/named    

if /usr/sbin/rndc-confgen -a --randomfile=/dev/urandom  &> /dev/null;then ???

 

 

 

 

 

[root@ct3 etc]# service named status

version: 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 版本

CPUs found: 4 ==>cpu信息

worker threads: 4 工作線程

number of zones: 19 區域數

debug level: 0 沒啓動調試級別

xfers running: 0

xfers deferred: 0

soa queries in progress: 0

query logging is OFF 查詢日誌

recursive clients: 0/0/1000 是否有遞歸客戶端

tcp clients: 0/100 tcp客戶端 

server is up and running

named (pid  7020) is running...

wKioL1PnZ5eBJjIoAAFv-i7PzVE599.jpg 

rndc: remote name domain controller 是一個可以讓你遠程控制dns服務的工具 [很危險,一般不允許遠程使用,監聽在本地]

此時DNS只負責緩存效果,不負責具體域名解析,即一個緩存DNS服務器

 

/etc/named.rfc1912.zones =定義各種域的文在/etc/named.conf引入的

其實區域解析配置在/etc/named.conf也可以,只是這樣的話會讓named.conf過大,不太好,所以引入方式配置

 

 

 

/etc/named.rfc1912.zones文件中定義自己要解析的域,如我要解析robert.com加入以下配置行

zone "robert.com" IN {

    type master;

file "robert.com.zone";

file ==>是相對路徑 在此配置/etc/named.conf =>options => directory=> "/var/named";

 

};

 

下面可以定義robert.com.zone 解析庫文件了

/etc/named.conf 文件定義了工作目錄/var/named options => directory】 

必須得在定義的工作目錄下創建

$TTL 3600

[$ORIGIN robert.com.]==>其實默認是有一個這樣的變量在這裏的

@       IN      SOA     ns.robert.com.      admin.robert.com.   (

                        2014080501 =>解析庫版本

                        2H =>週期性性同步時間隔

                        10M =>重試時間間隔

                        3D =>過期時長

                        1D) =>否定答案統一緩存時長

@       IN      NS      ns.robert.com.   =>Dns服務器的FQDN

@       IN      MX  10  mail.robert.com.  =>Mail服務器的FQDN  mail服務的優先級千萬別少了

ns.robert.com.      IN      A        172.16.26.3 各服務器的具體ip地址

mail.robert.com.    IN      A        172.16.26.4    

pop.robert.com.     IN      CNAME   mail.robert.com. pop服務器別名

www.robert.com.    IN      A        172.16.26.5

 

 spacer.gif

 wKiom1PnZpqgQiXyAAKzAra5UKw137.jpg

 

配置完成,

[root@ct3 named]# chgrp named robert.com.zone ==>將文件的屬組更改爲named

[root@ct3 named]# ll

total 32

drwxrwx--- 2 named named 4096 Aug  5 17:19 data

drwxrwx--- 2 named named 4096 Aug  5 20:54 dynamic

-rw-r----- 1 root  named 1892 Feb 18  2008 named.ca

-rw-r----- 1 root  named  152 Dec 15  2009 named.empty

-rw-r----- 1 root  named  152 Jun 21  2007 named.localhost

-rw-r----- 1 root  named  168 Dec 15  2009 named.loopback

-rw-r----- 1 root  named  380 Aug  5 21:32 robert.com.zone

drwxrwx--- 2 named named 4096 Aug 27  2013 slaves

 

vim /etc/resolv.conf  查看裏面的nameserver指向哪? 這時需要指向自己[因爲此時自己是dns服務器]172.16.26.3

當然,我們可以用ping來檢測是否解析成功.很幸運,解析成功了,ping剛纔配置的mail服務器已能成功的解析到它的ip地址

spacer.gif

 wKioL1PnZ8ySP6gIAAE-EaHtC9w674.jpg

我們還有更先進的測試工具,比如 host 

[root@dn3 named]# host -t A ns.robert.com 
ns.robert.com has address 172.16.26.3 
[root@dn3 named]# host -t A www.robert.com 
www.robert.com has address 172.16.26.5 
[root@dn3 named]# host -t A pop.robert.com 
pop.robert.com is an alias for mail.robert.com. 
mail.robert.com has address 172.16.26.4


專用測試工具一

[root@dn3 named]# host -t A pop.robert.com 172.16.26.3    明確的指明用哪臺DNS服務器做解析,會輸出更多的信息
Using domain server:         
Name: 172.16.26.3 
Address: 172.16.26.3#53 
Aliases: 

pop.robert.com is an alias for mail.robert.com.     會明確的告知pop.robert.com是mail.robert.com的別名
mail.robert.com has address 172.16.26.4    而mail.robert.com的ip地址是172.16.26.4

 

[root@dn3 named]# host -t NS robert.com 172.16.26.3    ==>在172.16.26.3上查看robert.com這個域的dns服務器是哪臺

Using domain server:

Name: 172.16.26.3

Address: 172.16.26.3#53

Aliases:
robert.com name server ns.robert.com.

[root@dn3 named]# host -t SOA robert.com 172.16.26.3 還可以查看該域的SOA記錄
Using domain server: 
Name: 172.16.26.3 
Address: 172.16.26.3#53 
Aliases: 

robert.com has SOA record ns.robert.com. admin.robert.com. 2014080501 7200 600 259200 86400 所有的時間單位都轉化爲了秒

 

專用測試工具二

[root@dn3 named]# nslookup     ==>交互式的查看DNS的解析
> server 172.16.26.3     ==>如果不輸入,直接回車,則使用默認的server  /etc/resolv.conf 查看裏面的nameserver
Default server: 172.16.26.3 
Address: 172.16.26.3#53 
> set type=A     ==>設定要查看的資源類型
> www.robert.com     ==>輸入資源名稱,
Server: 172.16.26.3     ==>如有則返回dns服務器ip地址
Address: 172.16.26.3#53     ==>同時返回爲其服務的dns地址入服務端口號

Name: www.robert.com     ==>目的結果

Address: 172.16.26.5     ==>ip地址查找到




專用測試工具三

[root@dn3 named]# dig -t A [email protected]  [不跟@172.16.26.3則使用默認dns服務器]

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> -t A www.robert.com 
;; global options: +cmd 
;; Got answer: 
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2844 
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1         =>報文首部相關信息

                如果有aa則說明是權威迴應  AUTHORITY ANSWER


;; QUESTION SECTION:     ==>查詢問題
;www.robert.com. IN A 

;; ANSWER SECTION:     ==>迴應問題
www.robert.com. 3600 IN A 172.16.26.5 

;; AUTHORITY SECTION:     ==>迴應者
robert.com. 3600 IN NS ns.robert.com.       robert.com域的主DNS是ns.robert.com 

;; ADDITIONAL SECTION:                         主DNS ns.robert.com 的ip
ns.robert.com. 3600 IN A 172.16.26.3 

;; Query time: 2 msec 
;; SERVER: 172.16.26.3#53(172.16.26.3) 
;; WHEN: Tue Aug 5 22:25:07 2014 
;; MSG SIZE rcvd: 81


                        AXFR =>完全區域傳送

[root@dn3 named]# dig -t AXFR robert.com @172.16.26.3 ==>dig還可以查詢AXFR,可將整個域的信息都查詢出來

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> -t AXFR robert.com @172.16.26.3 
;; global options: +cmd 
robert.com. 3600 IN SOA ns.robert.com. admin.robert.com. 2014080501 7200 600 259200 86400 
robert.com. 3600 IN NS ns.robert.com. 
robert.com. 3600 IN MX 10 mail.robert.com. 
ftp.robert.com. 3600 IN A 172.16.26.6 
mail.robert.com. 3600 IN A 172.16.26.4 
ns.robert.com. 3600 IN A 172.16.26.3 
pop.robert.com. 3600 IN CNAME mail.robert.com. 
www.robert.com. 3600 IN A 172.16.26.5 
robert.com. 3600 IN SOA ns.robert.com. admin.robert.com. 2014080501 7200 600 259200 86400 
;; Query time: 2 msec 
;; SERVER: 172.16.26.3#53(172.16.26.3) 
;; WHEN: Tue Aug 5 22:36:24 2014 
;; XFR size: 9 records (messages 1, bytes 234)



dig +trace -t A www.baidu.com  還可以追蹤中間的解析過程


 dig -t NS . 查找根域 [全球13個根節點ip所在]

 dig -t NS . > /var/named/named.ca ==>根節點信息由此命令生成 由此生成是最新的,最權威的



配置反向解析

在主DNS服務器的配置文件/etc/named.rfc1912.zones 中加上一個解析域,內容如下

zone "26.16.172.in-addr.arpa" IN {    =>既然是反向解析,那麼要解析的域是反過來寫, .in-addr.arpa這個是固定用法

 type master;                    =>反向解析主服務器

 file "172.16.26.zone";    =>解析域文件

};

注意 172.16.26.zone 文件的權限一定要刻改

解析域文件 /var/named/172.16.26.zone 內容如下

$TTL 3600 
$ORIGIN 26.16.172.in-addr.arpa.     
@ IN SOA ns.robert.com. admin.robert.com. (    =>此行用法與正向解析用法一致 
2014080502     =>版本號
2H 
10M 
3D 
1D ) 
        IN         NS           ns.robert.com. 
        IN         NS           ns2.robert.com. 
1      IN         PTR         ns2.robert.com     各種反向解析條目
3      IN         PTR         ns.robert.com                         ==>因爲在 /etc/named.rfc1912.zones 中定義的zone就是 26.16.172.in-addr.arpa. 也就是後綴 26.16.172給定好了.
7     IN         PTR          mail.robert.com                             合起來就是 3.26.16.172  因爲反向嘛,自然會反過來 172.16.26.3 反向解析很簡單
5     IN         PTR          www.robert.com 
6     IN         PTR          ftp.robert.com


 


支持查看反向解析zone 

[root@dn3 named]# dig -t AXFR 26.16.172.in-addr.arpa 

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> -t AXFR 26.16.172.in-addr.arpa 
;; global options: +cmd 
26.16.172.in-addr.arpa. 3600 IN SOA ns.robert.com. admin.robert.com. 2014080501 7200 600 259200 86400 
26.16.172.in-addr.arpa. 3600 IN NS ns.robert.com. 
3.26.16.172.in-addr.arpa. 3600 IN PTR ns.robert.com. 
4.26.16.172.in-addr.arpa. 3600 IN PTR mail.robert.com. 
5.26.16.172.in-addr.arpa. 3600 IN PTR www.robert.com. 
6.26.16.172.in-addr.arpa. 3600 IN PTR ftp.robert.com. 
26.16.172.in-addr.arpa. 3600 IN SOA ns.robert.com. admin.robert.com. 2014080501 7200 600 259200 86400 
;; Query time: 1 msec 
;; SERVER: 172.16.26.3#53(172.16.26.3) 
;; WHEN: Tue Aug 5 23:50:58 2014 
;; XFR size: 7 records (messages 1, bytes 222)


[root@dn3 named]# dig -x 172.16.26.6 

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> -x 172.16.26.6 
;; global options: +cmd 
;; Got answer: 
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14716 
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2 

;; QUESTION SECTION: 
;6.26.16.172.in-addr.arpa. IN PTR 

;; ANSWER SECTION: 
6.26.16.172.in-addr.arpa. 3600 IN PTR ftp.robert.com. 

;; AUTHORITY SECTION: 
26.16.172.in-addr.arpa. 3600 IN NS ns2.robert.com.     ==>有兩臺解析主機,它們會輪詢工作
26.16.172.in-addr.arpa. 3600 IN NS ns.robert.com.       ==>有兩臺解析主機,它們會輪詢工作   一主一從

;; ADDITIONAL SECTION: 
ns.robert.com. 3600 IN A 172.16.26.3 
ns2.robert.com. 3600 IN A 172.16.26.1 

;; Query time: 2 msec 
;; SERVER: 172.16.26.3#53(172.16.26.3) 
;; WHEN: Wed Aug 6 16:34:22 2014 
;; MSG SIZE rcvd: 137


主從DNS服務器

在主服務器配置的域(zone)下添加dns記錄,明確標明要新配置一個DNS從服務器節點

[ /var/named/robert.com.zone ]

spacer.gif

wKiom1PnZv_wdhtqAAGMP8KBQ8s017.jpg

就這麼簡單從服務器在主服務器的域中,記錄已配置好.



下面我們去建立一臺新的服務器,作爲172.16.26.3的從DNS服務器


要建立從服務器的IP地址爲172.16.26.1 ==>工作平臺一樣是centos6.5


同樣的,在named服務的配置文件中,要配置服務所屬的域

/etc/named.rfc1912.zones 配置文件

zone "robert.com" IN {                ==>服務的域 robert.com

    type slave;                       =>表明自己是從服務

    file "slaves/robert.com.zone";    =>同步數據存放位置

    masters { 172.16.26.3; };         =>從屬於172.16.26.3服務

};

spacer.gifwKioL1PnaDHiN_82AAB-ywYv098320.jpg

此時從屬於172.16.26.3的dns服務器就已配置好,只需要主服務器通知[或者到了更新的時間點],從服務器的解析數據就能更新了


主DNS服務器172.16.26.3未重讀配置文件時,從服務器的解析數據尚未生成.

spacer.gifwKiom1PnZyyRzHlaAACKR5DYGEA116.jpg


此時切換主服務器操作

[root@dn3 etc]# service named reload     =>主服務器重讀配置文件,使從服務器工作生效
Reloading named: [ OK ]


經過以上步驟後,重服務器啓動,服務開啓,並在對應配置的工作目錄下,同步了主服務器的解析數據

spacer.gif

wKioL1PnaGayeLe2AADcvA72SCk475.jpg

用host測試工具,明確指明由 172.16.26.1從服務器解析mail.robert.com

[root@www slaves]# host -t A mail.robert.com 172.16.26.1 
Using domain server: 
Name: 172.16.26.1         =>服務主機名稱 
Address: 172.16.26.1#53     =>工作ip ,響應端口
Aliases: 

mail.robert.com has address 172.16.26.4    =>得到解析結果




此時如果主服務器的配置文件上再加一條解析紀錄,從服務器能解析得到嗎?我們來測試一下

[ /var/named/robert.com.zone ]

$TTL 3600

$ORIGIN robert.com.

@ IN SOA ns.robert.com. admin.robert.com. (

                        2014080502    =>有變化,版本號更新

                        2H

                        10M

                        3D

                        1D )

@       IN NS ns

        IN NS ns2    ==>從服務器

        IN MX 10 mail

ns IN A 172.16.26.3

ns2 IN A 172.16.26.1

mail IN A 172.16.26.4

pop IN CNAME mail

www IN A 172.16.26.5

ftp IN A 172.16.26.6

web IN A 172.16.26.2    ==>新添加解析記錄

spacer.gifwKioL1PnaKHA6cnOAAGsaUoSV_8204.jpg


主服務器沒重讀配置文件是解析不到新添加的記錄的

[root@dn3 named]# host -t A web.robert.com 
Host web.robert.com not found: 3(NXDOMAIN)

重讀配置文件後測試

[root@dn3 named]# service named reload     =>重讀配置文件
Reloading named: [ OK ] 
[root@dn3 named]# host -t A web.robert.com 
web.robert.com has address 172.16.26.2          ==>測試結果,解析成功


對於172.16.26.1從服務器來說,也是一樣的

主服務器未重讀配置文件時

[root@www named]# host -t A web.robert.com 
Host web.robert.com not found: 3(NXDOMAIN) 解析結果 找不到記錄 

主服務器重讀配置文件後
[root@www named]# host -t A web.robert.com 
web.robert.com has address 172.16.26.2    解析結果ok

這說明主服務器一但有數據更新,並重讀生效後,就會發出通知讓從屬於它工作的從服務器來更新解析數據




同步安全

如果是隨意來一臺主機,想要得到完全域名解析的數據就能隨意得到,太不安全了,我們得對同步數據做訪問限制.

例如,現在我開啓另一臺主機 172.16.26.5 

[root@localhost ~]# dig -t AXFR robert.com @172.16.26.3 用此命令去探測解析庫

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> -t AXFR robert.com @172.16.26.3 
;; global options: +cmd 
robert.com. 3600 IN SOA ns.robert.com. admin.robert.com. 2014080503 7200 600 259200 86400 
robert.com. 3600 IN NS ns.robert.com. 
robert.com. 3600 IN NS ns2.robert.com. 
robert.com. 3600 IN MX 10 mail.robert.com. 
ftp.robert.com. 3600 IN A 172.16.26.6 
mail.robert.com. 3600 IN A 172.16.26.4 
ns.robert.com. 3600 IN A 172.16.26.3 
ns2.robert.com. 3600 IN A 172.16.26.1 
pop.robert.com. 3600 IN CNAME mail.robert.com. 
web.robert.com. 3600 IN A 172.16.26.2 
www.robert.com. 3600 IN A 172.16.26.5 
robert.com. 3600 IN SOA ns.robert.com. admin.robert.com. 2014080503 7200 600 259200 86400 
;; Query time: 15 msec 
;; SERVER: 172.16.26.3#53(172.16.26.3) 
;; WHEN: Wed Aug 6 11:36:14 2014 
;; XFR size: 12 records (messages 1, bytes 288)     ==>結果暢通無阻,所有結果返回

顯然出於安全考慮,不能這麼做, 下面來談談dns同步解析數據的安全策略

編輯主服務器的配置文件 /etc/named.rfc1912.zones

zone "robert.com" IN {

    type master;

    file "robert.com.zone";

    allow-transfer { 172.16.26.1; };    ==>允許來同步的ip

};


spacer.gifwKiom1PnZ8WjUOfwAACMRDdJLws209.jpg注,此截圖 allow-trandsfer 名單ip後面少個 ";" 這是不對的

主服務器重新讀取配置文件,


我們用ip 172.16.26.2的主機來同步測試一下,發現,確實無法同步主服務器了,但是同步從服務器還是沒問題的

spacer.gifwKioL1PnaPnCrHaoAAWcE3y1hQY328.jpg

顯然,漏洞依然存在,我們再去堵從服務器的漏洞

修改從服務器配置文件

/etc/named.rfc1912.zones

zone "robert.com" IN {

    type slave;

    file "slaves/robert.com.zone";

    masters { 172.16.26.3; };

    allow-transfer { none; };    ==>在從服務器的白名單列表,明確標識,none; 不允許任何人來同步

};

注,除了同步,還有其它的訪問控制

 

   allow-transfer {};

   allow-query {};    允許查詢[這個一般是都允許查的,可以是取反 例 !172.16.26.8 除了這個ip都能來查詢

   allow-update {};    通常不允許別人來更改, 只能本地修改

wKiom1PnaAXQjgi0AADSH_srbjw679.jpg

spacer.gif allow-update 設置爲 none; 這樣比較安全,不允許任何人更新解析庫





子域授權

在主DNS服務器上,域配置文件中,要給予授權


ops         IN        NS    ns.ops            ==>指定授權給ns的子域 ops

ns.ops      IN        A     172.16.26.4    ==>ns.ops的具體ip地址

/var/named/robert.com.zone

$TTL 3600

$ORIGIN robert.com.

@ IN SOA ns.robert.com. admin.robert.com. (

                        2014080503

                        2H

                        10M

                        3D

                        1D )

@ IN NS ns

        IN NS ns2

        IN MX 10 mail

ns IN A 172.16.26.3

ns2 IN A 172.16.26.1

mail IN A 172.16.26.4

pop IN CNAME mail

www IN A 172.16.26.5

ftp IN A 172.16.26.6

web IN A 172.16.26.2  


ops IN NS ns.ops        ==>加上授權紀錄

ns.ops IN A 172.16.26.4    =>明確子域授權紀錄的ip地址 

授權完成,要重讀主DNS的配置文件[172.16.26.3 上 service named reload ]


子域 172.16.26.4的操作

在配置文件 /etc/named.rfc1912.zones  中,添加子域解析域 

zone "ops.robert.com" IN {

        type master;

        file "ops.robert.com.zone";    對應的配置文件名

        allow-update { none; };        不允許任何人更新

        allow-transfer { 172.16.26.4; }; =>只允許自己同步

};

創建配置文件, 並修改其屬主爲root     並添加內容如下

/var/named/ops.robert.com.zone

$TTL 3600

$ORIGIN ops.robert.com.

@ IN SOA ns.ops.robert.com. admin.ops.robert.com. (

                        2014080601

                        2H

                        10M

                        3D

                        1D )

@      IN     NS        ns    

       IN     MX 10     mail

ns     IN     A         172.16.26.4

mail   IN     A         192.168.1.10

pop    IN     CNAME     mail

www    IN     A         192.168.1.11

ftp    IN     A         192.168.1.12

此時啓動[或者重讀配置文件]ok

在172.16.26.5上測試子域DNS服務器解析工作是否OK

[root@localhost ~]# dig -t A ns.ops.robert.com @172.16.26.4 

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> -t A ns.ops.robert.com @172.16.26.4 
;; global options: +cmd 
;; Got answer: 
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51087 
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0  ==>有aa 權威迴應

;; QUESTION SECTION: 
;ns.ops.robert.com. IN A 

;; ANSWER SECTION: 
ns.ops.robert.com. 3600 IN A 172.16.26.4     ==>得到結果 要查詢的ns.ops.robert.com ip 是  172.16.26.4

;; AUTHORITY SECTION: 
ops.robert.com. 3600 IN NS ns.ops.robert.com. 

;; Query time: 3 msec 
;; SERVER: 172.16.26.4#53(172.16.26.4) 
;; WHEN: Wed Aug 6 17:57:14 2014 
;; MSG SIZE rcvd: 65



如果子域的dns服務器查找不到所要查詢的fqnd,那麼默認的子域會轉發給根服務器,就轉發到外網去了. 

如果我們要建立的是公司內部使用的dns服務器,不需要轉發到外網,只在內部使用,怎麼處理呢?


我們可以配置子域服務器的配置文件 172.16.26.4 /etc/named.conf 讓其實現轉發功能

options {

// listen-on port 53 { 127.0.0.1; };

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

        directory "/var/named";

        dump-file "/var/named/data/cache_dump.db";

        statistics-file "/var/named/data/named_stats.txt";

        memstatistics-file "/var/named/data/named_mem_stats.txt";

// allow-query { localhost; };

        recursion yes;

        forward only;    =>轉發選項

        forwarders { 172.16.26.3; };    =>轉發的ip 轉發給172.16.26.3,交給它幫找

        dnssec-enable yes;

        dnssec-validation yes;

        dnssec-lookaside auto;  

        /* Path to ISC DLV key */

        bindkeys-file "/etc/named.iscdlv.key";  

        managed-keys-directory "/var/named/dynamic";

};

spacer.gif

wKiom1PnaDKSHb-uAAMIcklzaFY515.jpg

從服務器重讀配置文件


主DNS上的配置 

==>[注意, allow-recursion內可以放置acl,  內置的ACL有: none, any, local(本機), localnet(本機所在網絡)

 如果要允許遞歸的主機很多,內置的acl又不合用,可以手動定義一個acl 

在options外定義

mynetwork { 172.16.26.1;172.16.26.2;172.16.26.4;172.16.26.5; }

在options內的 allow-recursion內寫 

allow-recursion { mynetwork; };

]

spacer.gifwKiom1PnaHPg6B5iAALVcl0HsKM197.jpg

注意,dnssec-enable yes

        dbssec-vakudatuib yes

        dnssec-lookaside auto  這三項要註釋,否則轉發不成功


在712.16.26.5主機上, 在172.16.26.4上查詢 fftp.robert.com的ip 

spacer.gif

wKiom1PnaIficyE8AAPQJ99etd8838.jpg


當然以上的配置,還是不夠靈活,因爲我們只是想內網的域,在指定dns解析.

而真正的外網ip自己解析不了,還是交給外網上的根DNS.那該如何配置呢


將/etc/named.conf文件中,剛纔配置轉發所需要的兩頂配置註釋

spacer.gifwKiom1PnaN6z8JW3AAILtBEdv7o120.jpg

將其寫入配置文件 /etc/named.rfc1912.zones中

編輯從服務器172.16.26.4的配置文件 /etc/named.rfc1912.zones 

spacer.gifwKioL1PnagezH6ISAACrus4IoaQ109.jpg


在172.16.26.5上測試 使用172.16.26.4解析

[root@localhost ~]# dig -t A fftp.robert.com @172.16.26.4 

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> -t A fftp.robert.com @172.16.26.4 
;; global options: +cmd 
;; connection timed out; no servers could be reached 
[root@localhost ~]# dig -t A fftp.robert.com @172.16.26.4 

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> -t A fftp.robert.com @172.16.26.4 
;; global options: +cmd 
;; Got answer: 
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60600 
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2 

;; QUESTION SECTION: 
;fftp.robert.com. IN A 

;; ANSWER SECTION: 
fftp.robert.com. 3600 IN A 172.16.26.6     ==>得到結果,OK!

;; AUTHORITY SECTION: 
robert.com. 3600 IN NS ns2.robert.com. 
robert.com. 3600 IN NS ns.robert.com. 

;; ADDITIONAL SECTION: 
ns2.robert.com. 3600 IN A 172.16.26.1 
ns.robert.com. 3600 IN A 172.16.26.3 

;; Query time: 11 msec 
;; SERVER: 172.16.26.4#53(172.16.26.4) 
;; WHEN: Wed Aug 6 21:04:18 2014 
;; MSG SIZE rcvd: 116



如果172.16.26.4要來查一個互聯網上的地址, 而172.16.26.4是沒辦法解析的,轉發給172.16.26.3, 而3也發現自己沒法解析,如果這時再配置3轉發給一臺可以與外網交互的主機,應該就能解析了

spacer.gif

wKiom1PnaQbgtTgJAAHUHYe9TTo882.jpg

wKioL1Pnah-h-lebAAIYoDweqOo502.jpg

spacer.gif

二者的配置文件修改後,重讀配置文件

在172.16.26.5上運行測試命令

spacer.gifwKiom1PnaSLSDP_SAAKTdWKvwOk518.jpg

得到結果,得知www.baidu.com是 www.a.shifen.com的正式名稱 ip地址有兩個 61.135.169.105/125



以上配置的dns服務主從服務器一般是輪詢工作的,如果我們想實現相應的主機來查詢就讓對應的服務器響應解析

那要如何實現呢?這就涉及到了一個dns解析中一個視圖的概念.


我們在DNS主服務器[172.16.26.3]上,開始配置

[root@dn3 named]# vim /etc/named.rfc1912.zones

我們可以定義兩個視圖


view main172 {

    match-clients { 172.16.0.0/16;127.0.0.1; };    ==>如果是176.16.0.0網段的客戶端來訪問,就使用這個視圖裏的

    zone "robert.com" IN {

        type master;

        file "robert.com.172";        使用robert.com.172 

        allow-transfer { 172.16.26.1;172.16.26.3; };       允許的的轉發 , , , , ,

        allow-update { none; };                                    不允許其它主機更新

    };

};


view no172 {    

    match-clients { any; };    

    zone "robert.com" IN {    

        type master;                  允許

        file "robert.com.other";      使用的文件

    };    

};    

配置 /var/named/robert.com.other 內容如下圖

spacer.gif

wKioL1PnalWx0BP6AAGkymBBFf0618.jpg

配置 /var/named/robert.com.172 內容如下圖

wKiom1PnaTzgDQZcAAG1hdUtXt0286.jpg


spacer.gif

配置好之後, 重啓服務, OK, 開始測試


在192.168.1.30的主機上測試

spacer.gifwKioL1PnanaxErDzAAJbm7uYAjI878.jpg

[root@ca2 network-scripts]# dig -t A fftp.robert.com @172.16.26.3 

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> -t A fftp.robert.com @172.16.26.3 
;; global options: +cmd 
;; Got answer: 
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54942 
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2 
;; WARNING: recursion requested but not available 

;; QUESTION SECTION: 
;fftp.robert.com. IN A 

;; ANSWER SECTION: 
fftp.robert.com. 3600 IN A 172.16.26.16     ==>得到測試結果 172.16.26.16 ok和 robert.com.other  配置文件中的內容一樣

;; AUTHORITY SECTION: 
robert.com. 3600 IN NS ns.robert.com. 
robert.com. 3600 IN NS ns2.robert.com. 

;; ADDITIONAL SECTION: 
ns.robert.com. 3600 IN A 172.16.26.3 
ns2.robert.com. 3600 IN A 172.16.26.1 

;; Query time: 4 msec 
;; SERVER: 172.16.26.3#53(172.16.26.3) 
;; WHEN: Thu Aug 7 00:02:58 2014 
;; MSG SIZE rcvd: 116



在172的網段測試  

spacer.gifwKiom1PnaWvQDqJ-AAI63t-37Hs730.jpg

[root@localhost ~]# dig -t A fftp.robert.com @172.16.26.3 

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> -t A fftp.robert.com @172.16.26.3 
;; global options: +cmd 
;; Got answer: 
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61171 
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2 

;; QUESTION SECTION: 
;fftp.robert.com. IN A 

;; ANSWER SECTION: 
fftp.robert.com. 3600 IN A 172.16.26.6  =>得到結果,果然是 robert.com.172的配置內容

;; AUTHORITY SECTION: 
robert.com. 3600 IN NS ns2.robert.com. 
robert.com. 3600 IN NS ns.robert.com. 

;; ADDITIONAL SECTION: 
ns.robert.com. 3600 IN A 172.16.26.3 
ns2.robert.com. 3600 IN A 172.16.26.1 

;; Query time: 5 msec 
;; SERVER: 172.16.26.3#53(172.16.26.3) 
;; WHEN: Mon Aug 4 15:56:09 2014 
;; MSG SIZE rcvd: 116 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章