天天看點

DNS(bind)服務

1.overview

         a.packages:    

                            bind                              #主程式

                            bind-libs                      #庫

                            bind-utils                    #查詢工具

                            bind-chroot      #chroot

         b.port:      udp(53)-->request,

tcp(53)-->synchronize date between master and slaveserver

         c.script:/etc/init.d/named

         d.configurationfile:

                            /etc/named.conf                        #主配置檔案

                            /etc/named/                                #額外的配置檔案,會被named.conf讀取

                            /etc/sysconfig/named              #chroot額外參數

         e.working  directory:

/var/named/

                            /var/named/chroot/var/named/

2.tools

         a.host

                   host [-a] FQDN [server]

         b.nslookup

                   server

                   set type=any|mx

         c.dig [options] FQDN [@server]

         d.whois                       #查詢域名所有者資訊

3.configuration

a.cache-only DNS

         #在預設的情況下,這個檔案會去讀取/etc/named.rfc1912.zones 是以請記得要修改成底下的樣式啊!

    options

   {

            listen-on port 53  { any; };    //可不設定,代表全部接受

            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;                   //将自己視為用戶端的一種查詢模式

            forward only;                    //可暫時不設定

            forwarders {                     //是重點!

                    168.95.1.1;              //先用中華電信的 DNS 當上層

                   139.175.10.20;           //再用 seednet 當上層

            };

    };  //最終記得要結尾符号!

#注:啟動服務是提示Generating/etc/rndc.key:                             

#解決方案:生成rndc.key檔案:rndc-confgen-r /dev/urandom -a (權限)      

b.主區域DNS設定

                   1.修改主配置檔案:添加如下行                       //option配置參考cache-only

zone "solo.com" IN {

        type master;      #區域類型,可為hint(連結),master(主),slave(從)

        file"zone.solo.com"; #區域檔案

};                                                                                                    //正向解析域

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

                  typemaster;

                   file "zone.172.16.1";

};反向解析域

                   2.建立并修改區域檔案

                            a.zone.solo.com

$TTL 1D             #記錄的預設生存時間,對緩存dns伺服器來說                                                         

@        IN    SOA  dns1.solo.com. admin.solo.com. (                 

                                       1       ; serial  

                                       1D      ; refresh       

                                       1H      ; retry  

                                       1W      ; expire

                                       3H )    ; minimum

                IN      NS              dns1.solo.com.

dns1            IN      A               192.168.1.1

web.solo.com.   IN      A               192.168.1.2

ftp             IN      CNAME           web.solo.com.

@               IN      MX     10      192.168.1.3

                            b.zone.172.16.1

                                       1D      ; refresh       

                                        1W      ; expire

1               IN      PTR             dns1.solo.com.

2               IN      PTR             web.solo.com.

3               IN      PTR             solo.com.

                   3.重新開機服務,放行防火牆,測試

c.輔助DNS設定

                   1.在主DNS伺服器的區域配置中添加:

        type master;

        file"zone.solo.com";

        allow-transfer {172.16.1.40; }; 

};

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

        file"zone.172.16.1";

                   2.在相應的區域檔案中添加ns記錄

a.      zone.solo.com

                         IN      NS              dns2.solo.com.                 

dns2         IN      A               172.16.1.40            

                  IN     NS              dns2.solo.com.                        

                   3.配置從伺服器主配置檔案

zone "centos.vbird" IN {

type slave;

file"slaves/named.centos.vbird";

masters {192.168.100.254; };

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

file "slaves/named.192.168.100";

                   4.配置防火牆,tcp53用于master和slave之間的資料同步

d.子域的設定

1.      在上層dns的區域檔案中添加下層dns的ns和A記錄就可

xu.solo.com.        IN     NS             dns1.xu.solo.com.

dns1.xu.solo.com   IN          A               172.16.1.40

                   2.在下層dns伺服器的主配置檔案中添加

zone "xu.solo.com" IN {

        file"zone.xu.solo.com";

                   3.在下層dns伺服器配置區域檔案

$TTL 1D

@       IN SOA  dns1.xu.solo.com. admin.xu.solo.com. (

                                       3       ; serial

                                       1D      ; refresh

                                       1H      ; retry

                           IN      NS              dns1.xu.solo.com.

dns1                IN      A               172.16.1.40

www                          IN     A               172.16.1.40

ftp                           IN      CNAME           www.xu.solo.com.

                   4.測試

e.智能DNS(view)

                   1.書寫acl通路清單(可在在檔案中,之後用include寫入主配置檔案.可也直接在主配置檔案中書寫)

acl intranet { 192.168.100.0/24; };         //針對 intranet 給予的來源 IP指定

acl internet { ! 192.168.100.0/24; any; };       //加上驚歎号 (!) 代表反向選擇的意思

                   2.在主配置檔案中書寫view語句(所有區域檔案都應包含進view語句中,不懂view語句中的區域檔案名和内容不同)

view "lan" {                                                              //隻是一個名字,代表的是内網

            match-clients {"intranet"; };                   //吻合這個來源的才使用底下的 zone

            zone "." IN {

                    type hint;

                    file"named.ca";

            zone"centos.vbird" IN {

                    type master;

                    file"named.centos.vbird";

                    allow-transfer {192.168.100.10; };

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

                    file"named.192.168.100";

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

    };

    view "wan" {                                                    //同樣,隻是個名字而已!

            match-clients {"internet"; };           //代表的則是外網的 internet 來源

                    file"named.centos.vbird.inter";    //檔名必須與原有的不同!

            // 外網因為沒有使用到内網的 IP,是以 IP 反解部分可以不寫于此

    };

                            3.修改不同區域檔案中主機對應

f.智能DNS主從同步

1.    在主伺服器上生成key,并複制到從伺服器相應目錄下(scp)

# rndc-confgen -a -c/etc/intranel.key -k intranel         //時間較長,一分鐘左右

# rndc-confgen -a -c/etc/internel.key -k internel

# scp int* [email protected]:/etc/

2.    配置主伺服器named.conf

options {

       listen-on port 53 { any; };

        listen-on-v6 port 53 { none; };

        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-cache       { any; };

        allow-query     { any; };

        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;

        };

acl intranet {172.16.10.30; };  

//定義用戶端範圍,可寫入檔案後使用include調用,intranet隻是名稱

acl internet {172.16.10.40; };

view "lan" {

//lan為視圖名稱

        match-clients {"intranet";key intranel; };

        server 172.16.10.20 { keysintranel;  };        //從伺服器位址

        zone "." IN {

                type hint;

                file "named.ca";

        zone "single.com" IN {

                type master;

                file"lan.single.com.zone";

                allow-transfer { key intranel;172.16.10.20; };

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

view "wan" {

        match-clients {"internet";key internel; };

        server 172.16.10.20 {keys internel; };

                file"wan.single.com.zone";

                allow-transfer { key internel;172.16.10.20; };

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

include"/etc/rndc.key";

include"/etc/intranel.key";

include"/etc/internel.key";  

3.    配置 從伺服器named.conf

        listen-on port 53 { any; };

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

key "internel"{

        algorithm hmac-md5;

        secret"blI8tfLnXCApoRgLVmu4Ug==";

key "intranel"{

        secret "bjDNCEoCJl5+rdw1w5xSQA==";

acl intranet {172.16.10.30; };

        server 172.16.10.10 { keys intranel; };

                type slave;

                file"slaves/lan.single.com.zone";

                masters { 172.16.10.10; };

        zone "xu.single.com" IN {

                file"xu.single.com.zone";

        match-clients {"internet";keyinternel; };

        server 172.16.10.10 { keys  internel; };

                file"slaves/wan.single.com.zone";

                masters { 172.16.10.10; };

繼續閱讀