DNS服務搭建

DNS基礎知識:

DNSDomain Name Service):域名解析服務,應用層協議。

BIND:實現DNS服務的一種軟件。

DNS監聽的端口:53/TCP53/UDP

DNS查詢類型:遞歸查詢,迭代查詢

DNS的兩種解析方式:正向解析(FQDN ---> IP),反向解析(IP --->FQDN

區域解析庫:由衆多資源記錄組成;

資源記錄(RR)類型:

SOAStart Of Authority,起始授權記錄;一個區域解析庫有且僅能有一個SOA記錄,而必須爲解析庫的第一條記錄;

Ainternet Address,作用,FQDN --> IP

AAAA: FQDN --> IPv6

PTR: PoinTeRIP --> FQDN

NS: Name Server,專用於標明當前區域的DNS服務器

CNAMECanonical Name,別名記錄

MX: Mail eXchanger,郵件交換器(標明域內誰是郵件服務器)

 

資源記錄定義格式:

語法:name        [TTL]          IN         rr_type         value

            例如:ns1                         1D                           IN                          A                          192.168.1.111

bind: 

bind程序包:

bind:

主程序

bind-libs

庫文件

bind-utils

測試程序

配置文檔:

服務腳本:

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

主配置文件:

/etc/named.conf,

/etc/named.rfc1912.zones,

 /etc/rndc.key

解析庫文件:

/var/named/ZONE_NAME.ZONE

準備實驗環境:

操作系統:CentOS 6.6

bind版本:bind-9.8.2-0.37.rc1.el6.x86_64

關閉防火牆:service iptables stop

關閉selinuxsetenforce 0

主服務器IP192.168.1.111(正反解析的主服務器都在此主機)

從服務器IP192.168.1.200(正反解析的從服務器都在此主機)

 

正向解析配置:(主DNS服務器)

1,對/etc/named.conf稍作修改,使得監聽所有本機IP,以及允許任何人解析,並註釋掉dnssec的內容。

[root@localhost named]# vim /etc/named.conf

       listen-on port 53 { any; };       監聽在本機所有IP地址上

       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     { any; };   允許任何人解析

        recursion yes;  允許遞歸查詢

//     dnssec-enable no;

//      dnssec-validation no;(註釋掉了dnssec的內容)

//     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 {

        typehint;

        file"/var/named/named.ca";

};

 

include "/etc/named.rfc1912.zones";

//include"/etc/named.root.key";開始時候無法解析外網域名,註釋掉這一行就可以解析了,暫時不知爲何。

 

2,在/etc/named.rfc1912.zones中定義新的區域

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

zone "localhost" IN {

        typemaster;

        file"named.localhost";

       allow-update { none; };

};

 

zone"1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa"IN {

        typemaster;

        file"named.loopback";

       allow-update { none; };

};

 

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

        typemaster;

        file"named.loopback";

       allow-update { none; };

};

 

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

        typemaster;

        file"named.empty";

       allow-update { none; };

};

//新定義的區域liaobin.com

zone "liaobin.com" IN {            

        type master;                         定義爲主DNS服務器,其他可選:(master|slave|hint|forward

        file "liaobin.com.zone";       區域文件位置

        allow-transfer{ 192.168.1.200; };允許192.168.1.200這個服務器區域傳送

};

 

3,創建定義好的區域的區域文件

[root@localhost named]# vim/var/named/liaobin.com.zone

$TTL 1D    宏定義TTL爲一天

$ORIGIN liaobin.com.

@      IN      SOA     ns1.liaobin.com.        admin.liaobin.com (

                2015112201;序列號

                2H  ;刷新時間

                5M;重試時間

                7D  ;過期時間

                1D  ;否定答案的TTL

 )

        IN     NS      ns1;(IN前邊省略的部分被$ORIGIN的值替換)

        IN     NS      ns2;(這兩行的意思是ns1 ns2liaobin.com域的DNS服務器)

        IN     NS      mx1;(兩個郵件服務器mx1 mx2

       IN      NS      mx2

ns1     IN     A       192.168.1.111;(指定DNS服務器的IP地址)

ns2    IN      A       192.168.1.200

mx1    IN     A      192.168.1.111;(指定郵件服務器的IP地址)

mx2    IN      A      192.168.1.200

www  IN     A       192.168.1.111;(A記錄,解析www.liaobin.com

web    IN     CNAME   www          ;(設置webwww的別名)

 

 

4,簡單配置完成,重啓服務,測試。

wKioL1aI_9bzh071AABb1q0piHo135.png

反向解析配置:

1,在/etc/named.rfc1912.zones 中定義反向解析區域,新增以下配置:

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

        typemaster;

        file"1.168.192.zone";

       allow-transfer{ 192.168.1.200; };  允許192.168.1.200這個服務器區域傳送

};

 

2,在/var/named/下新建1.168.192.zone區域文件:

[root@localhost named]# vim/var/named/1.168.192.zone

 

$TTL 1D

$ORIGIN 1.168.192.in-addr.arpa. 

@      IN      SOA     ns1.liaobin.com.        admin.liaobin.com (

       2015112201

        2H

        5M

        7D

        1D )

           IN     NS      ns1.liaobin.com. 

           IN      NS     ns2.liaobin.com.

111    IN      PTR     ns1.liaobin.com.        111後面會自動添加$ORIGIN的值

200    IN      PTR     ns2.liaobin.com.

111    IN      PTR     www.liaobin.com.     ;定義反向解析192.168.1.111的值爲www.liaobin.com.

 

3.反向解析配置完成,重啓服務,測試。

wKiom1aI_-Dz5YFIAABgHwMkRtc570.png

主從同步配置:(以上主服務器都已經配置好,接下來只需要配置從服務器即可。)

 

1,切換到從服務器192.168.1.200操作

 

2,打開/etc/named.conf稍作配置修改

[root@localhost slaves]# vim /etc/named.conf

options {

       listen-on port 53 { any; };     監聽在所有地址端口

       //listen-on-v6 port 53 { ::1; };  註釋掉ipv6配置,或者刪除掉此行。

       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     { any; };    允許任何人解析

       recursion yes;   允許遞歸解析

 

      //dnssec-enable yes;

       //dnssec-validation yes;

       //dnssec-lookaside auto;  註釋掉dnssec相關內容

 

        /*Path to ISC DLV key */

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

 

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

};

 

3,在配置文件/etc/named.rfc1912.zones中添加從服務器的區域

zone "liaobin.com" IN {

       type slave;                                  正向解析的從服務器

       masters { 192.168.1.111; };      主服務器爲192.168.1.111

       file "/var/named/slaves/liaobin.com.zone";    區域文件放在slaves目錄;因爲slaves目錄named纔有寫權限

};

zone "1.168.192.in-addr.arpa." {

       type slave;                                反向解析的從服務器

       masters { 192.168.1.111; };    主服務器爲192.168.1.111

       file "/var/named/slaves/1.168.192.zone";   區域文件放在slaves目錄

};

 

4,配置完成,重啓服務,測試。

wKiom1aJABaAN3ujAACkpkGlwkY561.pngwKioL1aJAEyAWQhzAABYBGyhhgc325.png

測試命令簡單用法:

dig命令:用於測試dns系統,因此,不會查詢hosts文件進行解析;

dig[-t type] name [@SERVER] [query options]

查詢選項:

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

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

例如:dig -t A www.baidu.com @192.168.1.111 +trace

測試反向解析:

dig-x IP @SERVER

例如:dig -x 192.168.1.111 @192.168.111

模擬區域傳送:

dig-t axfr ZONE_NAME @SERVER

例如:dig -t axfr liaobin.com @172.16.100.11

host命令:

host[-t type] name [SERVER]

例如:

         wKiom1aJAIOh2iVFAAAW2N4cnyM660.png

nslookup命令:

nslookup[-option] [name | -] [server]

例如:

wKioL1aJANihgr1oAAAYw_xTQFU978.png

nslookup交互模式:

         nslookup>

                 serverIP: 指明使用哪個DNS server進行查詢;

                 setq=RR_TYPE: 指明查詢的資源記錄類型;

                 NAME:要查詢的名稱;

例如:

        wKiom1aJANHQWS4uAAA3pAFzpw8460.png

rndc簡單用法:

rndcCOMMAND

status:查看dns狀態

reload: 重載主配置文件和區域解析庫文件

reload zone: 重載區域解析庫文件

retransfer zone: 手動啓動區域傳送過程,而不管序列號是否增加;

notify zone: 重新對區域傳送發通知;

reconfig: 重載主配置文件

querylog: 開啓或關閉查詢日誌;(建議關閉,否則大量磁盤I/O產生影響性能,排錯時可啓動)

trace: 遞增debug級別;

trace LEVEL: 指定使用的級別;


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