Centos 7 DNS配置及理論詳解

DNS是什么及BIND講解內容

域名系統(英文:Domain Name System,縮寫:DNS)是internet的一項服務。它作為將域名和IP地址相互映射服務,能夠使人更方便地訪問互聯網。DNS使用TCP和UDP端口53。當前,對于每一級域名長度的限制是63個字符,域名總長度則不能超過253個字符。
講解內容:
    DNS名稱解析方式
    DNS查詢類型
    DNS服務器類型
    區域數據庫文件詳解
    Centos7安裝配置BIND
    BIND主從服務器配置
    BIND安全相關配置
    BIND view視圖配置

一、DNS名稱解析方式

DNS名稱解析方式分為兩種:

    名稱 —> IP   

例如:此處命令會在后面工具中具體詳解

      # 可以看出“名稱”www.magedu.com對應的ip是101.200.188.230

# dig -t A www.magedu.com
 
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -t A www.magedu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17179
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 10
 
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.magedu.com.INA
 
;; ANSWER SECTION:
www.magedu.com.589INA101.200.188.230
 
;; AUTHORITY SECTION:
magedu.com.159640INNSv2s1.xundns.com.
magedu.com.159640INNSv2s2.xundns.com.

例如:此處命令會在后面工具中具體詳解

      # 可以看出“IP"172.16.0.1對應的名稱是server.mageliunx.com.

    IP   —> 名稱

# dig -x 172.16.0.1
 
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -x 172.16.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1126
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
 
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;1.0.16.172.in-addr.arpa.INPTR
 
;; ANSWER SECTION:
1.0.16.172.in-addr.arpa. 86400INPTRserver.magelinux.com.
 
;; AUTHORITY SECTION:
16.172.in-addr.arpa.86400INNSserver.magelinux.com.
 
;; ADDITIONAL SECTION:
server.magelinux.com.86400INA172.16.0.1
 
;; Query time: 2 msec
;; SERVER: 172.18.0.1#53(172.18.0.1)
;; WHEN: Fri Apr 08 21:47:00 CST 2016
;; MSG SIZE  rcvd: 116

二、DNS查詢類型

DNS查詢類型分為:
              遞歸查詢     
              迭代查詢
下圖是本人對dns查詢過程的理解

spacer.gifdns2_看圖王.png

三、DNS服務器類型

主DNS服務器:維護所負責解析的域數據庫的那臺服務器:讀寫操作均可進行;

從DNS服務器:從主DNS服務器那里或其他的從DNS服務器那里“復制”一份解析庫;但只能進行讀操作
    “復制”操作的實施方式
           序列號:serial,也即是數據庫版本號;主服務器數據庫內容發生變化時,其版本號遞增;
           刷新時間間隔:refresh,從服務器每多久到從服務器檢查序列號更新情況;
           重試時間間隔:retry,從服務器從主服務器請求同步解析失敗時,再次發起請求嘗試的時間間隔
           過期時長:expire,從服務器始終聯系不到主服務器時,多久之后放棄主服務器同步;停止提供服務。
           否定答案的緩存時長:緩存錯誤的地址的時間

此內容在BIND中的區域文件中配置

例如:

$TTL 33600
 
@       IN      SOA     ns1.magedu.com. admin.magedu.com. (
                2016040801 ;seria
                2H         ;refresh
                10M        ;retry
                1W         ;expire
                1D         ;negative answer ttl
)

四、區域數據庫文件詳解

區域文件一般存于/var/named/下,以ZONE_NAME.zone命名,其中包含了很多參數。
    資源記錄:Resource Record,簡稱rr
      記錄類型有:A,AAAA,PTR,SOA,NS,CNAME,MX
      語法:
        name  [TTL]  IN    RR_TYPE     value
    
SOA:Start Of Authority,其實授權記錄()額區域解析庫有且只能有一個SOA記錄,而且必須放在第一條
    NS:Name Service,域名服務記錄;一個區域解析庫可以有多個NS記錄;其中一個為主的
    A:Address,地址記錄,FQDN –> IPV4
    AAAA:
地址記錄, FQDN –> IPv6
    CNAME:Canonical Name,別名記錄
    PTR:Pointer,反向指針記錄:IP –> FQDN
        MX:Mail eXchanger,郵件交換器
      優先級:0-99,數字越小優先級越高

使用方法及格式:

 SOA:

name: 當前區域的名字;例如”mageud.com.”,或者“2.3.4.in-addr.arpa.”;

value:有多部分組成

(1) 當前區域的區域名稱(也可以使用主DNS服務器名稱);

(2) 當前區域管理員的郵箱地址;但地址中不能使用@符號,一般使用點號來替代;

(3) (主從服務協調屬性的定義以及否定答案的TTL)

例如:

$TTL 33600
 
@       IN      SOA     ns1.magedu.com. admin.magedu.com. (
                2016040801 ;seria
                2H         ;refresh
                10M        ;retry
                1W         ;expire
                1D         ;negative answer ttl
)

  NS:

name:當前區域的區域名稱

value:當前區域的某DNS服務器的名字,例如ns.magedu.com.

    注意:一個區域可以有多個ns記錄

    例如:

        zhaoxin.com.    86400    IN    NS    ns1.zhaoxin.com.

        zhaoxin.com.    86400    IN    NS    ns2.zhaoxin.com.

 MX:

name: 當前區域的區域名稱

value:當前區域某郵件交換器的主機名;

    注意:MX記錄可以有多個;但每個記錄的value之前應該有一個數字表示其優先級;

    例如:

zhaoxin.com. IN MX 10  mx1.zhaoxin.com.

zhaoxin.com. IN MX 20  mx2.zhaoxin.com.

 A:

name:某FQDN,例如www.maged.com.

value:某IPV4地址

    例如:

        www.zhaoxin.com.    IN    A     222.145.33.26

        www.zhaoxin.com.    IN    A     222.145.33.26

 AAAA:

name:FQDN

value:IPV6

 PTR:

name:IP地址,有特定格式,IP反過來寫,而且加特定后綴:例如172.16.100.10應該寫為10.100.16.172.in-addr.arpa

value:FQDN

    例如:

        10.100.16.172.in-addr.arpa    IN    PTR    www.zhaoxin.com.

CNAME:

name:FQDN格式的別名;

value:FQDN格式的正式名字;

    例如:

        web.zhaoxin.com.    IN    CNAME    www.zhaoxin.com. 

有以下幾點需要注意:

    (1) TTL可以從全局繼承;

    (2) @表示當前區域的名稱;

    (3) 相鄰的兩條記錄其name相同時,后面的可省略;

    (4) 對于正向區域來說,各MX,NS等類型的記錄的value為FQDN,此FQDN應該有一個A記錄;

五、Centos 7安裝配置BIND

主配置文件

介紹配置文件之前先介紹一下BIND

BIND: Berkeley Internet Name Domain(由伯克利學校開發)

    dns:協議

    bind:dns協議的一種實現

    named:bind程序運行的進程名

程序包組成:

    bind-libs:被bind和bind-utils包中的程序共同用到的庫文件;

    bind-utils:bind客戶端程序集,例如dig, host, nslookup等;

        bind:提供的dns server程序、以及幾個常用的測試程序;

    bind-chroot:選裝,讓named運行于jail模式下;

centos 7 bind配置文件:

    主配置文件:/etc/named.conf

        或包含進來其他文件

            /etc/named.iscdly.key

            /etc/named.rfc1912.zones

            /etc/named.root.key

centos 7中一般配置區域在/etc/rfc1912.zones,全局配置在/etc/named.conf中

    1、主配置文件格式:

        全局配置段

            options { … } # 注意內容前后有空格

        日志配置端

            logging { … }

        區域配置端

            zone { … }

                配置那些由本機負責解析的區域,或轉發的區域

                注意:每個語句必須以分號結尾

     2、緩存名稱服務器的配置:(注意此處的配置應該在使用前操作) 

            監聽能與外部主機通信的地址

                listen-on port 53 { 172.18.4.1; };

            學習時,建議關閉dnssec

                dnssec-enable no;

                dnssec-validation no;

                dnssec-lookaside no;

            關閉僅允許本地查詢

                //allow-query { localhost; }; 單行注釋用“//”

解析庫文件

/var/named/目錄下:

    一般名字為:ZONE_NAME.zone

                例如:magedu.com.zone

                      172.16.100.zone

    注意:

        1、一臺DNS服務器可同時為多個區域提供解析

        2、必須要有跟區域解析庫文件:named.ca

        3、還應該有兩個區域解析庫文件:localhost和127.0.0.1的正反向解析庫

            正向:named.localhost

            反向:named.loopback

檢查配置文件語法錯誤

named-checkconf [/etc/named.conf]

named-checkzone ZONE_NAME ZONE_FILE

# named-checkzone magedu.com. magedu.com.zone 
zone magedu.com/IN: loaded serial 2016040801
OK
# named-checkconf /etc/named.conf 
#

測試及管理工具

dig命令:

    語法:dig  [-t RR_TYPE]  name  [@SERVER]  [query options]

# dig -t A ns1.magedu.com @172.18.250.108
 
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -t A ns1.magedu.com @172.18.250.108
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6933
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
 
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ns1.magedu.com.INA
 
;; ANSWER SECTION:
ns1.magedu.com.33600INA172.18.250.108
 
;; AUTHORITY SECTION:
magedu.com.33600INNSns2.magedu.com.
magedu.com.33600INNSns1.magedu.com.
 
;; ADDITIONAL SECTION:
ns2.magedu.com.33600INA172.18.250.108
 
;; Query time: 0 msec
;; SERVER: 172.18.250.108#53(172.18.250.108)
;; WHEN: Sat Apr 09 13:54:42 CST 2016
;; MSG SIZE  rcvd: 107

    作用:用于測試dns系統,因此其不會查詢hosts文件

    查詢選項:

        +[no]trace:跟蹤解析過程

        +[no]recurse:進行遞歸解析

dig.gif

    反向解析:

        dig -x IP

# dig -x 202.106.0.20
 
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -x 202.106.0.20
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47349
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
 
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;20.0.106.202.in-addr.arpa.INPTR
 
;; ANSWER SECTION:
20.0.106.202.in-addr.arpa. 5181INPTRgjjline.bta.net.cn.
 
;; AUTHORITY SECTION:
106.202.in-addr.arpa.5179INNSns.bta.net.cn.
106.202.in-addr.arpa.5179INNSns2.bta.net.cn.
 
;; ADDITIONAL SECTION:
ns.bta.net.cn.74848INA202.96.0.133
ns2.bta.net.cn.74848INA202.106.196.28
 
;; Query time: 3 msec
;; SERVER: 172.18.0.1#53(172.18.0.1)
;; WHEN: Sat Apr 09 14:01:22 CST 2016
;; MSG SIZE  rcvd: 153

    模擬完全區域傳送:

        dig -t axfr DOMAIN [@server]

# dig -t axfr magedu.com. @172.18.250.108
 
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t axfr magedu.com. @172.18.250.108
;; global options: +cmd
magedu.com.33600INSOAns1.magedu.com. admin.magedu.com. 2016040801 7200 600 604800 86400
magedu.com.33600INNSns1.magedu.com.
magedu.com.33600INNSns2.magedu.com.
magedu.com.33600INMX10 mx1.magedu.com.
magedu.com.33600INMX15 mx2.magedu.com.
mx1.magedu.com.33600INA172.18.250.111
mx2.magedu.com.33600INA172.18.250.112
ns1.magedu.com.33600INA172.18.250.108
ns2.magedu.com.33600INA172.18.250.108
www.magedu.com.33600INA172.18.250.108
magedu.com.33600INSOAns1.magedu.com. admin.magedu.com. 2016040801 7200 600 604800 86400
;; Query time: 3 msec
;; SERVER: 172.18.250.108#53(172.18.250.108)
;; WHEN: Sat Apr 09 14:01:58 CST 2016
;; XFR size: 11 records (messages 1, bytes 266)

host命令:

    host [-t RR_TYPE] name SERVER_IP

# host 172.16.0.1
1.0.16.172.in-addr.arpa domain name pointer server.magelinux.com.
# host -t A www.magedu.com
www.magedu.com has address 101.200.188.230

nslookup命令:

    nslookup  [-options]  [name]  [server]

# nslookup www.magedu.com
Server:172.18.0.1
Address:172.18.0.1#53
 
Non-authoritative answer:
Name:www.magedu.com
Address: 101.200.188.230

rndc命令:named服務控制命令

# rndc status
version: 9.9.4-RedHat-9.9.4-29.el7 <id:8f9657aa>
CPUs found: 1
worker threads: 1
UDP listeners per interface: 1
number of zones: 102
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
server is up and running
# rndc flush
# rndc reload
server reload successful

配置一個正向區域

以zhaoxin.com域為例:

1、定義區域

    在主配置文件中或主配置文件輔助配置文件中實現;

# vim /etc/named.rfc1912.zones 
    zone "zhaoxin.com" IN {
        type master;
        file "zhaoxin.com.zone";
};

    # 注意:區域名字即為域名

2、建立區域數據文件(主要記錄為A或AAAA記錄等)

    在/var/named目錄下建立區域數據文件

        文件為:/var/named/zhaoxin.com.zone

$TTL 33600
$ORIGIN zhaoxin.com.
 
@       IN      SOA     ns1.zhaoxin.com.        admin.zhaoxin.com. (
                2016040801
                2H
                10M
                1W
                1D )
 
        IN      NS      ns1
        IN      NS      ns2
        IN      MX   10 mx1
        IN      MX   15 mx2
mx1     IN      A       172.18.250.111
mx2     IN      A       172.18.250.112
ns1     IN      A       172.18.250.108
ns2     IN      A       172.18.250.108
www     IN      A       172.18.250.108
# named-checkzone zhaoxin.com zhaoxin.com.zone 
zone zhaoxin.com/IN: loaded serial 2016040801
OK
# named-checkconf

3、檢查配置文件及區域配置文件,修改屬組和權限

# chgrp named /var/named/zhaoxin.com.zone    
# chmod o= /var/named/zhaoxin.com.zone
# ll /var/named/zhaoxin.com.zone
-rw-r----- 1 root named 293 Apr  9 14:15 /var/named/zhaoxin.com.zone

4、讓服務器重載配置文件和區域數據文件:

    # rndc reload 或者

    # systemctl reload named.service

# rndc reload
server reload successful
# ss -tnl|grep 53
LISTEN     0      10     172.18.250.108:53                       *:*                              
LISTEN     0      128    127.0.0.1:953                      *:*                  
LISTEN     0      128        ::1:953                     :::*

5、驗證

# 注意:此處的172.18.250.108是我本機ip,可以再/etc/resolv.conf中修改dns地址后就可以省略次ip;

# dig -t A www.zhaoxin.com @172.18.250.108
 
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -t A www.zhaoxin.com @172.18.250.108
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39443
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
 
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.zhaoxin.com.INA
 
;; ANSWER SECTION:
www.zhaoxin.com.33600INA172.18.250.108
 
;; AUTHORITY SECTION:
zhaoxin.com.33600INNSns2.zhaoxin.com.
zhaoxin.com.33600INNSns1.zhaoxin.com.
 
;; ADDITIONAL SECTION:
ns1.zhaoxin.com.33600INA172.18.250.108
ns2.zhaoxin.com.33600INA172.18.250.108
 
;; Query time: 2 msec
;; SERVER: 172.18.250.108#53(172.18.250.108)
;; WHEN: Sat Apr 09 14:24:01 CST 2016
;; MSG SIZE  rcvd: 128

配置一個反向區域

1、定義區域

    在主配置文件中或主配置文件輔助配置文件中實現;

# vim /etc/named.rfc1912.zones
zone "250.18.172.in-addr.arpa" IN {
        type master;
        file "172.18.250.zone";
};

    # 注意:反向區域的名字

2、建立區域數據文件(主要記錄為PTR)

    在/var/named目錄下建立區域數據文件

        文件為:/var/named/172.18.250.zone

# vim /var/named/172.18.250.zone
$TTL 3600
$ORIGIN 250.18.172.in-addr.arpa.
@       IN      SOA     ns1.zhaoxin.com.        admin.zhaoxin.com. (
                2016010501
                1H
                10M
                3D
                12H )
        IN      NS      ns1.zhaoxin.com.
108     IN      PTR     ns1.zhaoxin.com.
111     IN      PTR     mx1.zhaoxin.com.
112     IN      PTR     mx2.zhaoxin.com.
108     IN      PTR     www.zhaoxin.com.

3、檢查配置文件及區域配置文件,修改屬組和權限

# named-checkconf 
# named-checkzone 250.18.172.in-addr.arpa 172.18.250.zone 
zone 250.18.172.in-addr.arpa/IN: loaded serial 2016010501
OK

4、讓服務器重載配置文件和區域數據文件:

    # rndc reload 或者

    # systemctl reload named.service

# rndc reload
server reload successful
# ss -tnl|grep 53
LISTEN     0      10     172.18.250.108:53                       *:*                              
LISTEN     0      128    127.0.0.1:953                      *:*                  
LISTEN     0      128        ::1:953                     :::*

5、驗證

# 注意:此處的172.18.250.108是我本機ip,可以再/etc/resolv.conf中修改dns地址后就可以省略次ip;

# dig -x 172.18.250.108 @172.18.250.108
 
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -x 172.18.250.108 @172.18.250.108
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52168
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2
 
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;108.250.18.172.in-addr.arpa.INPTR
 
;; ANSWER SECTION:
108.250.18.172.in-addr.arpa. 3600 INPTRns1.zhaoxin.com.
108.250.18.172.in-addr.arpa. 3600 INPTRwww.zhaoxin.com.
 
;; AUTHORITY SECTION:
250.18.172.in-addr.arpa. 3600INNSns1.zhaoxin.com.
 
;; ADDITIONAL SECTION:
ns1.zhaoxin.com.33600INA172.18.250.108
 
;; Query time: 0 msec
;; SERVER: 172.18.250.108#53(172.18.250.108)
;; WHEN: Sat Apr 09 14:33:29 CST 2016
;; MSG SIZE  rcvd: 133

六、BIND主從服務器

注意:從服務器是區域級別的概念

主區域配置:可以參照上面的正向區域配置和反向區域配置

 配置一個從區域:

On Master配置

注意:

    a、確保區域數據文件中為每個從服務配置NS記錄,并且在正向區域文件需要每個從服務器的NS記錄的主機名配置一個A記錄,且此A后面的地址為真正的從服務器的IP地址

    b、時間要同步

        ntpdate命令

1、添加從dns服務器地址

# vim /var/named/zhaoxin.com.zone 
$TTL 33600
$ORIGIN zhaoxin.com.
 
@ INSOAns1.zhaoxin.com.admin.zhaoxin.com. (
2016040801
2H
10M
1W
1D )
 
INNSns1
IN NSns2
INMX   10 mx1
INMX   15 mx2
 
ns1INA172.18.250.108
ns2INA172.18.250.28  
 
mx1INA172.18.250.111
mx2INA172.18.250.112
wwwINA172.18.250.108

# vim /var/named/172.18.250.zone 
# cat /var/named/172.18.250.zone
$TTL 3600
$ORIGIN	250.18.172.in-addr.arpa.
@	IN	SOA	ns1.zhaoxin.com.	admin.zhaoxin.com. (
		2016010501
		1H
		10M
		3D
		12H )
	IN	NS	ns1.zhaoxin.com.
	IN	NS	ns2.zhaoxin.com.
108	IN	PTR	ns1.zhaoxin.com.
28	IN	PTR	ns2.zhaoxin.com.

111	IN	PTR	mx1.zhaoxin.com.
112	IN	PTR	mx2.zhaoxin.com.
108	IN	PTR	www.zhaoxin.com.

2、同步時間

# 我本地有時間服務器,如果沒有時間服務器的可以去網絡上搜一下,保證兩臺服務器時間一直就好

# ntpdate 172.18.0.19 
Apr 15:00:52 ntpdate[3721]: step time server 172.18.0.1 offset -5.768812 sec

3、重載配置

# rndc reload
server reload successful

On Slav配置

1、定義區域

# vim /etc/named.rfc1912.zones 
zone "zhaoxin.com" IN {
        type slave;
        file "slaves/zhaoxin.com.zone";
        masters { 172.18.250.108; };
};
zone "250.18.172.in-addr.arpa" IN {
        type slave;
        file "slaves/172.18.250.zone";
        masters { 172.18.250.108; };
};

2、同步時間并修改配置文件

# ntpdate 172.18.0.1
 9 Apr 15:11:57 ntpdate[1772]: step time server 172.18.0.1 offset -5.583571 sec
# vim /etc/named.conf 
listen-on port 53 { 172.18.250.28; };

3、重載配置

# rndc reload
server reload successful
# ll /var/named/slaves/
total 8
-rw-r--r-- 1 named named 500 Apr  9 15:09 172.18.250.zone
-rw-r--r-- 1 named named 476 Apr  9 15:09 zhaoxin.com.zone

# 此處可以看到,文件已經同步過來,下面進行測試

# 注意,在Centos 7中同步數據是加密的,所以不能查看文件內容

# dig -t A www.zhaoxin.com @172.18.250.28
 
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t A www.zhaoxin.com @172.18.250.28
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35060
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
 
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.zhaoxin.com.INA
 
;; ANSWER SECTION:
www.zhaoxin.com.33600INA172.18.250.108
 
;; AUTHORITY SECTION:
zhaoxin.com.33600INNSns2.zhaoxin.com.
zhaoxin.com.33600INNSns1.zhaoxin.com.
 
;; ADDITIONAL SECTION:
ns1.zhaoxin.com.33600INA172.18.250.108
ns2.zhaoxin.com.33600INA172.18.250.28
 
;; Query time: 1 msec
;; SERVER: 172.18.250.28#53(172.18.250.28)
;; WHEN: Sat Apr 09 15:15:13 CST 2016
;; MSG SIZE  rcvd: 128

4、添加新記錄并測試測試

ON master:

同步.gifdns.gif

ON Slave:

# 注意:slave上面沒有進行任何操作就可以解析到。

# dig -t A bbs.zhaoxin.com @172.18.250.28
 
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t A bbs.zhaoxin.com @172.18.250.28
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53442
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
 
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;bbs.zhaoxin.com.INA
 
;; ANSWER SECTION:
bbs.zhaoxin.com.33600INA172.18.250.66
 
;; AUTHORITY SECTION:
zhaoxin.com.33600INNSns1.zhaoxin.com.
zhaoxin.com.33600INNSns2.zhaoxin.com.
 
;; ADDITIONAL SECTION:
ns1.zhaoxin.com.33600INA172.18.250.108
ns2.zhaoxin.com.33600INA172.18.250.28
 
;; Query time: 1 msec
;; SERVER: 172.18.250.28#53(172.18.250.28)
;; WHEN: Sat Apr 09 15:20:19 CST 2016
;; MSG SIZE  rcvd: 128

七、子域授權和DNS轉發

1、子域配置

主域服務器配置:

# vim /var/named/zhaoxin.com.zone
$TTL 33600
$ORIGIN zhaoxin.com.
 
@       IN      SOA     ns1.zhaoxin.com.        admin.zhaoxin.com. (
                2016040803
                2H
                10M
                1W
                1D )
 
        IN      NS      ns1
        IN      NS      ns2
        IN      MX   10 mx1
        IN      MX   15 mx2
 
ns1     IN      A       172.18.250.108
ns2     IN      A       172.18.250.28
 
mx1     IN      A       172.18.250.111
mx2     IN      A       172.18.250.112
www     IN      A       172.18.250.108
bbs     IN      A       172.18.250.66
 
ops     IN      NS      ns1.ops
ns1     IN      A       172.18.17.24
# rndc reload
server reload successful

子域服務器配置:

a、修改配置文件

# vim /etc/named.conf
options {
        listen-on port 53 { 127.0.0.1; 172.18.17.24; };
        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; };
 
        /* 
         - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
         - If you are building a RECURSIVE (caching) DNS server, you need to enable 
           recursion. 
         - If your recursive DNS server has a public IP address, you MUST enable access 
           control to limit queries to your legitimate users. Failing to do so will
           cause your server to become part of large scale DNS amplification 
           attacks. Implementing BCP38 within your network would greatly
           reduce such attack surface 
        */
        recursion yes;
 
        dnssec-enable no;
        dnssec-validation no;
# vim /etc/named.rfc1912.zones
zone "ops.zhaoxin.com" IN {
        type master;
        file "ops.zhaoxin.com.zone";
};

b、修改區域文件

# vim /var/named/ops.zhaoxin.com.zone
$TTL 33600
$ORIGIN ops.zhaoxin.com.
 
@       IN      SOA     ns1.ops.zhaoxin.com.        admin.ops.zhaoxin.com. (
                2016040803
                2H
                10M
                1W
                1D )
 
        IN      NS      ns1
ns1     IN      A       172.18.17.24
www     IN      A       172.18.17.24

c、修改權限

# chown .named ops.zhaoxin.com.zone 
# chmod o= ops.zhaoxin.com.zone

d、啟動服務并測試

# systemctl start named.service
# ss -tnl|grep 53
LISTEN     0      10             172.18.17.24:53                       *:*     
LISTEN     0      10                127.0.0.1:53                       *:*     
LISTEN     0      128               127.0.0.1:953                      *:*     
LISTEN     0      10                      ::1:53                      :::*     
LISTEN     0      128                     ::1:953                     :::*

通過子域測試

# dig -t A www.ops.zhaoxin.com @172.18.17.24
 
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t A www.ops.zhaoxin.com @172.18.17.24
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46104
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
 
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.ops.zhaoxin.com.INA
 
;; ANSWER SECTION:
www.ops.zhaoxin.com.33600INA172.18.17.24
 
;; AUTHORITY SECTION:
ops.zhaoxin.com.33600INNSns1.ops.zhaoxin.com.
 
;; ADDITIONAL SECTION:
ns1.ops.zhaoxin.com.33600INA172.18.17.24
 
;; Query time: 0 msec
;; SERVER: 172.18.17.24#53(172.18.17.24)
;; WHEN: Sat Apr 09 16:47:49 CST 2016
;; MSG SIZE  rcvd: 98

通過主域測試

# dig -t A www.ops.zhaoxin.com @172.18.250.108
 
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t A www.ops.zhaoxin.com @172.18.250.108
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3566
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
 
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.ops.zhaoxin.com.INA
 
;; ANSWER SECTION:
www.ops.zhaoxin.com.33600INA172.18.17.24
 
;; AUTHORITY SECTION:
ops.zhaoxin.com.33600INNSns1.ops.zhaoxin.com.
 
;; ADDITIONAL SECTION:
ns1.ops.zhaoxin.com.33600INA172.18.17.24
 
;; Query time: 3 msec
;; SERVER: 172.18.250.108#53(172.18.250.108)
;; WHEN: Sat Apr 09 16:50:05 CST 2016
;; MSG SIZE  rcvd: 98

2、dns轉發

dns轉發,一般指向外網的dns服務器,當本地沒有記錄時會向外網dns服務器發起查詢請求。

注意:被轉發的服務器必須允許為當前服務做遞歸;

    (1) 區域轉發:僅轉發對某特定區域的解析請求;

zone  "ZONE_NAME"  IN {

        type  forward;

forward  {first|only};

forwarders  { SERVER_IP; };

};

first:首先轉發;轉發器不響應時,自行去迭代查詢;

only:只轉發;

    (2) 全局轉發:針對凡本地沒有通過zone定義的區域查詢請求,通通轉給某轉發器;

options {

… …

forward  {only|first};

forwarders  { SERVER_IP; };

.. …

};

a、首先用本地查詢www.baidu.com(此時沒有做dns轉發)

# dig -t A www.baidu.com @172.18.250.108
 
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -t A www.baidu.com @172.18.250.108
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 24127
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
 
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.baidu.com.INA
 
;; Query time: 1 msec
;; SERVER: 172.18.250.108#53(172.18.250.108)
;; WHEN: Sat Apr 09 16:53:02 CST 2016
;; MSG SIZE  rcvd: 42

b、配置dns轉發

添加forward

# vim /etc/named.conf 
options {
        listen-on port 53 { 172.18.250.108; };
        //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";
        forward {only};
        forwarders { 172.18.0.1; };

檢查配置文件并重載配置:

# named-checkconf 
# rndc reload
server reload successful

測試:

# dig -t A www.baidu.com @172.18.250.108
 
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -t A www.baidu.com @172.18.250.108
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1855
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 5, ADDITIONAL: 6
 
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.baidu.com.INA
 
;; ANSWER SECTION:
www.baidu.com.179INCNAMEwww.a.shifen.com.
www.a.shifen.com.128INA61.135.169.121
www.a.shifen.com.128INA61.135.169.125
 
;; AUTHORITY SECTION:
a.shifen.com.1028INNSns3.a.shifen.com.
a.shifen.com.1028INNSns5.a.shifen.com.
a.shifen.com.1028INNSns4.a.shifen.com.
a.shifen.com.1028INNSns2.a.shifen.com.
a.shifen.com.1028INNSns1.a.shifen.com.
 
;; ADDITIONAL SECTION:
ns5.a.shifen.com.1028INA119.75.222.17
ns4.a.shifen.com.1028INA115.239.210.176
ns3.a.shifen.com.1028INA61.135.162.215
ns2.a.shifen.com.1028INA180.149.133.241
ns1.a.shifen.com.1028INA61.135.165.224
 
;; Query time: 1 msec
;; SERVER: 172.18.250.108#53(172.18.250.108)
;; WHEN: Sat Apr 09 17:02:11 CST 2016
;; MSG SIZE  rcvd: 271

八、BIND安全相關配置(acl)

acl:訪問控制列表:把一個或多個地址歸并一個命名的集合,隨后通過次名稱即可對此集全內的所有主機實現統一調用

    acl acl_bame {    

        ip;

        net/prelen;

    };

 示例:

        acl mynet {

            172.18.0.0/16;

            127.0.0.0/8;

        };

    bind有四個內置的acl

none:沒有一個主機;

any:任意主機;

local:本機;

localnet:本機所在的IP所屬的網絡;

    訪問控制指令:

allow-query  {};  允許查詢的主機;白名單;

allow-transfer {};  允許向哪些主機做區域傳送;默認為向所有主機;應該配置僅允許從服務器;

allow-recursion {}; 允許哪此主機向當前DNS服務器發起遞歸查詢請求; 

allow-update {}; DDNS,允許動態更新區域數據庫文件中內容;

    測試:

1、修改文件,僅允許172.16.0.0/16網段可查詢

# vim /etc/named.rfc1912.zones 
acl mynet {
172.16.0.0/16;
127.0.0.0/8;
};
# vim /etc/named.rfc1912.zones 
zone "zhaoxin.com" IN {
        type master;
        file "zhaoxin.com.zone";
        acl-query { mynet; };
};
# systemctl restart named

測試是否能解析

# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0C:29:69:45:7B  
          inet addr:172.18.4.2  Bcast:172.18.255.255  Mask:255.255.0.0
          inet6 addr: fe80::20c:29ff:fe69:457b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2750 errors:0 dropped:0 overruns:0 frame:0
          TX packets:329 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:467611 (456.6 KiB)  TX bytes:33023 (32.2 KiB)
 
# dig -t A www.zhaoxin.com @172.18.250.108
 
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6 <<>> -t A www.zhaoxin.com @172.18.250.108
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 5215
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
 
;; QUESTION SECTION:
;www.zhaoxin.com.INA
 
;; Query time: 4 msec
;; SERVER: 172.18.250.108#53(172.18.250.108)
;; WHEN: Sat Apr  9 15:37:15 2016
;; MSG SIZE  rcvd: 33

# 可以看出此服務器不在規定范圍內,不能解析

2、修改為18網段測試是否能夠解析

acl.gifacl.gif

對于dns就寫到這里了,感覺寫的不錯可以給點個贊。 
 作者:Ace QQ1257465991 Linux運維攻城獅一只 
 Q/A:如有問題請慷慨提出

原創文章,作者:Ace,如若轉載,請注明出處:http://www.www58058.com/15245

(4)
AceAce
上一篇 2016-04-24 16:55
下一篇 2016-04-25 21:13

相關推薦

  • 下載編譯安裝httpd 2.4最新版本

    關于這個問題分三步講:1.下載最新版本;2.編譯;3.安裝 一:下載httpd 2.4的最新版本:(這里以Centos 7為例,Centos 6里用的是2.2版本的) 下載的話如何找下載路徑—–>下載后是存在windows下,如何將其移進linux中  1.下載路徑: 當然我們現在只要是碰到不會或者不知道的東西,通常會…

    2017-08-26
  • N22-第五周作業-冥界之王

    1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行;    [root@CentOS6 ~]# cat /boot/grub/grub.conf | grep -E  "^[[:space:]]{1,}"…

    Linux干貨 2016-09-19
  • Linux-start

    學習計劃:參見N24學習時間與線路圖. 目標:完成作業,考試過關。 宣言:人但有追求,世界亦會讓路。

    Linux干貨 2016-10-24
  • 馬哥教育21期網絡班—第11周課程+練習—-成長進行時–不退步–下

    3、描述DNS查詢過程以及DNS服務器類別。 DNS查詢過程主機—>查找互聯網上的主機 www.magedu.com—>聯系到自己指向的DNS服務器—>DNS服務器—>找根 .—>根返回給DNS服務器—>DNS找.com—>com返回給DNS—->DNS找ma…

    Linux干貨 2016-09-19
  • openssl關于CA證書的創建

    1、用openssl實現證書申請 先在/etc/pki/CA/目錄下創建一個index.txt的文件,作為ca證書的數據庫 在相同目錄下創建一個serial的序列號文件,并寫入01 生成ca的簽名證書用到的私鑰文件 注意:私鑰的權限時600,文件名必須是cakey.pem 生成自簽證書 這樣私有CA建立完成 申請認證: 在申請的機器上生成私鑰 生成申請文件 …

    Linux干貨 2016-09-23
  • 正則表達式

         正則表達式是由一類特殊字符所編寫的模式,通過這些字符的使用,我們能檢索 查找文本中符合某些規則的內容。 正則表達式元字符的分類有:字符匹配,匹配次數,位置錨定,分組等。      字符匹配:      . : 匹配任意單個字符     &n…

    Linux干貨 2017-04-06
欧美性久久久久