美文网首页
note_19.2_DNS配置

note_19.2_DNS配置

作者: 人間失格_430b | 来源:发表于2019-03-28 14:33 被阅读0次

    DNS and Bind(2)

    BIND的安装配置:
    BIND: Berkeley Internet Name Domain, ISC.org
    dns: 协议
    bind: dns协议的一种实现
    named:bind程序的运行的进程名

    程序包:
    bind-libs:被bind和bind-utils包中的程序共同用到的库文件;
    bind-utils:bind客户端程序集,例如dig, host, nslookup等;

    bind:提供的dns server程序、以及几个常用的测试程序;
    bind-chroot:选装,让named运行于jail模式下;

    bind:

    • 主配置文件:/etc/named.conf
      或包含进来其它文件;
      /etc/named.iscdlv.key
      /etc/named.rfc1912.zones
      /etc/named.root.key
    • 解析库文件:
      /var/named/目录下;
      一般名字为:ZONE_NAME.zone

    注意:
    (1) 一台DNS服务器可同时为多个区域提供解析;
    (2) 必须要有根区域解析库文件: named.ca;
    (3) 还应该有两个区域解析库文件:localhost和127.0.0.1的正反向解析库;
    正向:named.localhost
    反向:named.loopback

    rndc:remote name domain contoller
    953/tcp,但默认监听于127.0.0.1地址,因此仅允许本地使用;

    bind程序安装完成之后,默认即可做缓存名称服务器使用;如果没有专门负责解析的区域,直接即可启动服务;
    CentOS 6: service named start
    CentOS 7: systemctl start named.service

    主配置文件格式:

    • 全局配置段:
      options { ... }
    • 日志配置段:
      logging { ... }
    • 区域配置段:
      zone { ... }
      那些由本机负责解析的区域,或转发的区域;

    注意:每个配置语句必须以分号结尾;

    • 缓存名称服务器的配置:
      监听能与外部主机通信的地址;
      listen-on port 53;
      listen-on port 53 { 172.16.100.67; };

    • 学习时,建议关闭dnssec
      dnssec-enable no;
      dnssec-validation no;
      dnssec-lookaside no;

    • 关闭仅允许本地查询:
      //allow-query { localhost; };

    • 检查配置文件语法错误:
      named-checkconf [/etc/named.conf]

    测试工具:

    dig, host, nslookup等

    • dig命令:
      dig [-t RR_TYPE] name [@SERVER] [query options]
      用于测试dns系统,因此其不会查询hosts文件;

      查询选项:
      +[no]trace:跟踪解析过程;
      +[no]recurse:进行递归解析;

      注意:反向解析测试
      dig -x IP

      模拟完全区域传送:
      dig -t axfr DOMAIN [@server]

    • host命令:
      host [-t RR_TYPE] name SERVER_IP

    • nslookup命令:
      nslookup [-options] [name] [server]

      交互式模式:
      nslookup>
      server IP:以指定的IP为DNS服务器进行查询;
      set q=RR_TYPE:要查询的资源记录类型;
      name:要查询的名称;

    • rndc命令:
      named服务控制命令
      rndc status
      rndc flush

    配置解析一个正向区域:

    1. 定义区域
      在主配置文件中或主配置文件辅助配置文件中实现;

      zone  "ZONE_NAME"  IN  {
              type  {master|slave|hint|forward};
              file  "ZONE_NAME.zone"; 
      };  
      

      注意:区域名字即为域名;

    2. 建立区域数据文件(主要记录为A或AAAA记录)
      在/var/named目录下建立区域数据文件;

      文件为:/var/named/magedu.com.zone

                              $TTL 3600
                              $ORIGIN magedu.com.
                              @       IN      SOA     ns1.magedu.com.   dnsadmin.magedu.com. (
                                      2017010801
                                      1H
                                      10M
                                      3D
                                      1D )
                                  IN      NS      ns1
                                  IN      MX   10 mx1
                                  IN      MX   20 mx2
                              ns1     IN      A       172.16.100.67
                              mx1     IN      A       172.16.100.68
                              mx2     IN      A       172.16.100.69
                              www     IN      A       172.16.100.67
                              web     IN      CNAME   www
                              bbs     IN      A       172.16.100.70
                              bbs     IN      A       172.16.100.71
      

      权限及属组修改:
      # chgrp named /var/named/magedu.com.zone
      # chmod o= /var/named/magedu.com.zone

      检查语法错误:
      # named-checkzone ZONE_NAME ZONE_FILE
      # named-checkconf

    3. 让服务器重载配置文件和区域数据文件
      # rndc reload
      # systemctl reload named.service

    配置解析一个反向区域

    1. 定义区域
      在主配置文件中或主配置文件辅助配置文件中实现;

      zone  "ZONE_NAME"  IN  {
              type  {master|slave|hint|forward};
              file  "ZONE_NAME.zone"; 
      };  
      

      注意:
      反向区域的名字
      反写的网段地址.in-addr.arpa
      100.16.172.in-addr.arpa

    2. 定义区域解析库文件(主要记录为PTR)

      示例,区域名称为100.16.172.in-addr.arpa;

                          $TTL 3600
                          $ORIGIN 100.16.172.in-addr.arpa.
                          @       IN      SOA     ns1.magedu.com.  nsadmin.magedu.com. (
                                  2017010801
                                  1H
                                  10M
                                  3D
                                  12H )
                              IN      NS      ns1.magedu.com.
                          67      IN      PTR     ns1.magedu.com.
                          68      IN      PTR     mx1.magedu.com.
                          69      IN      PTR     mx2.magedu.com.
                          70      IN      PTR     bbs.magedu.com.
                          71      IN      PTR     bbs.magedu.com.
                          67      IN      PTR     www.magedu.com.                 
      

      权限及属组修改:
      # chgrp named /var/named/172.16.100.zone
      # chmod o= /var/named/172.16.100.zone

      检查语法错误:
      # named-checkzone ZONE_NAME ZONE_FILE
      # named-checkconf

    3. 让服务器重载配置文件和区域数据文件
      # rndc reload
      # systemctl reload named.service

    主从服务器:
    注意:从服务器是区域级别的概念;

    配置一个从区域:

    On Slave

    1. 定义区域
      定义一个从区域;

      zone "ZONE_NAME"  IN {
          type  slave;
          file  "slaves/ZONE_NAME.zone";
          masters  { MASTER_IP; };
      };
      

      配置文件语法检查:named-checkconf

    2. 重载配置
      rndc reload
      systemctl reload named.service

    On Master

    1. 确保区域数据文件中为每个从服务配置NS记录,并且在正向区域文件需要每个从服务器的NS记录的主机名配置一个A记录,且此A后面的地址为真正的从服务器的IP地址;

      注意:时间要同步;
      ntpdate命令;

      子域授权:

      正向解析区域授权子域的方法:

              ops.magedu.com.         IN  NS      ns1.ops.magedu.com.
              ops.magedu.com.         IN  NS      ns2.ops.magedu.com.
              ns1.ops.magedu.com.     IN  A   IP.AD.DR.ESS
              ns2.ops.magedu.com.     IN  A   IP.AD.DR.ESS
      

    定义转发:
    注意:被转发的服务器必须允许为当前服务做递归;

    1. 区域转发:仅转发对某特定区域的解析请求;

                  zone  "ZONE_NAME"  IN {
                      type  forward;
                      forward  {first|only};
                      forwarders  { SERVER_IP; };
                  };
      

      first:首先转发;转发器不响应时,自行去迭代查询;
      only:只转发;

    2. 全局转发:针对凡本地没有通过zone定义的区域查询请求,通通转给某转发器;

                  options {
                      ... ...
                      forward  {only|first};
                      forwarders  { SERVER_IP; };
                      .. ...
                  };
      

    bind中的安全相关的配置:

    acl:访问控制列表;把一个或多个地址归并一个命名的集合,随后通过此名称即可对此集全内的所有主机实现统一调用;

                acl  acl_name  {
                    ip;
                    net/prelen;
                };
    

    示例:

                    acl  mynet {
                        172.16.0.0/16;
                        127.0.0.0/8;
                    };
    
            bind有四个内置的acl
                none:没有一个主机;
                any:任意主机;
                local:本机;
                localnet:本机所在的IP所属的网络;
                
        访问控制指令:
            allow-query  {};  允许查询的主机;白名单;
            allow-transfer {};  允许向哪些主机做区域传送;默认为向所有主机;应该配置仅允许从服务器;
            allow-recursion {}; 允许哪此主机向当前DNS服务器发起递归查询请求; 
            allow-update {}; DDNS,允许动态更新区域数据库文件中内容;
            
    bind view:
        视图:
            view  VIEW_NAME {
                zone
                zone
                zone
            }
            
            
            view internal  {
                match-clients { 172.16.0.0/8; };
                zone "magedu.com"  IN {
                    type master;
                    file  "magedu.com/internal";
                };
            };
            
            view external {
                match-clients { any; };
                zone "magecdu.com" IN {
                    type master;
                    file magedu.com/external";
                };
            };
    

    课外作业:whois命令; 注册一个域名;

    博客作业:正向解析区域、反向解析区域;主/从;子域;基本安全控制;

    相关文章

      网友评论

          本文标题:note_19.2_DNS配置

          本文链接:https://www.haomeiwen.com/subject/utonvqtx.html