測試環境 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...
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
配置完成,
[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地址
我們還有更先進的測試工具,比如 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 ]
就這麼簡單從服務器在主服務器的域中,記錄已配置好.
下面我們去建立一臺新的服務器,作爲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服務
};
此時從屬於172.16.26.3的dns服務器就已配置好,只需要主服務器通知[或者到了更新的時間點],從服務器的解析數據就能更新了
主DNS服務器172.16.26.3未重讀配置文件時,從服務器的解析數據尚未生成.
此時切換主服務器操作
[root@dn3 etc]# service named reload =>主服務器重讀配置文件,使從服務器工作生效
Reloading named: [ OK ]
經過以上步驟後,重服務器啓動,服務開啓,並在對應配置的工作目錄下,同步了主服務器的解析數據
用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 ==>新添加解析記錄
主服務器沒重讀配置文件是解析不到新添加的記錄的
[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
};
注,此截圖 allow-trandsfer 名單ip後面少個 ";" 這是不對的
主服務器重新讀取配置文件,
我們用ip 172.16.26.2的主機來同步測試一下,發現,確實無法同步主服務器了,但是同步從服務器還是沒問題的
顯然,漏洞依然存在,我們再去堵從服務器的漏洞
修改從服務器配置文件
/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 {}; 通常不允許別人來更改, 只能本地修改
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";
};
從服務器重讀配置文件
主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; };
]
注意,dnssec-enable yes
dbssec-vakudatuib yes
dnssec-lookaside auto 這三項要註釋,否則轉發不成功
在712.16.26.5主機上, 在172.16.26.4上查詢 fftp.robert.com的ip
當然以上的配置,還是不夠靈活,因爲我們只是想內網的域,在指定dns解析.
而真正的外網ip自己解析不了,還是交給外網上的根DNS.那該如何配置呢
將/etc/named.conf文件中,剛纔配置轉發所需要的兩頂配置註釋
將其寫入配置文件 /etc/named.rfc1912.zones中
編輯從服務器172.16.26.4的配置文件 /etc/named.rfc1912.zones
在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轉發給一臺可以與外網交互的主機,應該就能解析了
二者的配置文件修改後,重讀配置文件
在172.16.26.5上運行測試命令
得到結果,得知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 內容如下圖
配置 /var/named/robert.com.172 內容如下圖
配置好之後, 重啓服務, OK, 開始測試
在192.168.1.30的主機上測試
[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的網段測試
[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