DNS服務器的搭建

關於DNS這裏不詳細闡述,本博客做者使用yum配置163的源進行安裝bind98版本,關於一些配置文件沒有參考安裝的默認配置文件,而是本身編寫的,僅供參考:vim

(注意:如下的配置文件必定要注意格式,這裏的配置文件格式上不必定是對的,但內容是能夠參考的,必定要注意配置文件中的中文空格,這會讓你找半天的)緩存

系統:Centos6.7bash

DNS軟件包:bind98服務器

首先實現單臺主DNS服務器,這裏設置本機名稱叫作   ns1.hjc.com  ,關於DNS這裏都是先配置成緩存DNS服務器,在接着配置成主或者被DNS服務器網絡

關於配置文件以下:工具

vim /etc/named.conf   主配置文件添加以下配置信息 :oop

options {
        directory "/var/named";
};

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

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

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

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

zone "1.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.1.zone";
};

 這裏的配置是做者本身編寫的,因此並無添加其餘的配置信息測試

而後完善如上文件中引用的其餘的區域文件信息: (備註:一般/var/named/named.ca 這個文件會自動生成,spa

無需作修改,若是沒有可使用  dig -t NS . @114.114.114.114  命令產生的結果保存到該文件中,但要求該機器可以聯網,該命令只是查詢全球13個DNS根節點服務器)日誌

vim /var/named/named.localhost

$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
        AAAA    ::1

vim /var/named/named.loopback

$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
        AAAA    ::1
        PTR     localhost.

vim /var/named/hjc.com.zone    這裏的ip都是一些博主本身測試用的IP和主機名

$TTL 600
hjc.com.        IN      SOA     ns1      admin.hjc.com. (
                                20130401
                                1H
                                5M
                                2D
                                6H )
hjc.com.        IN      NS      ns1.hjc.com.
hjc.com.        IN      MX 10   mail.hjc.com.
ns1             IN      A       192.168.1.77
mail            IN      A       192.168.1.76
www             IN      A       192.168.1.77
ftp             IN      CNAME   www

vim /var/named/192.168.1.zone

$TTL 600
@               IN      SOA     ns1       admin.hjc.com. (
                                20130401
                                1H
                                5M
                                2D
                                6H )
                IN      NS      ns1.hjc.com.
77              IN      PTR     ns1.hjc.com.
77              IN      PTR     www.hjc.com.
76              IN      PTR     mail.hjc.com.

能夠對區域文件進行驗證: 例如 :  named-checkzone "1.168.192.in-addr.arpa" /var/named/192.168.1.zone   

這樣最基礎的主DNS服務器就配置完成了,重啓DNS服務器並進行驗證:(這裏要將/etc/resolve.conf中的DNS IP改爲本機IP:192.168.1.77)

dig -x 192.168.1.76

dig -t A www.hjc.com

dig -t SOA hjc.com

dig -t NS hjc.com

必定要看到正確的返回結果才能夠,至於什麼樣的結果是正確的能夠自行上網查看,這裏就不續說了,至此一個「最最最基本」的主DNS服務器就配置完成了。

 

2.主從複製及區域傳送DNS配置:

主DNSIP:192.168.1.77

從DNSIP:192.168.1.61

在如上的基礎上進行改進,其中主DNS的/var/named/named.localhost和named.loopback這兩個文件不變更,從的DNS只須要更改/etc/named.conf

vim /etc/named.conf           其中加入了其餘的配置如容許本地服務器進行遞歸,更改區域文件時候進行通知,僅容許從服務器進行區域傳送

options {
        directory "/var/named";
        allow-recursion { 192.168.1.0/24; };
        notify yes;
};

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

zone "localhost" IN {
        type master;
        file "named.localhost";
        allow-transfer { none; };
};

zone "0.0.127.in-addr.arpa" IN {
        type master;
        file "named.loopback";
        allow-transfer { none; };
};

zone "hjc.com" IN {
        type master;
        file "hjc.com.zone";
        allow-transfer { 192.168.1.61; };
};

zone "1.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.1.zone";
        allow-transfer { 192.168.1.61; };
};

編輯區域文件:

vim /var/named/hjc.com.zone    在以前的基礎上添加ns2,不然不會傳送增量區域信息

$TTL 600
@               IN      SOA     ns1             admin.hjc.com. (
                                20130404
                                1H
                                5M
                                2D
                                6H )
hjc.com.        IN      NS      ns1.hjc.com.
hjc.com.        IN      NS      ns2.hjc.com.
hjc.com.        IN      MX 10   mail.hjc.com.
ns1             IN      A       192.168.1.77
ns2             IN      A       192.168.1.61
mail            IN      A       192.168.1.76
www             IN      A       192.168.1.77
ftp             IN      CNAME   www
pop             IN      A       192.168.1.75

vim /var/named/192.168.1.zone

$TTL 600
@               IN      SOA     ns1             admin.hjc.com. (
                                20130401
                                1H
                                5M
                                2D
                                6H )
                IN      NS      ns1.hjc.com.
                IN      NS      ns2.hjc.com.
77              IN      PTR     ns1.hjc.com.
61              IN      PTR     ns2.hjc.com.
77              IN      PTR     www.hjc.com.
76              IN      PTR     mail.hjc.com.

接下來對從DNS進行配置,從DNS服務器的主機名   ns2.hjc.com

vim /etc/named.conf 

options {
        directory "/var/named";
        allow-recursion { 192.168.1.0/24; };
};

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

zone "localhost" IN {
        type master;
        file "named.localhost";
        allow-transfer { none; };
};

zone "0.0.127.in-addr.arpa" IN {
        type master;
        file "named.loopback";
        allow-transfer { none; };
};

zone "hjc.com" IN {
        type slave;
        file "slaves/hjc.com.zone";
        masters { 192.168.1.77; };
        allow-transfer { none; };
};

zone "1.168.192.in-addr.arpa" IN {
        type slave;
        file "slaves/192.168.1.zone";
        masters { 192.168.1.77; };
        allow-transfer { none; };
};

其餘信息無需改動,可是要確保/var/named/named.loopback和named.localhost這兩個文件存在,這是確保先成爲緩存DNS服務器

從新啓動 主和被DNS服務器

這時候若是成功的話會在從DNS服務器上的 /var/named/slaves  這個目錄下生成區域文件,在該例下會生成 (192.168.1.zone hjc.com.zone)

也能夠查看生成的日誌進行確認,主配置文件中沒有指定log生成在哪一個目錄下的話,會將日誌打在/var/log/messages中

至此主從區域傳送的DNS就配置完成了。

3.實現子域受權功能:

在主從的基礎上進行改變:

vim /etc/named/hjc.com.zone  添加以下的兩個子域  fin.hjc.com    和   market.hjc.com

$TTL 600
@               IN      SOA     ns1             admin.hjc.com. (
                                20130405
                                1H
                                5M
                                2D
                                6H )
hjc.com.        IN      NS      ns1.hjc.com.
hjc.com.        IN      NS      ns2.hjc.com.
hjc.com.        IN      MX 10   mail.hjc.com.
ns1             IN      A       192.168.1.77
ns2             IN      A       192.168.1.61
mail            IN      A       192.168.1.76
www             IN      A       192.168.1.77
ftp             IN      CNAME   www
pop             IN      A       192.168.1.75
imap            IN      A       192.168.1.74

fin             IN      NS      ns1.fin
ns1.fin         IN      A       192.168.1.8

market          IN      NS      ns1.market
ns1.market      IN      A       192.168.1.18

  以後重啓服務

接下來在新的一臺機器上(192.168.1.8)安裝DNS服務,而且先改爲主DNS服務器,也須要增長zone文件,這裏很少敘說,主要是展現子域的轉發,怎麼配置DNS服務器:

在子域192.168.1.8上進行配置:

vim /etc/named.conf

options {
        directory "/var/named";
};

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

zone "localhost" IN {
        type master;
        file "named.localhost";
        allow-transfer { none; };
};

zone "0.0.127.in-addr.arpa" IN {
        type master;
        file "named.loopback";
        allow-transfer { none; };
};

zone "fin.hjc.com" IN {
        type master;
        file "fin.hjc.com.zone";
};

zone "hjc.com" IN {
        type forward;
        forwards { 192.168.1.77; };
};

  該服務器上並無配置反向DNS,以後重啓服務,並加以認證。

可在最初的主DNS192.168.1.77上認證:

dig -t A ns1.fin.hjc.com

4.DNS視圖實現基本的智能DNS

將以前的設置所有清除,只留一臺機器便可假設留192.168.1.77,而且該服務器上有雙網卡,另外一個IP地址爲:192.168.140.127

這裏定義了兩個視圖,假設兩個不一樣的網卡連接兩個不一樣的網絡,好比電信和聯通,不一樣的源地址請求返回不一樣的DNS,而且在這裏咱們使用了ACL,

在本例中爲了快捷沒有定義反向的DNS解析,只有正向。

vim /etc/named.conf

acl telecom {
	192.168.1.0/24;
	127.0.0.1;
};
acl unicom {
	192.168.140.0/24;
};
options {
	directory "/var/named";
	allow-recursion { telecom; };
	notify yes;
};

view telecom {
	match-clients { telecom; };
	zone "hjc.com" IN {
		type master;
		file "telecom.hjc.com.zone";
	};
};

view unicom {
	match-clients { any; };
	zone "hjc.com" IN {
		type master;
		file "unicom.hjc.com.zone";	
	};
};

 設置兩個不一樣的區域文件:

vim /var/named/telecom.hjc.com.zone

$TTL 43200
@       IN      SOA     ns1     admin.hjc.com (
                        20170401501
                        1H
                        10M
                        7D
                        1D )
                IN      NS      ns1
                IN      MX  10  mail
ns1             IN      A       192.168.1.77
mail            IN      A       192.168.1.76
www             IN      A       192.168.1.61

vim /var/named/unicom.hjc.com.zone

$TTL 43200
@       IN      SOA     ns1     admin.hjc.com (
                        20170401501
                        1H
                        10M
                        7D
                        1D )
                IN      NS      ns1
                IN      MX  10  mail
ns1             IN      A       192.168.1.77
mail            IN      A       192.168.140.128
www             IN      A       192.168.140.22

這樣最最基本的只能DNS就完成了

 

5.DNS的一些組件

關於DNS的組件這塊博主沒有去研究

dnstop 是監測DNS的一個工具;

queryperf 是進行DNS壓力測試的一款工具

這些工具在bind的源碼包裏面有一個contribe 的文件夾下包含,要自行手動編譯安裝,關於用法這裏仍是自行上網搜索吧。

相關文章
相關標籤/搜索