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

(0)
上一篇 2015-05-02 19:19
下一篇 2015-05-04 14:45

相关推荐

  • Linux 基础(7)——文本处理工具

    cat  tac  rev  more  less           head  tail cut  paste  wc               &nbs…

    2017-07-29
  • LVM(重要)

    LVM   LVM(Logical Volume Manger),是一种磁盘分区管理机制,可以灵活的调整分区的大小。它是将多个硬盘组成卷组的形式实现的。说白了就是通过软件来实现对分区灵活管理。   LVM是将多块硬盘组成PV,再由PV组成VG,VG再组成lv,然后在lv上创建文件系统。   物理存储介:指的就是硬盘等,最基本的存储单元。   PV(physi…

    Linux干货 2016-08-30
  • init中的服务故障如何排除

    我们假设ypbind出故障 首先我们设 ypbind服务开机启动 chkconfig yubind on 然后查看服务 chkconfig –list    默认是2345启动   然后更改这个脚本,里面寄一个长期的休眠时间,模仿为错误 sleep 休眠时间 然后重新启动,看看系统如何报错。 然后系统等到要启动该服务的时候回一…

    2017-07-22
  • 文本处理-三剑客-grep

    文本过滤
    grep [OPTIONS] PATTERN [FILE…]

    2018-03-16
  • 马哥教育网络班22期+第九周课程练习

    1. 写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash#declare -a loginuserdeclare -i sum_login=0declare -i sum_nologin=0list=($(cat /et…

    Linux干货 2017-01-03
  • Mysql备份I

    Mysql备份I I备份在什么时候会被需要 硬件故障 机器无法启动 机器突然消失了怎么办 业务出现异常 一定要先select 在操作 类似drop或delete的操作 攻击 程序bug 业务特殊需求  重要数据多处多次多版本备份 至少有2份远程备份文件2处本地备份 II哪些东西需…

    Linux干货 2016-06-09