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)
petmasterpetmaster
上一篇 2015-05-02 19:19
下一篇 2015-05-04 14:45

相关推荐

  • N28-第四周博客作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。

    2、编辑/etc/group文件,添加组hadoop。

    3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。

    4、复制/etc/skel目录为/home/hadoop,要求修改hadoop目录的属组和其它用户没有任何访问权限。

    5、修改/home/hadoop目录及其内部所有文件的属主为hadoop,属组为hadoop。

    6、显示/proc/meminfo文件中以大写或小写S开头的行;用两种方式;

    7、显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户;

    8、显示/etc/passwd文件中其默认shell为/bin/bash的用户;

    9、找出/etc/passwd文件中的一位数或两位数;

    10、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;

    11、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;

    12、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行;

    13、添加用户bash, testbash, basher, nologin (此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息;

    Linux干货 2017-12-26
  • man和history及bashi的快捷键

    man:帮助命令     命令格式:man# cmd;使用时可以先使用whatis 查询所对应的man的章节,然后用对应的man章节来查询帮助;     info:本地帮助文档     官方文档,在线查询等等,如果是付费版系统的话可以使用S…

    Linux干货 2016-07-29
  • ​HA专题: Corosync+Pacemaker+drbd实现MySQL高可用

    HA专题: Corosync+Pacemaker+drbd实现MySQL高可用 前言 实验拓扑 实验环境 实验步骤 安装前准备工作 配置DRBD 配置MySQL 配置Corosync+Pacemaker 测试 我遇到的问题 总结 前言 上篇文章我们介绍了drbd的相关原理、编译安装、简单的实现. drbd虽然可以保证数据的可靠性但是我们上次的实现还…

    Linux干货 2016-04-13
  • Linux哲学思想

    一切皆文件     这是第一知首先会想到的,所以在linux中的所谓文件夹也是文件,如果你用vi /tmp,也会发现其实里面是有内容的,对于文件而言,它的data block存放的是文件的内容,对于文件夹,它的data block存放的是文件的inode及对应的文件名。从结构上看它们是一致的。当然其它的诸如设备,管道等…

    Linux干货 2016-10-30
  • 计算机扫盲闲谈

    什么是计算机?计算机是干什么的?什么又是操作系统?来上车,坐好了,听老司机给你娓娓道来。(大神勿喷)

    2018-03-26