DNS服务器之配置

一、安装DNS服务器

    DNS服务的安装包为bind,使用yum直接安装即可:

1.png

    安装完成后,查看DNS服务相关的文件:

2.png

二、配置正向区域

    1、在配置正向区域之前,先来看下主配置文件中的内容:

    全局配置段

1.png

    其中:

        listen-on port 53:监听端口,默认是本机,即只允许本机进行DNS查询,可以使用any开放给所有用启。

        direcoryt:指明正、反向解析区域的配置文件的存放路径。

        dump-file、statistics-file、memstatistics-file:这三个文件为统计信息文件,可以不设置。

        allow-query:定义哪些客户端可发送DNS查询请求。

        recursion:开启递归查询。

2.png

        logging表示定义的日志的相关信息。

        zone表示区域设置,主配置文件中默认定义了根域。

        include表示后面的文件是此配置文件的组成部分。

        打开/etc/named.rfc1912.zone2文件,里面已经定义了许多默认的zone。

4.png

    说明:我们手动添加正、反向区域时,可以直接在主配置文件(/etc/named.conf)中定义,也可以在/etc/named.rfc1912.conf文件中定义。

    2、配置正向区域

        1)修改主配置文件

1.png

        2)添加区域记录

2.png

        3)创建区域文件

3.png

            格式说明: Name   [TTL]   IN     RRType    VALUE

                Name:资源记录的名称。

                TTL:缓存时间,可以在文件开头统一定义。

                IN:固定格式。

                RRType:资源记录的类型。

                VALUE:资源记录所对应的值。

            针对不同的资源记录,格式中各字段的内容也不尽相同:

                (1)SOA

                    任何解析库文件的第一个库文件必须是SOA。

                    Name:当前区域名称,通常可以简写为@。

                    VALUE:通常是主DNS服务器的FQDN,也可以是当前区域的区域名称。

                    以上图为例,说明SOA各字段的含义:

                    @     IN     SOA    ns.test.com.    admin.test.com. (

                                    serial number       ;解析库的版本号,最长不超过10位;

                                    refresh time        ;周期性同步时长;

                                    expire time         ;过期时长;从服务器放弃解析之前所用的时长;

                                    negative answer ttl ;否定答案的统一缓存时长,对于没有解析到的记录的缓存时间;

                            )

                    注意:admin.test.com.是邮件地址,由于此文件中@已有特定的含义,所以使用.来代替@。

                (2)NS:Name Server

                    Name:区域名称。

                    VALUE:DNS服务器的FQDN。

                    注意:

                        1、如果有多台NS服务器,每一台都必须有对应的NS记录;

                        2、对于正向解析文件来讲,每一个NS的FQDN都有一个A记录。

                (3)MX:Mail Exchanger

                    Name:区域名称。

                    VALUE:邮件服务器的FQDN。

                    注意:

                        1、如果有多台MX服务器,每一台都必须有对应的MX记录;

                        2、对于正向解析文件来讲,每一MX的FQDN都有一个A记录。

                (4)A:Address

                    Name:FQDN。

                    VALUE:IP。

                (5)CNAME

                    Name:别名,新FQDN。

                    VALUE:原FQDN。

                (6)PTR

                    Name:逆向的主机IP地址(不包含网络地址)加后缀.in-addr.arpa。

                        例如:172.16.100.7/16其name为7.100.in-addr.arpa

                    VALUE:FQDN。

    3、启动服务

5.png

    4、测试DNS服务器

        下面分别使用三个工具来测试DNS服务器。

        1)host

            命令格式:host -t [A|NS|SOA|MX|PRT] NAME DNS服务器

4.png

        2)nslookup

            命令格式:

                server [DNS服务器]

                set type=[A|NS|SOA|MX]

                <Name>

5.png

        3)dig

            命令格式:dig -t [A|NS|SOA|MX|AXFR] @DNS服务器

                其它常用选项:

                    +trace:启动跟踪;

                    +notrace:关闭跟踪;

                    +recurse:启动递归;

                    +norecurse:关闭递归;

                    -x PTR:测试反向记录。

1.png

三.配置反向区域

    1)添加反向区域记录

1.png

    2、创建反向区域文件

2.png

    3、重新加载DNS服务

3.png

    4、测试DNS服务器

4.png

四、主从复制

    1、网络拓扑

        blob.png

    2、配置主、从DNS服务器

        1)在主DNS服务器的配置文件中添加NS记录    

1.png

4.png        2)在从DNS服务器上安装bind。(略)

        3)修改从DNS服务器的区域定义配置文件。

3.png

        4)重新启动服务

5.png6.png

        5)验证

        由于CentOS不允许查看从服务器的区域配置文件,所以只能通过日志来了解同步情况。

2.png

        上图为从服务器的日志信息,其信息表明区域传送成功。

3.png

        在DNS主目录中已经可以看到自动同步过来的区域文件,此时就可以使用从DNS服务器进行域名解析了。

3.png

五、子域授权

    1、网络拓扑

        blob.png

    2、修改主配置文件/etc/named.conf

1.png

    3、在父DNS服务器的区域中添加子服务顺的信息

1.png

    4、配置子域的区域定义文件

2.png

    5、创建区域配置文件

3.png

    6、重新加载服务

        两台DNS服务器都要重新加载服务配置。

4.png

    7、测试

        使用父域的DNS服务器可以解析到子域的域名记录。

4.png

六、转发器

    在上面的实例中,可以能过父域解析到子域的记录,那么通过子域能否解析到父域上的记录?如下图所示:

1.png

    结果是解析不到的,不过我们可以通过配置转发器把test.com域的请求发送到父域DNS服务器上。

    转发器的配置有两种方式:

        1)配置转发区域,指明将哪个区域的请求转发到指定的服务器进行解析,如下图所示:

2.png

         2)在/etc/named.conf的全局配置中指定转发,这样会把所有本地无法解析的请求都发送给指定服务器,如下图所示:

1.png

        解释:

            forward {only|first}

                only:表示只要对指定的服务器发起递归查询,如果依然查询不到就认为请求资源无效。

                first:对指定服务发起查询无果后,会继续从根服务进行的迭代查询。          

七、DNS视图

    1、网络拓扑

       blob.png

    2、定义视图并创建区域文件

4.png5.png

    上图中共定义了三个视图,分别为inter、outer、other。每个视图都为特定的客户端提供解析服务,inter专门为192.168.253.0/24网络内的主机提供解析;outer专门为192.168.2.0/24网络内的主机提供解析;其它的主机全部由other视图提供服务。

    每个视图中定义的相同的正向区域test.com,但是它们的区域配置文件又各不相同,如下图所示:

6.png7.png8.png

    这些不同的配置文件保证同样的域名能够解析出不同的IP地址。

    3、重新启动服务

    4、验证

        分别使用3台客户端解析www.test.com,得到了不同的IP地址,如下图所示:

9.png10.png 

11.png

    使用view的注意事项:

1、  通常只为内网客户端提供递归功能,提供根区域等,将所有的zone全都放到view中。

2、  通常只为外网客户端提供本机所负责的区域,在view中只定义本地的zone。 

八、DNS访问控制和ACL

    1、访问控制

        allow-tranfer {}:允许向哪些服务器进行区域传送。

        allow-query {}:接受哪些客户端发起的查询请求。

        allow-update {}:是否允许动态更新A记录和PTR记录。

       allow-recursion {}:允许哪些客户端进行递归查询。

        recursion yes|no;:是否允许递归查询。

    2、ACL

        1)CentOS内置了一些ACL范围:

            none:没有任何对象。

            any:所有对象。

            localhost:本机。

            localnet:本机所在网络。

         2)自定义acl

                格式:

                   acl ACL_NAME

                            ip;

                            network;

                   };

                例如:

                   acl test {

                            192.168.253.0/24;

                            10.0.0.0/16;

                   };

                   allow-recursion { test; }  允许ACL中定义的主机可以递归。

                注意:acl通常定义在主配置文件中的option的前面。

原创文章,作者:petmaster,如若转载,请注明出处:http://www.178linux.com/3788