DNS主要用来实现对类似baidu.com这类地址翻译成IP地址,就是大家最常见的正向解析。它是一个自顶而下的树形结构,顶端是根域 .。我们常见的t66y.com其实完整的域名为t66y.com. 。平常我们上网都是使用ISP的DNS服务器来解析。其实ISP的DNS服务器只是缓存了加快查询的速度,很多不常见的域名,ISP也是向最顶端的服务器来查询的。

    首先,安装包yum -y intall bind

     第二步,根据自己的实际环境修改配置文件,这里我们略过默认的选项,只列出修改的部分。

    cat /etc/named.conf

    #dns服务器监听的端口        

    listen-on port 53 { 127.0.0.1;192.168.1.200; };

    #允许使用此台服务器进行dns查询的客户端

    #如果是一个子网可以写成192.168.1.0/24;多个子网间使用;分隔

    allow-query     { any;}; 

    #大型机构一般多台DNS服务器,会向列表内服务器传递更新数据

    allow-transfer  { 192.168.1.201;};    

    #ISP DNS,此列表非空先转发,列表内服务器无响应再向根查询

     forwarders      {218.6.200.139;202.98.96.68;}; 

     #允许向根服务器查询

    recursion yes;

     #禁用dnssec,否则向根查询会有报错。这里要改成no,注释掉是没有用的。

    dnssec-enable no;

     dnssec-validation no;

     #添加正向解析域

    zone “it.lab” IN {

      #master类型可写,slave类型只读。

        type master;

      #域名解析用到的文件,这个文件并没有什么格式要求。这里我们用域名加forward,

        比较容易看出来是哪个域的正向解析。

        file “it.lab.forward”;

      #有更新主动通知slave类型服务器

        notify yes;

};

#添加反向解析域,in-addr.arpa是固定格式,前面的数字是正向解析域规划的子网从最低位倒过来写到最高位,即反转域名。这里并不支持变长子网掩码。例如我们规划的子网是192.168.1.0/24,这个反转域名就写成1.168.192.

zone “1.168.192.in-addr.arpa” IN {

        type master;

        file “1.168.192.reverse”;

        notify yes;

};

最后,创建域名解析文件。

cat /var/named/it.lab.forward

#指定根域

$ORIGIN .

#解析内容存活时间,即某一纪录被解析后,客户端会认为这个解析在多长时间内是有效的,在这个有效时间内,客户端不会重复去解析同一纪录。

$TTL 86400      ; 1 day

#it.lab即为此文件解析的域名,也可用@表示本域;IN表示INTERNET类型;SOA即Start of Authority,;it.lab.是FQDN完整域名,一定要加最后一个.;root.it.lab.是管理员的联系方式,@有特殊含义,我们使用.代替。

it.lab                  IN SOA  it.lab. root.it.lab. (

            #每一次DNS更新都会增加serial计数,不同DNS服务器间使用此标记判断数据新旧从而确定同步的方向。

                                307        ; serial 

            #slave服务器查询主服务器更新数据的时间间隔

                                28800      ; refresh (8 hours)

            #slave服务器通讯失败情况下重试时间间隔

                                7200       ; retry (2 hours)

            #标记为无效记录的时间间隔

                                604800     ; expire (1 week)

            #缓存服务器缓存记录的时间

                                86400      ; minimum (1 day)

                                )

            #此域的域名服务器纪录

                        NS      dns.it.lab.

                        NS      dns2.it.lab

            #主机纪录,dns为主机名,A为纪录类型,后面跟IP地址

dns                     A       192.168.1.200

dns2                    A       192.168.1.201

            #别名纪录,第一顶为别名,CNAME为纪录类型,最后跟一条A纪录主机名

dhcp                    CNAME   dns

slave服务器只需修改配置文件域解析文件描述

zone “it.lab” IN {

      #type设置为slave

        type slave;

      #master列表

        masters { 192.168.1.200;};

        file “slaves/it.lab.forward”;

        notify no;

};

zone “1.168.192.in-addr.arpa” IN {

        type slave;

        masters { 192.168.1.200;};

        file “salves/1.168.192.reverse”;

        notify no;

};