DNS服務器搭建及配置,尚觀Day12

 第一、DNS服務器
    1、基本瞭解
    hosts  ---> DNS

    特點:
        1、是一個分佈式的數據庫,數據包存在一個域名空間裏
        2、解決了數據不一致,避免了名字衝突
        3、有緩存機制,提高了性能和可靠性


    規則:
        1、分層結構,最多127層,每層最多63個字符

    查詢方式:遞歸查詢、迭代查詢


    軟件包:
bind.i386        <---主服務的軟件包
bind-chroot.i386    <---安全軟件包
bind-libs.i386        <---庫文件
bind-utils.i386        <---工具包
bind-devel.i386        <---開發包


    協議:tcp / dup
    端口: 53      使用udp 53端口處理名字查詢,使用tcp 53端口數據文件的拷貝



    配置文件的目錄:
    
    a、在沒有安裝bind-chroot之前:
        /etc/named.conf
        /var/named/

    b、安裝bind-chroot之後
        /var/named/chroot/etc/named.conf      ---> 把 /var/named/chroot  虛擬成一個 /
        /var/named/chroot/var/named/


    2、配置
開始配置配置之前需要作一些準備:

        a、在hosts 文件寫上你的IP和主機名的對應關係
10.1.1.67       mail.upl.com

        b、關閉SeLinux,關閉iptables
        c、同步時間  ntpdate 10.1.1.1
# while :
> do
> ntpdate 10.1.1.1 2> /dev/null >/dev/null
> sleep 30
> done &

技巧,在rc.local寫以下代碼:
while : ; do ntpdate 10.1.1.1 2> /dev/null >/dev/null; sleep 30; done &


    配置DNS的大致過程:
        1、named.conf
        2、區域文件
        3、重啓named服務

實例1:配置正向解析
    
    1、編輯主配置文件 named.conf
格式:
options {
        字段 值;
    字段 值;
};  <-- 注意了,別漏了;




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

zone "upl.com" IN {
        type master;
        file "data/master.upl.com.zone";
};


    2、編寫區域文件
$TTL 86400
@       IN      SOA     upl.com.        root.upl.com. (
                                        2009110301  <--版本號,標識區域文件的版本
                                        15M    <----刷新時間,M分鐘,可以寫成秒,直接數字
                                        10M    <----刷新失敗後的重試時間
                                        1D    <----過期時間,從服務器更新數據失敗後這個區域文件的記錄有效期爲1天,1天后不生效了, D代表 天
                                        1H)    <----查無此域名,H 代表小時



@       IN      NS      mail.upl.com.     <---別忘記了最後的“ . ”  
        IN      MX 0    mail.upl.com.
mail    IN      A       10.1.1.67
web     IN      A       10.1.1.20
ftp     IN      A       10.1.1.21
www     IN      CNAME   web

編輯好區域文件,留意一下他的權限
ll /var/named/chroot/var/named/data/master.upl.com.zone
-rw-r--r-- 1 root root 216 11-03 11:40 /var/named/chroot/var/named

需要知道的是,bind軟件運行的時候採用的身份named

    3、重啓named服務器

    service named restart

    chkconfig --level 35 named on  <---開機自動啓動

    4、測試
    vim /etc/named.conf
nameserver 10.1.1.67  <---修改成自己的

    nslookup  web.upl.com


實例2:實現反向解析

    實現IP解析成域名

    1、主配置文件添加以下區:

zone "1.1.10.in-addr.arpa" IN {
        type master;
        file "data/master.1.1.10.in-addr.arpa.zone";
};


    2、區域文件:

$TTL 86400
@       IN      SOA     1.1.10.in-addr.arpa.        root. (
                                        01
                                        15M
                                        10M
                                        1D
                                        1H)
@       IN      NS      mail.upl.com.  <---別忘記了最後的“ . ”
67      IN      PTR     mail.upl.com.
20      IN      PTR     web.upl.com.
21      IN      PTR     ftp.upl.com.
20      IN      PTR     www.upl.com.

    3、重啓named服務

service named restart

    4、測試
首次測試別忘了修改/etc/resolv.conf文件,把DNS服務器指向你搭建的服務器
nslookup 10.1.1.20
nslookup 10.1.1.21

        


實例3:輪叫實現負載均衡
vim /var/named/chroot/var/named/data/master.upl.com.zone

$TTL 86400
@       IN      SOA     upl.com.        root.upl.com. (
                                        2009110301
                                        15M
                                        10M
                                        1D
                                        1H)
@       IN      NS      mail.upl.com.
        IN      MX 0    mail.upl.com.
mail    IN      A       10.1.1.67
web     IN      A       10.1.1.20
ftp     IN      A       10.1.1.21
www     IN      CNAME   web
web     IN      A       10.1.1.30   <---實現輪叫,一個主機名匹配多個IP
web     IN      A       10.1.1.31
web     IN      A       10.1.1.32
web     IN      A       10.1.1.33


實例4:實現直接解析
vim /var/named/chroot/var/named/data/master.upl.com.zone  
    
upl.com. IN     A       10.1.1.67  <---添加一行,別忘記最前面的那個 “ . ”


實例5:實現泛解析

*       IN      A       10.1.1.99

nslookup  kjfksdjflksdjflkdf.upl.com   ---> 10.1.1.99


實例6: 實現連接解析域名

    正向區域文件的設定:

$GENERATE 100-220 station$      IN      A       10.1.1.$



    方向區域文件的設定:

$GENERATE 100-220 $     IN      PTR     station$.upl.com.


[root@mail chroot]# nslookup 10.1.1.220
Server:         10.1.1.67
Address:        10.1.1.67#53

220.1.1.10.in-addr.arpa name = station220.upl.com.



實例7:輔助DNS服務器(從DNS服務器)的配置

    安裝一樣的軟件,準備工作和主服務器一樣


    1、配置主配置文件

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

zone "upl.com" IN {
        type slave;
        file "slaves/slave.upl.com.zone";  # 目錄定義要注意權限文件,slaves必
                        須是named:named,權限770
        masters { 10.1.1.67; };
};

    2、重啓named服務
service named restart


    3、驗證
a、 ls  /var/named/chroot/var/named/slaves/slave.upl.com.zone  《--是否下載回來

b、 查看日誌文件

tail -30 /var/log/messages

Nov  3 23:36:33 station181 named[4050]: zone upl.com/IN: Transfer started.
Nov  3 23:36:33 station181 named[4050]: transfer of 'upl.com/IN' from 10.1.1.67#53: connected using 10.1.1.92#60547
Nov  3 23:36:33 station181 named[4050]: zone upl.com/IN: transferred serial 2009110301
Nov  3 23:36:33 station181 named[4050]: transfer of 'upl.com/IN' from 10.1.1.67#53: end of transfer

c、修改/etc/resolv.conf文件
nameserver 10.1.1.92  <--執行10.1.1.92  

nslookup web.upl.com  <---測試

Server:         10.1.1.92
Address:        10.1.1.92#53

Name:   web.upl.com
Address: 10.1.1.32
Name:   web.upl.com
Address: 10.1.1.33


如果失敗,原因:1、是否能和主服務器通訊正常;
        2、配置文件是否正確;
        3、是否從服務器保存的區域文件路徑named用戶沒有權限寫;
        4、查看/var/log/messages文件看報錯。


實例7-1:驗證主從服務器的數據更新

    1、更新主服務器的區域文件的記錄,注意:必須增加版本號(比原來的大)
    vim var/named/data/master.upl.com.zone
    new     IN      A       10.1.1.88  《---添加一條新的記錄

    可以把刷新時間改成 1M ,等等好看到效果
    
    2、重啓主服務器的服務
    service named restart


    3、驗證從服務器是否在指定更新時間內把新版本的區域文件下載回來

    驗證方法:
        1、直接刪除從服務器上的已經下載回來的區域文件
rm -f /var/named/chroot/var/named/slaves/slave.upl.com.zone
        然後重啓 service named restart
        你會發現重新下載

        2、馬上再次更新主服務器的區域文件的記錄,增加或者刪除記錄都行,並更新版本號,並重啓主服務器的服務
        service named restart

        3、由於新下載的區域文件已經是1M的刷新時間了,我們就監控/var/log/messages文件
tail -f /var/log/messages  <---如果看到有內容更新日誌過來就正確了

        稍等1分鐘左右,就能看到日誌文件有內容輸出了,並驗證一下區域文件的版本號

shell> head -5 /var/named/chroot/var/named/slaves/slave.upl.com.zone

$ORIGIN .
$TTL 86400      ; 1 day
upl.com                 IN SOA  upl.com. root.upl.com. (
                                2009110303 ; serial   <----留意,版本號已經是最新的
                                60         ; refresh (1 minute)



實例7-2: 限制數據傳輸的IP:

zone "upl.com" IN {
        type master;
        file "data/master.upl.com.zone";
        allow-transfer { 10.1.1.92; };   <---在主服務器上進行限制,這樣就只能10.1.1.92作爲你的從服務器
};


        
實例8:轉發服務器的配置

    類型:條件轉發 和 完全轉發

    1、條件轉發的配置:但配置文件找不到的區的時候才轉發出去,還有就是指定了轉發的區也轉發出去

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

zone "cluster.com" IN {
        type forward;
        forwarders { 10.1.1.1; };  《---條件轉發,只有cluster.com這個區才轉發
};

zone "upl.com" IN {   《---沒有定義轉發,所以自己去管理,自己去解析
        type master;
        file "data/master.upl.com.zone";
        allow-transfer { 10.1.1.92; };
};
    2、完全轉發的配置


options {
        directory "/var/named";
        forwarders { 10.1.1.1; };
        forward only ;
};


實例9:定義根域

    根域地址列表獲取命令:
dig @a.root-servers.net. ns > /var/named/chroot/var/named/named.ca
[root@mail chroot]# chown named:named /var/named/chroot/var/named/named.ca
[root@mail chroot]# chmod 770 !$

options {
        directory "/var/named";
        forwarders {10.1.1.1;};
        forward only;
};

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

發佈了44 篇原創文章 · 獲贊 2 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章