DNS之一:DNS服務原理與bind配置詳解

1、DNSlinux

DNS:Domain Name System,域名系統數據庫

       做爲域名和IP地址相互映射的一個分佈式數據庫,可以使用戶更方便的訪問互聯網,而不用去記住可以被機器直接讀取的IP數串。經過主機名,最終獲得該主機名對應的IP地址的過程叫作域名解析(或主機名解析)。數組

    協議:緩存

         UDP:53bash

         TCP:53服務器

    實現:BIND(Berkeley Internet Name Domain),PowerDNS,dnsmasq網絡


MAC-->IP-->主機名稱-->DNSdom


名稱解析:將一種格式的信息轉化爲另一種格式,以某關鍵字爲標準查找某一數據庫的過程tcp

passwd <--> nsswitch轉換分佈式

login:nsswitch爲login提供服務

nsswitch配置文件在/etc/nsswitch


/etc/hosts:存放的爲主機與ip、別名


namespace:名稱空間

分佈式數據庫:將數據庫切割,放在不一樣的服務器上

根域(.)-->一級域/頂級域(ICCNA)-->二級域(組織域)


一級域:

    組織域:.com,.org,.mil,.gov,.edu,.net,

    國家域:.cn,.hk,.tw,.jp,.ir(伊朗),.iq(伊拉克),.us,.uk

    反向域:.in-addr.arpa,


二級域:申請


查詢:

   遞歸查詢:只發起一次請求,最終能獲得答案

   迭(die)代查詢:發起一次請求,不必定獲得答案

客戶端指向的DNS服務器,必定是容許給本地主機作遞歸的

根拒絕回答遞歸問題


區域傳送:

     輔助DNS服務器從主DNS服務器或其它的輔助DNS服務器請求傳輸數據的過程

     徹底區域傳送:傳送區域的全部數據,AXFR

     增量區域傳送:傳送區域中改變的數據部分,IXFR

wKiom1X-U4TBPg6AAAKAe8Rz_fU092.jpg


FQDN:Full Qualified Domain Name 徹底域名解析

FQDN --> IP 正向解析

IP --> FQDN 反向解析


DNS服務器的類型

    主DNS服務器

    輔助DNS服務器

    緩存名稱服務器



資源記錄(Resource Record):

     數據庫每個條叫一個資源記錄,資源記錄有類型,用於表示資源的功能

SOA:Start Of Authority,起始受權

NS:Name Server,域名服務器

MX:mail eXchanger:郵件交換器

A:Address,(FQDN-->IP)地址記錄

PTR: PoiTeR,(IP-->FQDN)

AAAA:Address,FQDN-->IPv6

CNAME:Canonical Name,正式名稱(別名記錄)


DNS:FQDN --> IP

正反向解析技術不一樣,所以不該該存放於同一個數據庫文件中進行 


域:Domain,邏輯概念

區域:zone,物理概念


DNS的數據庫文件(區域數據文件,區域自身有名字):文本文件,只能包含資源記錄或宏定義,每行一個


資源記錄的格式:

        name [ttl(緩存有效時間)]  IN  資源記錄類型(RRtype)  Value

    例子:

        www  600(單位s)   IN    A         1.2.3.4

        www.magedu.com.  600   IN A       1.2.3.4


    SOA:

        只能有一個

        name:只能是區域名稱,例如:magedu.com.一般能夠簡寫爲@,

        value:有n個數值,最主要的是主DNS服務器的FQDN,點不可省略

        注意:SOA必須是區域數據庫文件第一條記錄

        例子:

         @  600  IN  SOA   na.magedu.com. 管理員郵箱(dnsadmin.magedu.com.)(

          序列號(serial number) ;註釋內容,十進制數據,不能超過10位,一般使用日期,例如2015092017

          刷新時間(refresh time) ;即每隔多久到主服務器檢查一次

          重試時間(retry time) ;應該小於refresh time

          過時時間(expire time)

          netgative answer ttl ;否認答案的ttl

         ) 

    

    NS:

       能夠有多條

       name:區域名稱,一般能夠簡寫爲@

       value:DNS服務器的FQDN(可使用相對名稱)

       例子:

       @  600  IN  NS  ns


    A:

       只能定義在正向區域數據文件中

       name:FQDN(可使用相對名稱)

       value:IP


       例子:

       www  600(單位s) IN A 1.2.3.4

       www  600(單位s) IN A 1.2.3.5

       可作輪詢,效果很差(緩存),


       www  600(單位s) IN A 1.2.3.4

       ftp  600(單位s) IN A 1.2.3.4

    但凡以FQDN作爲其值的記錄,應該給這個值作一條A記錄



    AAAA:


    MX:能夠有多個

       name:區域名稱,用於標識smtp服務器

       value:包含優先級和FQDN

           優先級:0-99,數字越小,級別越高,

       例子:

        @ 600 IN MX 10 mail

        @ 600 IN MX 20 mail2


    CNAME:

          name :FQDN

          value :FQDN

        例子:

          ftp IN CNAME www


    PTR:IP --> FQDN,指針記錄,只能定義在反向區域數據文件中,反向區域名稱爲逆向網絡地址加.in.addr.arpa.後綴組成

     name:IP,逆向的主機地址,例如172.16.100.7的name爲7.100,徹底格式爲7.100.16.172.in-addr-arpa.

     value:FQDN

         例子:

          4.3.2    600 IN PTR www.magedu.com.




2、BIND


     isc(www,isc.org)

     DNS,bind,named

案例:magelinux.com

      192.168.100.

mail,172.16.100.21

www,172.16.100.22

pop-->mail   別名

ftp-->www    別名

dns:192.168.100.20


主配置文件:

主配置文件:定義區域,/etc/named.comf 屬主root,數組named,權限:640

區域數據文件:/var/named/   屬主root,數組named,權限:640

    至少有三個區域:

                 根

           localhost

           127.0.0.1

     named:

          用戶:named

          組:named

          

主配置文件:

options {

         //全局選項

zone "ZONENAME" {              #經測試這裏區域名後面帶不帶.均可以

          //定義區域

logging {

         //定義日誌系統

格式:以分號結尾,{}間有空格

type {hint|master|slave|forward}



配置示例:

一、bind主配置文件:/etc/named.conf添加解析區域

bind主配置文件:

[root@xxj ~]# cat /etc/named.conf
options {
         directory "/var/named";
};

zone "." IN {
        type hint;
        file "named.ca";
};

zone "locahost" IN {
          type master;
          file "named.localhost";
};

zone "localhost.localdomain" IN {
          type master;
          file "named.localhost";
};

zone "1.0.0.127.in-addr.arpa." IN {
           type master;
           file "named.loopback";
};

zone "magelinux.com" IN {              
            type master;
            file "magelinux.zone";
};
[root@xxj ~]# service named configtest         #檢測配置文件是否有錯
zone locahost/IN: loaded serial 0
zone localhost.localdomain/IN: loaded serial 0
zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
[root@xxj ~]# named-c
named-checkconf    named-checkzone    named-compilezone  
[root@xxj ~]# named-checkconf
[root@xxj named]# chown root:named named.conf     #更改屬主屬組
[root@xxj named]# chmod 640 named.conf            #更改權限
二、添加區域數據/資源記錄/DNS數據庫文件:
[root@xxj named]# cat magelinux.zone
$TTL 6000
@ IN SOA dns.magelinux.com admin.magelinux.com. (
                      2015091019
                      2H
                      10M
                      7D
                      1D )
@ IN  NS dns
@ IN  MX 10 mail
dns IN A 192.168.100.20
mail IN A 192.168.100.21
WWW IN A 192.168.100.22
pop IN CNAME mail
ftp IN CNAME www
[root@xxj named]# chown root:named magelinux.zone
[root@xxj named]# chmod 640 magelinux.zone
[root@xxj named]# named-checkconf
[root@xxj named]# named-checkzone 
[root@xxj named]# vi magelinux.zone              
[root@xxj named]# named-checkzone "magelinux.zone" /var/named/magelinux.zone
zone magelinux.zone/IN: loaded serial 2015091019
OK
[root@xxj named]# killall -1 named
named: no process killed


測試命令:

dig

          dig [-t type] [-x addr] [name] [@server]

              +[no]trace

              +[no]recurse

              +[no]tcp

host:

          host [-t type] {name} {server}

nslookup:

            nslookup>

                      server DNS_server_ip

                      set -q=TYPE

                       {name}


[root@xxx named]# dig -t NS magelinux.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.4 <<>> -t NS magelinux.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45888
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; QUESTION SECTION:      #問題部分                                      
;magelinux.com.                 IN      NS

;; ANSWER SECTION:        #回答部分
magelinux.com.          6000    IN      NS      sbsb.magelinux.com.

;; ADDITIONAL SECTION:    #附加部分
sbsb.magelinux.com.     6000    IN      A       192.168.100.20

;; Query time: 1 msec
;; SERVER: 192.168.100.20#53(192.168.100.20)
;; WHEN: Wed Sep 16 01:40:58 2015
;; MSG SIZE  rcvd: 66
[root@xxx named]# dig -t MX magelinux.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.4 <<>> -t MX magelinux.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41791
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; QUESTION SECTION:
;magelinux.com.                 IN      MX
;; ANSWER SECTION:
magelinux.com.          6000    IN      MX      10 mail.magelinux.com.
;; AUTHORITY SECTION:      #權威部分
magelinux.com.          6000    IN      NS      sbsb.magelinux.com.
;; ADDITIONAL SECTION:
mail.magelinux.com.     6000    IN      A       192.168.100.21
sbsb.magelinux.com.     6000    IN      A       192.168.100.20
;; Query time: 2 msec
;; SERVER: 192.168.100.20#53(192.168.100.20)
;; WHEN: Wed Sep 16 01:42:42 2015
;; MSG SIZE  rcvd: 103
[root@xxx named]# dig -t A mail.magelinux.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.4 <<>> -t A mail.magelinux.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64745
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;mail.magelinux.com.            IN      A

;; ANSWER SECTION:
mail.magelinux.com.     6000    IN      A       192.168.100.21

;; AUTHORITY SECTION:
magelinux.com.          6000    IN      NS      sbsb.magelinux.com.

;; ADDITIONAL SECTION:
sbsb.magelinux.com.     6000    IN      A       192.168.100.20

;; Query time: 1 msec
;; SERVER: 192.168.100.20#53(192.168.100.20)
;; WHEN: Wed Sep 16 01:43:49 2015
;; MSG SIZE  rcvd: 87
[root@xxx named]# host -t NS magelinux.com
magelinux.com name server sbsb.magelinux.com.
[root@xxx named]# host -t mx magelinux.com
magelinux.com mail is handled by 10 mail.magelinux.com.
[root@xxx named]# host -t A  www.magelinux.com 
www.magelinux.com has address 192.168.100.22
[root@xxx named]# host -t A  www.magedu.com 8.8.8.8  
Using domain server:
Name: 8.8.8.8
Address: 8.8.8.8#53
Aliases: 

www.magedu.com has address 101.200.188.230
[root@xxx named]# host -t A  www.magedu.com 192.168.100.20
Using domain server:
Name: 192.168.100.20
Address: 192.168.100.20#53
Aliases: 

www.magedu.com has address 101.200.188.230
[root@xxx named]# host -t A  www.baidu.com 192.168.100.20 
Using domain server:
Name: 192.168.100.20
Address: 192.168.100.20#53
Aliases: 

www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 112.80.248.73
www.a.shifen.com has address 112.80.248.74
[root@xxx named]# host -t A  www.magelinux 192.168.100.20
Using domain server:
Name: 192.168.100.20
Address: 192.168.100.20#53
Aliases: 

Host www.magelinux not found: 3(NXDOMAIN)
[root@xxx named]# host -t A  www.magelinux.com 192.168.100.20
Using domain server:
Name: 192.168.100.20
Address: 192.168.100.20#53
Aliases: 

www.magelinux.com has address 192.168.100.22
[root@xxx named]# nslookup 
> server 192.168.100.20
Default server: 192.168.100.20
Address: 192.168.100.20#53
> set q=A
> www.magelinux.com
Server:         192.168.100.20
Address:        192.168.100.20#53

Name:   www.magelinux.com
Address: 192.168.100.22
> set q=a 
> mail.magelinux.com
Server:         192.168.100.20
Address:        192.168.100.20#53

Name:   mail.magelinux.com
Address: 192.168.100.21
>
[root@xxx ~]# dig -x  192.168.100.20


[root@xxx ~]# dig -x  192.168.100.21   #由於尚未配置反向解析,因此這裏解析不了

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.4 <<>> -x 192.168.100.21
;; global options: +cmd
;; connection timed out; no servers could be reached


[root@xxx ~]# dig -x  127.0.0.1     

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.4 <<>> -x 127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59577
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

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

;; ANSWER SECTION:
1.0.0.127.in-addr.arpa. 86400   IN      PTR     localhost.

;; AUTHORITY SECTION:
1.0.0.127.in-addr.arpa. 86400   IN      NS      1.0.0.127.in-addr.arpa.

;; ADDITIONAL SECTION:
1.0.0.127.in-addr.arpa. 86400   IN      A       127.0.0.1
1.0.0.127.in-addr.arpa. 86400   IN      AAAA    ::1

;; Query time: 0 msec
;; SERVER: 192.168.100.20#53(192.168.100.20)
;; WHEN: Wed Sep 16 12:07:58 2015
;; MSG SIZE  rcvd: 121

添加反向解析:

一、先添加反向解析區域

  [root@xxx ~]# cat /etc/named.conf
options {
         directory "/var/named";
};

zone "." IN {
        type hint;
        file "named.ca";
};

zone "locahost" IN {
          type master;
          file "named.localhost";
};

zone "localhost.localdomain" IN {
          type master;
          file "named.localhost";
};

zone "1.0.0.127.in-addr.arpa." IN {
           type master;
           file "named.loopback";
};

zone "magelinux.com." IN {
            type master;
            file "magelinux.zone";
};

zone "100.168.192.in-addr.arpa." IN {
            type master;
            file "192.168.100.zone";
};

二、添加資源記錄

[root@xxx named]# cat 192.168.100.zone
$TTL 6000
@ IN SOA sbsb.magelinux.com admin.magelinux.com. (
                      2015091019
                      2H
                      10M
                      7D
                      1D )
   IN  NS sbsb.magelinux.com.
20 IN PTR sbsb.magelinux.com.
21 IN PTR mail.magelinux.com.
22 IN PTR www.magelinux.com.
[root@xxx named]# 



[root@xxx named]# dig -x 192.168.100.20

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.4 <<>> -x 192.168.100.20
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33192
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

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

;; ANSWER SECTION:
20.100.168.192.in-addr.arpa. 6000 IN    PTR     sbsb.magelinux.com.

;; AUTHORITY SECTION:
100.168.192.in-addr.arpa. 6000  IN      NS      sbsb.magelinux.com.

;; ADDITIONAL SECTION:
sbsb.magelinux.com.     6000    IN      A       192.168.100.20

;; Query time: 0 msec
;; SERVER: 192.168.100.20#53(192.168.100.20)
;; WHEN: Wed Sep 16 15:22:25 2015
;; MSG SIZE  rcvd: 107

[root@xxx named]# dig -x 127.0.0.1

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.4 <<>> -x 127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49959
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

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

;; ANSWER SECTION:
1.0.0.127.in-addr.arpa. 86400   IN      PTR     localhost.

;; AUTHORITY SECTION:
1.0.0.127.in-addr.arpa. 86400   IN      NS      1.0.0.127.in-addr.arpa.

;; ADDITIONAL SECTION:
1.0.0.127.in-addr.arpa. 86400   IN      A       127.0.0.1
1.0.0.127.in-addr.arpa. 86400   IN      AAAA    ::1

;; Query time: 0 msec
;; SERVER: 192.168.100.20#53(192.168.100.20)
;; WHEN: Wed Sep 16 15:22:33 2015
;; MSG SIZE  rcvd: 121


反向解析區域數據庫文件:區域名稱以逆向的網絡地址,並以.in-addr.arpa爲後綴

    第一條必須爲SOA

    應該具備NS記錄,但不能出現MX和A記錄

    較常見的即爲PTR記錄

              名稱爲逆向的主機地址,

相關文章
相關標籤/搜索