码迷,mamicode.com
首页 > 其他好文 > 详细

DNS正反解析及主从同步的实现

时间:2015-09-30 14:41:29      阅读:285      评论:0      收藏:0      [点我收藏+]

标签:release   服务器   客户端   用户   记录   


主DNS服务器:172.16.249.138

辅(slave)服务器:172.16.249.177

~]# cat /etc/redhat-release 

CentOS release 6.6 (Final)

~]# uname -r

2.6.32-504.el6.x86_64


技术分享


用户一次完整的DNS查询请求:

     Client客户端发起查询请求 --> /etc/hosts会首先查询自己的本地hosts文件是否有DNS定义,如果有返回结果,否则继续请求查询 --> DNS Service通过DNS服务器发起查询请求 --> Local Cache会先查看本地是否有缓存记录,如果有返回结果,否则继续请求查询 --> DNS Server 向DNS服务器发起查询请求,一次递归请求 --> Server Cache 服务器端会查询自己是否有缓存记录,如果有返回结果,否则会根据请求查询 --> iteration迭代直至返回结果给Client

DNS服务器的类型:

          主DNS服务器;               

          辅助DNS服务器;           

          缓存DNS服务器;           

          转发服务器;      

FQDN: Full Qualified Domain Name  完全合格域名

     

服务脚本:/etc/rc.d/init.d/named
主配置文件:/etc/named.conf, /etc/named.rfc1912.zones, /etc/rndc.key /etc/rndc.conf
解析库路径:/var/named/

本地名称解析路径: /etc/hosts


编辑name.conf配置文件.    //在named里是注意某一行的意思,修改完成后记得重启

[root@Corazon ~]# vim /etc/named.conf 
options {        listen-on port 53 { 172.16.249.138; };    # 监听 172.16.249.138的 53号端口        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;        dnssec-enable no;        dnssec-validation no;        dnssec-lookaside no;        /* Path to ISC DLV key *///      bindkeys-file "/etc/named.iscdlv.key";////      managed-keys-directory "/var/named/dynamic";};
[root@Corazon ~]# service named restart #     重启服务器

定义区域配置文件,在文件内追加这两个zone,ibm.com是正向区域解析库,249.16.172.in-addr.arpa则是反向区域解析库。

[root@Corazon named]# vim /etc/named.rfc1912.zones
zone "ibm.com" IN {        type master;                     # 可选类型{master|hint|slave|forward}        file "ibm.zone";                # master:主DNS服务器 hint:根DNS服务器 slave:辅助DNS服务器 forward:转发服务器
};                                                                # 每个语句后面必须要有分号 --> ; <-- zone "249.16.172.in-addr.arpa" IN {          # 反向区域格式必须这样定义 --> IP反过来.in-addr.arpa 例如: 1.2.3.4 --> 4.3.2.1.in-addr.arpa        type master;        file "249.16.172.zone";};

检查named配置文件是否有错,如果没有信息提示,则说明没有语法错误

[root@Corazon named]# named-checkconf

区域解析库由众多Resource Record简称RR 资源记录组成

     资源记录常用的有如下几种:

                    SOA: 起始授权记录,一个解析库只能有一个,并且需要定义在解析库文件的第一条

                    A,AAAA: 完全合格域名指定其对应的IP地址 A是IPv4, AAAA是IPv6

                    PTR: IP --> FQDN

                    NS: 名称服务器 主要用于表明当前区域的DNS服务器

                    MX: 邮件交换

                    CNAME: 别名记录

                    

编辑正向区域文件

     @: 引用当前区域的名字

     $TTL 全局定义  全局都可以继承$TTL指定的值

[root@Corazon named]# vim ibm.zone 
$TTL 1D@       IN      SOA     ibm.com.        mail.ibm.com. (          # SOA记录必须是第一条                                        2015091601     # 序列号,用于定义配置版本,从服务器判断同步的关键                                         1H          # 从服务器上主服务器上同步的刷新时间间隔                                         3m         # 从服务器上主服务器上同步失败后重新发起同步的时间间隔                                         1W         # 联系不上主服务器的最大时间期限                                         1D)         # 否定答案TTL值         IN      NS      ns1                         # 定义ns记录主配置文件内除了SOA记录ibm.com.不可省略
        IN      NS      ns2                             ,其余可省略ibm.com. 
ns1     IN      A       172.16.249.138     # NS,MX,都必须要有一条A记录ns2     IN      A       172.16.249.177mail    IN      A       172.16.249.21           IN      MX 10   mail                    # 在定义MX与其他记录不同的时,必须要指定优先级www     IN      A       172.16.249.138    # 一条记录可以定义多次www     IN      A       172.16.249.21      # 出现多次的记录会以轮询方式工作web     IN      CNAME   www               # web.ibm.com.别名到www.ibm.com.

检查正向区域配置文件是否有错,如果没有报错信息,则说明没有语法错误

[root@Corazon named]# named-checkzone ibm.com /var/named/ibm.zone
zone ibm.com/IN: loaded serial 2015091601OK

编辑反向区域文件

[root@Corazon named]# vim 249.16.172.zone           
$TTL 1D@       IN      SOA     ibm.com.        mail.ibm.com. (                                        2015091601                                              1D                                                               10M                    
                                        5D                                                              1D)                             IN      NS      ns1.ibm.com.               # 同主配置文件一样        IN      NS      ns2.ibm.com.               138     IN      PTR     ns1.ibm.com.          # 反向区域不用定义A、MX记录177     IN      PTR     ns2.ibm.com.21       IN      PTR     mail.ibm.com.138     IN     PTR    www.ibm.com.21     IN       PTR     www.ibm.com.


检查反向区域配置文件是否有错,,如果没有报错信息,则说明没有语法错误

[root@Corazon named]# named-checkzone 249.16.172.in-addr.arpa /var/named/249.16.172.zone
zone 249.16.172.in-addr.arpa/IN: loaded serial 2015091601
OK

测试是否配置成功可以使用

          dig、host、nslookup


     正解:FQDN-->IP
         # dig -t A FQDN
         # host -t A FQDN
     反解:IP-->FQDN
          # dig -x IP
          # host -t PTR IP

[root@Corazon named]# dig -t A www.ibm.com @172.16.249.138; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6 <<>> -t A www.ibm.com @172.16.249.138;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37874;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2;; QUESTION SECTION:;www.ibm.com.               IN     A;; ANSWER SECTION:www.ibm.com.          86400     IN     A     172.16.249.138www.ibm.com.          86400     IN     A     172.16.249.21;; AUTHORITY SECTION:ibm.com.          86400     IN     NS     ns1.ibm.com.ibm.com.          86400     IN     NS     ns2.ibm.com.;; ADDITIONAL SECTION:ns1.ibm.com.          86400     IN     A     172.16.249.138ns2.ibm.com.          86400     IN     A     172.16.249.177;; Query time: 0 msec;; SERVER: 172.16.249.138#53(172.16.249.138);; WHEN: Mon Sep  7 20:06:25 2015;; MSG SIZE  rcvd: 129
[root@Corazon named]# host -t A mail.ibm.com 172.16.249.138Using domain server:Name: 172.16.249.138Address: 172.16.249.138#53Aliases:mail.ibm.com has address 172.16.249.21

下面我们演示一下DNS的主从复制:

     主从复制需要注意以下几点:

               1、应该是一台单独的服务器

               2、主服务器的区域解析库文件ns记录一定要有一条指定slave服务器

               3、slave只需要定义区域即可,不需要提供解析库文件,而在定义区域时,应该讲解析库文件指定在/var/named/slaves目录下

               4、主服务器需要允许slave进行区域传送

               5、主从的服务器时间应该同步一致

               6、bind程序的版本应该保持一致,否则的话 slave的版本应该高于主DNS服务器的版本

编辑修改Slave的named.conf配置文件,只修改如下部分

[root@Corazon slaves]# vim /etc/named.conf   
          options {
        listen-on port 53 { 172.16.249.177; };
        directory       "/var/named";
        allow-query     { 172.16.0.0/16; };
        recursion yes;
编辑区域文件增加如下内容
[root@Corazon slaves]# vim /etc/named.rfc1912.zones
zone "ibm.com" IN {        type slave;        masters { 172.16.249.138; };        file "slaves/ibm.zone";};zone "249.16.172.in-addr.arpa" IN {        type slave;        masters { 172.16.249.138; };        file "slaves/172.16.249.zone";};
[root@Corazon slaves]# rndc reload   # 重载主配置文件和区域解析库文件
查看是否同步成功,
[root@Corazon slaves]# pwd/var/named/slaves[root@Corazon slaves]# lltotal 8-rw-r--r-- 1 named named 430 Sep 16 14:42 172.16.249.zone-rw-r--r-- 1 named named 432 Sep 16 14:23 ibm.zone


技术分享

技术分享


到这里我们的DNS配置已经全部完成,谢谢


完。


DNS正反解析及主从同步的实现

标签:release   服务器   客户端   用户   记录   

原文地址:http://corazon.blog.51cto.com/9658694/1699497

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!