RHEL5上DNS服務的搭建

DNS Domain Name System 域名解析系統

dns作用

正向解析:將域名轉換成對應的ip地址

反向解析:將ip地址轉換成對應的域名

使用端口  tcp/udp 53  DNS在進行區域傳輸的時候使用TCP協議,其它時候則使用UDP協議;

域名解析過程

wKiom1QqP8niCG50AASkSbV-Je8678.jpg

dns服務器類型   緩存服務器    主域名服務器    從域名服務器

使用rpm包或者yum安裝DNS服務的軟件bind bind-chroot caching-nameserver


        bind               服務器軟件包

        bind-chroot        切換路徑包

        caching-nameserver 模板文件

[root@localhostServer]# rpm -ivh bind-9.3.6-20.P1.el5_8.5.x86_64.rpmbind-chroot-9.3.6-20.P1.el5_8.5.x86_64.rpm caching-nameserver-9.3.6-20.P1.el5_8.5.x86_64.rpm

安裝bind-chroot軟件包後配置文件的根目錄到/var/named/chroot

[root@localhost~]# cd /var/named/chroot/etc
編輯主配置文件named.conf,可以複製caching-nameserver.conf文件內容做模板修改
[root@localhostetc]# cp -p named.caching-nameserver.conf named.conf
[root@localhostetc]# ls
localtime named.caching-nameserver.conf named.conf named.rfc1912.zones  rndc.key

編輯主配置文件

[root@localhostetc]# vim named.conf
options {
       listen-on port 53 { 192.168.10.1; };     監聽IP,DNS服務器本機的IP地址
       listen-on-v6 port 53 { ::1; };
       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; };       允許訪問的客戶機
       allow-query-cache { any; };
};
logging {
       channel default_debug {
               file"data/named.run";
               severity dynamic;
       };
};
viewlocalhost_resolver {
       match-clients      { any; };       允許匹配的客戶端
       match-destinations { any; };
       recursion yes;
       include "/etc/named.rfc1912.zones";
};

編輯/etc/named.rfc1912.zones文件

[root@localhostetc]# vim named.rfc1912.zones
zone"example.com" IN {       正向解析
      type master;     //type類型 hint根區域 ,master主區域,slave從區域,forward轉發區域
      file "example.com.zone";  
};

zone"10.168.192.in-addr.arpa" IN {  反向解析
     type master;
     file "192.168.10.arpa";

};

編輯example.com.zone192.168.10.arpa文件,可以從named.loacl等文件複製模板。

[root@localhostetc]# cd /var/named/chroot/var/named/
[root@localhostnamed]# ls
data              localhost.zone   named.ca         named.local  slaves
localdomain.zone  named.broadcast  named.ip6.local  named.zero
[root@localhostnamed]# cp -p named.local example.com.zone

編輯正向解析文件

[root@localhostnamed]# vim example.com.zone
$TTL    86400
@       IN     SOA     example.com. root.example.com.  ( @代表域名(實驗爲example.com)
                                    2014030301 ; Serial    版本號,自己編寫
                                    28800      ; Refresh
                                    14400      ; Retry
                                    3600000    ; Expire
                                     86400)    ; Minimum
       IN     NS      dns1.example.com.   對DNS服務器本地的聲明,[zone] IN NS [主機名稱]
NS後面接的一定是主機名稱,代表:這個zone的查詢請向後面這部主機要求。所以如果你這個zone有兩部以上的DNS服務器負責時,就必須寫兩個NS,而NS後面接的主機名稱必須要有ip的對應,這時就需要A這個標記了。                                                             
dns1    IN     A       192.168.10.1       對DNS服務器本機的地址解析
www     IN     A       192.168.10.2      對域名的地址解析
@        IN    MX    5    mail.example.com. 郵件解析,MX與MAIL SERVER有關,其用途是郵件轉發,MX後面的數值越小越優先,而接的主機名稱必須有A記錄纔可以。
mail    IN     A       192.168.10.3
bbs     IN     A       192.168.10.4
blogs   IN     CNAME   bbs               設置別名
@       IN     A       192.168.10.2      
*       IN     A       192.168.10.2        匹配地址.example.com前加任何字符的查詢
$GENERATE20-200 station$ IN A  192.168.10.$調用函數

編輯反向解析文件,可以複製正向解析文件編輯

[root@localhostnamed]# cp -p example.com.zone 192.168.10.arpa
[root@localhostnamed]# vim 192.168.10.arpa
$TTL    86400
@       IN     SOA     example.com. root.example.com.  (
                                    2014030301 ; Serial
                                    28800      ; Refresh
                                    14400      ; Retry
                                    3600000    ; Expire
                                     86400)    ; Minimum
       IN     NS      dns1.example.com.    
1       IN     PTR     dns1.example.com.
2       IN     PTR     www.example.com.
3       IN     PTR     mail.example.com.
4       IN     PTR     bbs.example.com.
$GENERATE 20-200 $IN PTR  station$.example.com

對編輯的配置文件進行語法的檢測named-checkconf,named-chenkzone

[root@localhostnamed]# named-checkconf /var/named/chroot/etc/named.conf
[root@localhostnamed]# named-checkzone example.com /var/named/ chroot/var/named/example.com.arpa
zone example.com/IN:loaded serial 2014030301
OK
[root@localhostnamed]# named-checkzone example.com /var/named/ chroot/var/named/192.168.10.arpa
zone example.com/IN:loaded serial 2014030301
OK

配置從DNS服務器

[root@localhost~]# cd /var/named/chroot/etc/
[root@localhostetc]# ls
localtime  named.caching-nameserver.conf  named.rfc1912.zones  rndc.key
[root@localhostetc]# cp -p named.caching-nameserver.conf named.conf
[root@localhostetc]# vim named.conf
options {
       listen-on port 53 { 192.168.10.254; };
       listen-on-v6 port 53 { ::1; };
       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";
       // Those options should be usedcarefully because they disable port
       // randomization
       // query-source    port 53;    
       // query-source-v6 port 53;

       allow-query     { any; };
       allow-query-cache { any; };
};
logging {
       channel default_debug {
               file"data/named.run";
               severity dynamic;
       };
};
viewlocalhost_resolver {
       match-clients      { any; };
       match-destinations { any; };
       recursion yes;
       include"/etc/named.rfc1912.zones";
};
[root@localhostetc]# vim named.rfc1912.zones
zone "example.com" IN {
      type slave;
      file"slaves/example.com.zone";
      masters{192.168.10.1;};
};

zone "10.168.192.in-addr.arpa" IN {
     type slave;
     file"slaves/192.168.10.zrpa";
     masters {192.168.10.1;};
};

在主DNS服務器的主配置文件中添加,只允許此IP地址的客戶端從主DNS服務器獲得解析文件

[root@server1~]# vim /var/named/chroot/etc/named.conf
allow-transfer { 192.168.10.1; };

子域授權。 

    dns是分層負責解析的,子域授權就是在一個域內新建幾個子域,然後客戶端的dns指向父域的地址,能夠解析到父域管轄內子域的記錄,子域的客戶端把DNS指向子域能夠解析父域的地址。減輕父域的負擔

    配置DNS服務器的子域授權。正常配置兩臺DNS服務器,在父DNS服務器的正向解析文件中添加子域DNS服務器的地址指向。有時配置不成功,需要在父域主配置文件中添加allow-recursion { any };允許遞歸查詢。在子域DNS服務器中全局配置中添加forwarders { 192.168.10.254; };,當有DNS請求發給子域DNS服務器時,子域可以將請求轉發給父域。

我們的DNS在本地指定的DNS找不到解析後,會直接向跟發起請求,爲了使根的負載變小,我們可以設置請求轉發。在/etc/named.conf中可以在options段中使用forwarders和forward指令設置DNS轉發:

轉發格式:

forwarders {

   DNS_IP_1;

   DNS_IP_2;

   };

forwarders指令用於設置將DNS請求轉發到哪個服務器,可以指定多個服務器的IP地址。

forward

forward first | only;

forward指令用於設置DNS轉發的工作方式:

forward first設置優先使用forwarders DNS服務器做域名解析,如果查詢不到再使用本地DNS服務器做域名解析。

forward only設置只使用forwarders DNS服務器做域名解析,如果查詢不到則返回DNS客戶端查詢失敗。

轉發某特定區域:

zone "特定區域" IN {

type forward;

forwarders { IP; }

forward only|first;

}

DNS緩存服務器

利用forwarders可以做DNS緩存服務器。只需在主配置文件中添加forwarders { ; };

父域
[root@server1~]# vim /var/named/chroot/var/named/tarena.com.zone
bj.example.com. IN NS dns1.example.com.
dns1.bj.example.com. IN A 192.168.10.2
子域配置
[root@localhostetc]# vim /var/named/chroot/etc/named.conf
forwarders { 192.168.10.254; };  全局配置中

分離解析

根據不同客戶端的來源地址在訪問相同域名時,可以給出不同解析結果。

[root@localhostetc]# vim /var/named/chroot/etc/named.conf
viewlocalhost_resolver {                  view名字不能一樣
       match-clients      { any; };    //設置使用此zone的匹配的客戶端限制,telecom電信,unicom聯通。
       match-destinations { any; };
       recursion yes;
       include"/etc/named.rfc1912.zones";
};
viewlocalhosti1_resolver {
       match-clients      { any; };
       match-destinations { any; };
       recursion yes;
       include"/etc/named.rfc1913.zones";     文件名不能一樣
};
[root@localhostetc]# cp -p named.rfc1912.zones named.rfc1913.zones
[root@server1~]# vim /var/named/chroot/etc/named.rfc1913.zones
不能與原來文件名一樣
zone"tarena.com" IN {
       type master;
       file "ly.example.com.zone";    正向解析
};

zone"10.168.192.in-addr.arpa" IN {   反向解析
      type master;              
      file "ly.192.168.10.arpa";
};

編輯正向解析文件

[root@server1named]# cp -p example.com.zone ly.example.com.zone
[root@server1named]# vim ly.example.com.zone
$TTL    86400
@       IN     SOA     example.com.root.example.com.  (
                                    2014030601 ; Serial
                                    28800      ; Refresh
                                    14400      ; Retry
                                     3600000    ; Expire
                                     86400)    ; Minimum
       IN     NS      dns1.example.com.
dns1    IN     A       192.168.10.254
www     IN     A       192.168.10.2



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