DNSDomain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析.

DNS服务器的类型:

                   DNS服务器:维护所负责解析的域内解析库服务器;解析库由管理维护;

                   DNS服务器:从主DNS服务器或其它的从DNS服务器那里“复制”(区域传递)一份解析库;

                              序列号:解析库的版本号;前提:主服务器解析库内容发生变化,其序列递增;

                              刷新时间间隔:从服务器从主服务器请求同步解析库的时间间隔;

                              重试时间间隔:从服务器从主服务器请求同步解析库失败时,再次尝试的时间间隔;

                              过期时长:从服务器始终联系不到主服务器时,多久多后放弃从服务器角度,停止提供服务;

区域传送:

                              全量传送:传送整个解析库

                              增量传送:传递解析库变化的那部分内容

缓存DNS服务器

DNS的工作原理及过程:

 1、客户机提出域名解析请求,并将该请求发送给本地的域名服务器。

       2、当本地的域名服务器收到请求后,先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。

       3、如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域) 的主域名服务器的地址。

       4、本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。

       5、重复第四步,直到找到正确的纪录。

   6、本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。

正向解析:

(1) 在主配置文件中定义区域  /etc/ named.rfc1912.zones 

                                     zone"ZONE_NAME" IN {

                                               type{master()|slave()|hint()|forward(转发)};

                                               file"ZONE_NAME.zone";

                                     };

例:vim /etc/named.rfc1912.zones 

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


检查语法错误:#named-checkconf

(2)定义区域解析库

/var/named目录下创建magedu.com.zone 文件

# vim magedu.com.zone
$TTL 86400
@     IN    SOA  ns1.magedu.com.  (
                  20150425
                  1H2
                  5M
                  7D
                  1D )
      IN    NS   ns1.magedu.com.
      IN   NS    ns2.magedu.com.
ns1   IN    A    172.16.249.17
ns2   IN   A     172.16.249.12
ww w  IN    A    172.16.249.17


检查语法错误:#named-checkzone“magedu.com” /var/named/magedu.com.zone

 

测试命令:dig

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

 

解析 www.magedu.com

[root@localhost named]# dig -t A www.magedu.com @172.16.249.17

 

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6<<>> -t A www.magedu.com @172.16.249.17
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id:50599
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2,ADDITIONAL: 2
 
;; QUESTION SECTION:
;www.magedu.com.                         IN     A
 
;; ANSWER SECTION:
www.magedu.com.                 86400       IN     A       172.16.249.17
 
;; AUTHORITY SECTION:
magedu.com.                  86400       IN     NS    ns1.magedu.com.
magedu.com.                  86400       IN     NS    ns2.magedu.com.
 
;; ADDITIONAL SECTION:
ns1.magedu.com.          86400       IN     A       172.16.249.17
ns2.magedu.com.          86400       IN     A       172.16.249.12
 
;; Query time: 1 msec
;; SERVER: 172.16.249.17#53(172.16.249.17)
;; WHEN: Sat Apr 25 16:17:27 2015
;; MSG SIZE  rcvd: 116


 

反向解析:

区域名称:网络地址反写.in-addr.arpa.

 

(1) 定义区域

                                   zone"ZONE_NAME" IN {

                                            type{master|slave|forward}

                                            file"网络地址.zone"

                                   };

例:

zone"1.16.172.in-addr.arpa" IN {
            typemaster;
            file"192.168.zone";
};


 (2) 区域解析库文件

       注意:不需要MXA,以及AAAA记录;以PTR记录为主;

 

$TTL 86400
$ORIGIN 1.16.172.in-addr.arpa.
@   IN    SOA  ns1.magedu.com.   admin.mage.com.(
              2015042501
              10M
              5M
              3D
              1D )
    IN    NS   ns1.magedu.com.
    IN    NS   ns2.magedu.com.
11  IN   PTR   ns1.magedu.com.
12  IN   PTR   ns2.magedu.com.


 

解析172.16.249.17

[root@localhost ~]# dig -x 172.16.249.17
 
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6<<>> -x 172.16.249.17
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id:24949
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2,ADDITIONAL: 2
 
;; QUESTION SECTION:
;17.249.16.172.in-addr.arpa.         IN     PTR
 
;; ANSWER SECTION:
17.249.16.172.in-addr.arpa. 86400 INPTR  ns1.magedu.com.
 
;; AUTHORITY SECTION:
249.16.172.in-addr.arpa. 86400   IN     NS    ns2.magedu.com.
249.16.172.in-addr.arpa. 86400   IN     NS    ns1.magedu.com.
 
;; ADDITIONAL SECTION:
ns1.magedu.com.          86400       IN     A       172.16.249.17
ns2.magedu.com.          86400       IN     A       172.16.249.12
 
;; Query time: 1 msec
;; SERVER: 172.16.249.17#53(172.16.249.17)
;; WHEN: Sat Apr 25 16:11:33 2015
;; MSG SIZE  rcvd: 136


       主从同步

1、应该为一台独立的名称服务器;

2、主服务器的区域解析库文件中必须有一条NS记录是指向从服务器;

3、从服务器只需要定义区域,而无须提供解析库文件;解析库文件应该放置于/var/named/slaves/目录中;

4、主服务器得允许从服务器作区域传送;

5、主从服务器时间应该同步,可通过ntp进行;

6bind程序的版本应该保持一致;否则,应该从高,主低;

 

定义从区域的方法:

zone "ZONE_NAME" IN {

                type slave;

                masters {MASTER_IP; };

                file"slaves/ZONE_NAME.zone";

};

 

例:打开一新的主机,配置缓存名称服务器并定义区域如下

#[root@bogon etc] vim named.conf
options {       
       listen-on port 53 { 127.0.0.1; 192.168.1.115; };       
       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; };        
       recursion yes;
};

       定义区域:

#[root@bogon etc]# vim named.rfc1912.zones
zone "magedu.com" IN {
       type slave;
       masters{ 192.168.1.114;};
       file "slaves/magedu.com.zone";
};
zone "1.168.192.in-addr.arpa" IN {
       type slave;
       masters{ 192.168.1.114;};
       file"slaves/192.168.zone";
};

重载主配置文件和区域解析库文件

#rndc reload

 从服务器配置完成;若主服务器增加新的记录,从服务器实时同步