zoukankan      html  css  js  c++  java
  • 基于Bind实现的DNS正反向解析及主从DNS的配置

    一、什么是DNS?

    1.1 简单的理解,Domain Name System,是互联网一项核心的服务,他作为一个桥梁可以将域名和IP地址相互因素的一个分布式数据库,能够使人更加方便的访问互联网,而不用去记复杂的IP地址。

    1.2 DNS分成3类:

        主DNS

        从DNS

        转发DNS

    1.3 DNS的查询方式

     1.3.1 递归查询:只要发出递归查询,服务器必需回答目标IP与域名的映射关系。一般客户机和服务器之间属递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外DNS服务器发出查询请求,得到结果后转交给客户机;

     1.3.2 迭代查询:服务器收到一次迭代查询回复一次结果,这个结果不一定是目标IP与域名的映射关系,也可以使其他的DNS服务器地址。

       一般DNS服务器之间属迭代查询,若DNS2不能响应DNS1的请求,则它会将DNS3的IP给DNS2,以便再向DNS3发出请求;

    二、主从DNS的搭建及域名的正反向解析

    2.1 测试环境

     准备2台虚拟机,一台为主DNS,IP地址为192.168.1.10,另一台为从DNS,IP地址为192.168.1.11

     2台虚拟机都装好bind,

    1
    [root@localhostcw ~]# yum -y install bind
    1
    [root@localhostcw ~]# yum install -y bind-utils (包含一些配置和测试工具)

    bind服务器端程序 
    主要执行程序:/usr/sbin/named 
    服务脚本:/etc/init.d/named 
    默认监听端口:UDP和TCP的53 
    主配置文件: /etc/named.conf 
    保存DNS解析记录的数据文件位于:/var/named/

    2.2 主DNS的配置文件

    配置主配置文件/etc/named.conf

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    options {
    //      listen-on port 53 { any; };
    //      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;
    //      dnssec-enable yes;
    //      dnssec-validation yes;
    //      dnssec-lookaside auto;
            /* Path to ISC DLV key */
    //      bindkeys-file "/etc/named.iscdlv.key";
    //      managed-keys-directory "/var/named/dynamic";
    };
    logging {
            channel default_debug {
                    file "data/named.run";
                    severity dynamic;
            };
    };
    zone "." IN {
            type hint;
            file "named.ca";
    };
    include "/etc/named.rfc1912.zones";
    //include "/etc/named.root.key";

    2.3定义工作目录,添加两个区域,一个正向解析,一个反向解析

    编辑/etc/named.rfc1912.zones

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    //
    // ISC BIND named zone configuration for zones recommended by
    // RFC 1912 section 4.1 : localhost TLDs and address zones
    // and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt
    // (c)2007 R W Franks
    //
    // See /usr/share/doc/bind*/sample/ for example named configuration files.
    //
    zone "localhost.localdomain" IN {
            type master;
            file "named.localhost";
            allow-update { none; };
    };
    zone "localhost" IN {
            type master;
            file "named.localhost";
            allow-update { none; };
    };
    zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
            type master;
            file "named.loopback";
            allow-update { none; };
    };
    zone "1.0.0.127.in-addr.arpa" IN {
            type master;
            file "named.loopback";
            allow-update { none; };
    };
    zone "0.in-addr.arpa" IN {
            type master;
            file "named.empty";
            allow-update { none; };
    };
    添加这2
    zone "cwlinux.com" IN {                    //正向解析
            type master;                      //类型为主DNS
            file "cwlinux.com.zone";          //正向解析文件位置
            allow-transfer { 192.168.1.11; }; //授权从DNS连接主DNS
            allow-update { none; };           //允许自动更新
    };
    zone "1.168.192.in-addr.arpa" IN {      //反向解析
            type master;                     //类型为主DNS
            file "192.168.1.zone";           //反向解析文件位置
            allow-transfer { 192.168.1.11; };//授权从DNS连接主DNS
            allow-update { none; };          //允许自动更新
    };

    2.3.1 在/var/named/目录中添加正反向解析文件

    添加正向解析文件 cwlinux.com.zone

    1
    [root@localhostcw ~]# vim /var/named/cwlinux.com.zone
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    $TTL 600
    @        IN   SOA    dns.cwlinux.com   dnsadmin.cwlinux.com. (//SOA字段
                              2015031288   //版本号    同步一次  +1
                                 1H        //更新时间
                                 2M        // 更新失败,重试更新时间
                                 2D        // 更新失败多长时间后此DNS失效时间
                                 1D        //解析不到请求不予回复时间
    )
             IN    NS   dns            //有两域名服务器
             IN    NS   ns2
             IN    MX  10 mial        // 定义邮件服务器,10指优先级  0-99 数字越小优先级越高
    ns2      IN    A    192.168.1.113  //ns2域名服务器的ip地址
    dns      IN    A    192.168.1.10   //dns域名服务器的ip地址
    mail     IN    A    192.168.1.111   //邮件服务器的ip地址
    www      IN    A    192.168.1.112   //www.cwlinux.com的ip地址
    pop      IN   CNAME  mail         //pop的正式名字是mail
    ftp      IN   CNAME  www         //ftp的正式名字是www

    添加反向解析文件 192.168.1.zone

    1
    [root@localhostcw ~]# vim /var/named/192.168.1.zone
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $TTL 600
    @         IN   SOA    dns.cwlinux.com.   dnsadmin.cwlinux.com. (
                                 2014031224
                                 1H
                                 2M
                                 2D
                                 1D
    )
             IN   NS      dns.cwlinux.com.
    10       IN   PTR     dns.cwlinux.com.     //反向解析PTR格式
    111       IN   PTR     mail.cwlinux.com.
    112       IN   PTR     www.cwlinux.com.
    // 声明域的时候已经有了,192.168.1 所以我们只需要输入10既代表192.168.1.10

     

    检查语法错误

    wKioL1MgcOajIiJdAAChvuWDqms353.jpg

    把两个自定义区域文件的属组改为named

    1
    2
    #chown :named /var/named/cwlinux.com.zone   //若这步没做正向解析会出现”server can't find www.cwlinux.com:SERVFAIL”的错误
    #chown :named /var/named/192.168.1.zone  //若这步没做反向解析会出现”server can't find 10.1.168.192.in-addr.arpa:SERVFAIL”的错误

    安全起见,把这2个文件权限改成640

    1
    [root@localhostcw ~]# chmod 640 cwlinux.com.zone 1.168.192.zone

    2.4 重启主DNS,然后在主DNS上测试正反向解析

    wKioL1Mgfu3SSPtdAAB8qObszAM697.jpg

    wKioL1MgdADjRUTEAAKKrP94S-A545.jpg

     

    反向解析

    wKiom1MgdD6A2wlbAAJjYnOXTso017.jpg

    2.5 从DNS主配置文件

    vim /etc/named.conf 和主DNS配置一样

    编辑区域文件 /etc/named.rfc1912.zones

    wKioL1MgdS2S_6TAAABBbb9MT_g478.jpg

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    // named.rfc1912.zones:
    //
    // Provided by Red Hat caching-nameserver package
    //
    // ISC BIND named zone configuration for zones recommended by
    // RFC 1912 section 4.1 : localhost TLDs and address zones
    // and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt
    // (c)2007 R W Franks
    //
    // See /usr/share/doc/bind*/sample/ for example named configuration files.
    //
    zone "localhost.localdomain" IN {
            type master;
            file "named.localhost";
            allow-update { none; };
    };
    zone "localhost" IN {
            type master;
            file "named.localhost";
            allow-update { none; };
    };
    zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
            type master;
            file "named.loopback";
            allow-update { none; };
    };
    zone "1.0.0.127.in-addr.arpa" IN {
            type master;
            file "named.loopback";
            allow-update { none; };
    };
    zone "0.in-addr.arpa" IN {
            type master;
            file "named.empty";
            allow-update { none; };
    };
    添加以下2
    zone  "cwlinux.com" IN {                //正向解析
              type slave;                   //类型为从DNS
              masters { 192.168.1.10; };    //主DNS ip地址
            file "slaves/cwlinux.com.zone"// cwlinux.com.zone拷贝到slaves目录下(/var/named/slaves)
          allow-update { none; };           //允许自动更新
    };
    zone "1.168.192.in-addr.arpa" IN {   // 反向解析
              type slave;                //类型为从DNS
              masters { 192.168.1.10; };  //主DNS ip地址
             file "slaves/192.168.1.zone";// 192.16.1.zone拷贝到slaves目录下(/var/named/slaves)
            allow-update { none; };       //允许自动更新
    };
    ~

    重启从DNS

    查看/var/named/slaves/

    wKiom1Mgd7fyYjxaAABZKiMK45Y944.jpg

    测试正向解析

    wKiom1Mgd9HQY7_UAAH9xoNeBh0004.jpg

    三、主从同步

    在主DNS /var/named/cwlinux.com.zone 中加一条A记录

    wKiom1Mge7zQVIAkAADumwKkNEg326.jpg

    主DNS重读配置文件

    1
    [root@localhostcw named]# service named reload

    到从DNS上查看是否同步复制过来

    wKiom1Mgeyah2zzvAAH-etDtS9k662.jpg

    从上图看出,数据已经同步传输过来了

       这次先介绍了下基于bind实现的主从DNS的配置,正反向域名解析,主从复制这些内容,由于初学DNS,不足之处在所难免,敬请见谅!下次再来介绍下DNS的子域授权和转发机制,view机制!

  • 相关阅读:
    ES6常用语法
    nodejs中exports与module.exports的区别
    CSS animation动画
    CSS user-select文本是否可复制
    VUE 滚动插件(better-scroll)
    VUE 父组件与子组件交互
    CSS div内文字显示两行,超出部分省略号显示
    linux下使用tar命令
    linux fdisk命令使用
    关于SUID、SGID、Sticky
  • 原文地址:https://www.cnblogs.com/heidsoft/p/7686137.html
Copyright © 2011-2022 走看看