CentOS7下安装配置DNS服务器

FQDN:Fully Qualified Domain Name,完全合格域名,是指主机名加上全路径,例如ns1.baidu.com.

SOA:Start of Authority,起始授权记录,用于设置该域的序列号、刷新时间、过期时间等信息,在定义每个域时SOA只能定义一条,而且必须在起始位置定义。

NS:Name Server,域名服务器记录,作用是定义创建的新域是由哪个DNS服务器来负责解析。

MX:Mail eXchanger,邮件交换记录,指向的是一个邮件服务器,用来当发邮件的时候,根据收件人的地址后缀来定位邮件服务器,说白了就是让邮件服务器知道应该把这封邮件发到哪里去。

需要注意一点的是定义MX记录时因为@符号在DNS服务器配置中有特殊的含义,表示当前定义的域的域名。所以在定义邮件服务器时需要将@写为“.”号来代替,定义格式示例:mail1  IN  MX 10  mail1.baidu.com. 。

A:用来指定完全合格域(FQDN)名对应的IP记录,可以通过此设置改域名下,指定用户自己的WEB服务器地址,示例:  IN  A  172.16.81.250  (注:此仅做演示,baidu.com.表示自己定义的区域名,并非真实的域名)。

CNAME:别名记录,这种记录允许将多个名字映射到同一台计算机,示例:ftp   IN   CNAME   www    (注:此处是省略了域名的写法,可以在区域开头位置定义域名$ORIGIN  baidu.com.  再次强调域名后边的“.”不可以省略

PTR:反向域名解析,即将IP地址转换为FQDN,此记录一般定义在反向域名解析中在定义反向区域时,区域的名称一般是取IP地址的网络地址然后反写组成,示例:原来IP地址为172.16.81.250,定义

$ORIGIN 81.16.172.

250     IN         PTR         

TTL:Time To Live ,生存时间,表示DNS记录在DNS服务器上的缓存时间,时间越长对于服务器的压力越小,时间越短表示服务器需要重新查询并生成缓存的频率越高,压力越大。

*:泛域名解析,用于指定域名下所有未创建域名记录同一定位到指定主机中,示例   

*  IN   CNAME    www  #为所有未创建的域名记录定义一个别名指向www主机。

在centos系统下实现域名服务器通常是使用bind工具来完成DNS的功能,下边开始进行bind的安装与配置。

~]# yum install bind-untils bind  -y

 

~]# rpm -ql bind

/etc/NetworkManager/dispatcher.d/13-named

/etc/logrotate.d/named

/etc/named   

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

/etc/named.iscdlv.key

/etc/named.rfc1912.zones    #定义zone的文件

/etc/named.root.key

/etc/portreserve/named

/etc/rc.d/init.d/named    #bind脚本文件

/etc/rndc.conf    #rndc配置文件

/etc/rndc.key

/etc/sysconfig/named

/usr/lib64/bind

/usr/sbin/arpaname

/usr/sbin/ddns-confgen

/usr/sbin/dnssec-dsfromkey

/usr/sbin/dnssec-keyfromlabel

/usr/sbin/dnssec-keygen

/usr/sbin/dnssec-revoke

/usr/sbin/dnssec-settime

/usr/sbin/dnssec-signzone

/usr/sbin/genrandom

/usr/sbin/isc-hmac-fixup

/usr/sbin/lwresd

/usr/sbin/named

/usr/sbin/named-checkconf    #检测/etc/named.conf文件语法

/usr/sbin/named-checkzone    #检测zone和对应zone文件的语法

/usr/sbin/named-compilezone

/usr/sbin/named-journalprint

/usr/sbin/nsec3hash

/usr/sbin/rndc    #远程dns管理工具

/usr/sbin/rndc-confgen    #生成rndc密钥

/var/log/named.log

/var/named

/var/named/data

/var/named/dynamic

/var/named/named.ca    #根解析库

/var/named/named.empty

/var/named/named.localhost    #本地主机解析库

/var/named/named.loopback   

/var/named/slaves    #从文件夹

/var/run/named

编辑bind主配置文件/etc/named.conf

~]# vim /etc/named.conf

// C/C++风格的语法,注释用//或/* */

// named.conf//

// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS

// server as a caching only nameserver (as a localhost DNS resolver only).//

// See /usr/share/doc/bind*/sample/ for example named configuration files.// 

options {

    listen-on port 53 { 127.0.0.1; };

  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     { localhost; };    //允许哪些主机查询

  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";   //使用的是相对路径,默认存放在/var/named/named.ca 

};//把另外两个文件也包含进来,作为主配置文件的一部分

  include "/etc/named.rfc1912.zones";     //定义区域配置文件

  include "/etc/named.root.key";       //根区域的key文件,与事务签名相关

通过修改listen-on port 53 {}来修改需要监听的服务器IP地址;

allow-query {}修改为any则所有主机均可以通过该DNS服务器来查询;

将dnssec开头的参数全部注释掉后保存配置,一个缓存服务器就创建完成。

下边再来创建新的DNS服务器,创建自定义的区域则要在/etc/named.rfc-1912.zone中添加新的区域,然后在/var/named/ZONE_NAME.zone添加区域解析库。

#示例:创建bing.com.域

   ~]# vim /etc/named.rfc-1912.zone   #编辑配置文件

    zone "bing.com" IN{

        type master;

        file "bing.com.zone";

    };

    保存退出

   ~]# vim /var/named/bing.com.zone  #创建区域解析库

    $TTL 86400   #定义缓存过期时长

    $ORIGIN bing.com.  #域名后的“.”不能省略

    @    IN SOA ns1.bing.com.  admin.bing.com.(

                    2017012301;serial  #使用“;”号可以用于注释

                    2H;refresh

                    5M;retry

                    7D;expire

                    1D;MINTTL     #返回否定答案时最小缓存时长

                    )

    @  IN  NS  ns1.bing.com.    #定义指定域名服务器

    @  IN  NS  ns2.bing.com.    #域名可以指定多个域名服务器,如果存在多个的情况下,此处ns2表示从域名服务器

    ns1  IN  MX 10 mail1   #定义邮件服务器,此记录也可指定多个

    ns1  IN  A  172.16.100.10   #指定ns1域名服务器的IP地址

     ns2  IN  A  172.16.100.11   #指定从域名服务器IP地址

    mail1 IN  A  172.16.100.10   #指定邮件服务器IP地址

    www  IN  A  10.20.57.10    #指定该域名下的web服务器主机的IP地址

    ftp  IN  CNAME www        #将ftp主机设置为www别名

    *   IN   CNAME www        #设置泛域名解析

   保存退出

   ~]# named-checkconf   #检查配置文件有没有语法错误

   ~]# named-checkzone "bing.com." "/var/named/bing.com.zone"  #检查解析库语法所有检查完毕之后没有问题

   #重读配置文件

   ~]# rndc reload

   #使用dig 命令测试是否成功

   ~]# dig -t A   @172.16.100.10  #@指定DNS服务器IP地址,如果不指定则使用/etc/resolv.conf中配置的DNS来解析

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/dbbf9e97d0a7d3c5cd4e937672f184b3.html