转载自:http://www.linuxidc.com/Linux/2013-05/84478.htm


注:在版本上对原创作品进行了更新,更新其中几个小bug


系统环境:Centos6.5x64,bind-9.8

主DNS:172.16.51.17

从DNS:172.16.51.18


主要对DNS正反向配置、主从传送、子域授权、转发、acl、以及DNS智能解析配置做了流程介绍,不足之处希望能得到大家指教

说明:

蓝色字体代表的是接下来要做的配置题目

红色字体代表的是配置命令

安装Bind97工具包

首先自己要配置好yum源,红帽系统盘自身都有,可以直接挂载红帽系统镜像,指定文件路径为yum源地址

红帽5.8默认的时bind93版本,实验时,我们用bind97所以要先卸载bind93版本(此处做了修改)linux之DNS部署_dns

卸载bind93版本命令

rpm -e bind-libs bind-utils

安装bind97

yum install bind97 bind97-libs bind97-utils -ybind97

bind97的主配置文件/etc/named.conf,配置文件中主要是定义BIND进程的工作属性、区域的定义,它的属主属组及其权限也是比较特殊的,是不允许其他人读写的linux之DNS部署_dns_02

我们要手动创建named.conf配置文件把原来的可以重命名备份一下

cd /etc/

mv /etc/named.conf /etc/named,conf.old

手动创建并配置named.conf配置文件

linux之DNS部署_dns_03

注:此处修改了zone “0.0.127.in-addr.arpa”  改为 “1.0.0.127.in-addr.arpa”

修改新建的配置的文件的属主数组以及权限linux之DNS部署_dns_04

我们现在还没有定义域,所以正向区域文件与反向区域文件这一步不用建立,这个目的只是对配置文件的介绍,区域文件就使用本地的,这时候检测语法及配置文件没有错误后就可以启动DNS服务器了

linux之DNS部署_dns_05

selinux的关闭介绍

selinux 可能会对DNS服务有些影响我们需要手动关闭它linux之DNS部署_dns_06

进入配置文件可让配置永久生效

vim /etc/selinux/configlinux之DNS部署_dns_07

这时候语法及配置文件检测没有问题时DNS服务器就可以启动了,现在是不是对DNS的基本需要的配置文件有了一个大概的了解,它的需要就是:主配置文件,在主配置文件定义区域后,需要创建对应的区域数据文件

启动DNS服务器

service named restart

查看端口是否监听成功linux之DNS部署_dns_08linux之DNS部署_dns_09

创建DNS域及其区域文件

deng.com为域完成DNS服务器的正反向的区域创建

修改/etc/named,conf配置文件

linux之DNS部署_dns_10

编辑正向区域文件

linux之DNS部署_dns_11

编辑反向区域文件linux之DNS部署_dns_12

检测语法及配置文件是否有错误

named-checkconf

named-checkzone "deng.com" /var/named/deng.com.zone

named-checkzone "51.16.172.in-addr.arpa" /var/named/172.16.51.zone

重启DNS服务

service named restart

验证可以使用dig命令进行A记录与NS记录的查看 图示如下

dig -t A www.deng.com @172.16.51.17(指定使用自己的DNS服务器进行解析验证)linux之DNS部署_dns_13

使用dig命令进行A记录与NS记录的查看 图示如下

dig -t NS deng.com @172.16.51.17 (指定使用自己的DNS服务器进行解析验证)linux之DNS部署_dns_14

到此,DNS的正向、反向解析就完成了。

递归/安全服务配置介绍

配置/etc/named.conf配置文件linux之DNS部署_dns_15

allow-transfer { 172.16.51.18;}  只允许此IP去同步此数据,none:只都不可以同步(包括本机)

此参数为设置那些IP,可以同步dns数据库文件,若不设置,默认都可以同步,这样不安全


重新加载DNS服务器使用本机进行验证是否可传送,由于只允许18去同步,所以17测试同步失败

service named reloadlinux之DNS部署_dns_16


设置的主机可以传送的主机只有172.16.51.18,所以172.16.51.17是没有权限的

准备一台主机进行测试配置IP为172.16.51.18,下面是DNS的配置

linux之DNS部署_dns_17

# cat /etc/resolv.conf 

nameserver 172.16.51.18

search deng.com

传送测试

linux之DNS部署_dns_18

主从服务器配置

把172.16.51.18主机做成从服务器,准备工作与刚开始的介绍是一样的

1、 配置yum源

2、 卸载bind93版本

3、 安装bind97、bind97-libs、bind97-utils工具包

4、 备份/etc/named.conf配置文件后,手动配置/etc/named.conf

/var/named/slaves目录介绍linux之DNS部署_dns_19


slaves目录的属主属组默认的就是named,为了方便直接把同步的过来的文件放到这个目录下配置从服务器的配置文件


从服务器配置文件编辑

linux之DNS部署_dns_20


注:由于此服务为从服务器,不需要其他服务器同步数据,所以关闭同步。

以下两个步骤必须存在,添加从服务器的记录

在主DNS的正向区域中添加从DNS服务器的记录信息

linux之DNS部署_dns_21

在主DNS的反向区域中添加从DNS服务器的记录信息

linux之DNS部署_dns_22

重启主从服务器

service named restart

查看日志文件验证是否传送成功(在从服务器端)linux之DNS部署_dns_23

注:在从服务/var/named/slaves/下,将同步出区域库文件

[root@localhost named]# ll /var/named/slaves/

total 8

-rw-r--r-- 1 named named 430 Apr 17 06:59 172.16.51.zone

-rw-r--r-- 1 named named 459 Apr 17 06:56 deng.com.zone



验证增量传送

在主DNS的正向区域文件中添加一条记录linux之DNS部署_dns_24

添加一条A记录,同时序列号加1


重新加载DNS服务器

service named reload


查看主DNS服务器的日志信息linux之DNS部署_dns_25

从服务器中/var/named/slaves目录下正向区域文件的传送结果查看(从不需要重启服务)linux之DNS部署_dns_26

到此,DNS主从完成。


子域授权(在主DNS中,只需要该区域数据文件,主配置文件不需要改,之后重启)

主DNS修改项为:

      授权的子区域名称,此例为:fin.deng.com

      子区域的名称服务器,此例为:ns1.fin.deng.com

      子区域的名称服务器的IP地址  此例为:172.16.51.19


在主DNS服务器的正向区域文件中添加以下记录

linux之DNS部署_dns_27

配置子域主机,准备过程与配置从DNS服务器相同

172.16.51.19主机做成授权子域所属的主机,准备工作与做从服务器是一样的

1、 配置yum源

2、 卸载bind93版本

3、 安装bind97、bind97-libs、bind97-utils工具包

4、 备份/etc/named.conf配置文件后,手动配置/etc/named.conf

子域主机配置文件内容如下linux之DNS部署_dns_28

1.修改:zone "0.0.127.in-addr.arpa" 改为"1.0.0.127.in-addr.arpa"

2.fin.deng.com为子域

所要授权子域主机正向区域文件记录配置

linux之DNS部署_dns_29

现在主DNS服务器与授权子域所在主机重新加载DNS

service named reload

测试:在主DNS/子域DNS执行

dig -t NS fin.xu.com @主/子域DNS,都可以解析成功。

直接用windows主机验证是否授权成功linux之DNS部署_dns_30

至此,子域配置完成


在主DNS/子域都可以解析子域,但是子域不可以解析父域,若想解析需实现转发(forward),及在子域服务器中指定转发,将子域解析不了的DNS指向父域(主DNS),或者根DNS

forward only(仅转发)|first(先转发,找不到时在找根)

转发服务器配置

在子域DNS服务器(还是172.16.51.19主机)的/etc/named.conf配置文件中添加一下定义

linux之DNS部署_dns_31

现在主DNS服务器与授权子域所在主机重新加载DNS

service named reload

验证:dig -t NS xu.com @172.16.51.19,解析成功


注意:转发分为全局转发,局部转发,转发时,对方服务器必须支持递归。

全局转发:

options{

        forward only|frist

        forwarders{ ip; }

       }

局部转发:

zone"特定区域" IN{

       type forward;

        forwarders{ ip; }

        forward only|frist

       }

在windows主机中进行验证

linux之DNS部署_dns_32

至此,转发完成


acl功能定义

acl是访问控制列表,专门用于定义一组客户端,如同脚本编程的变量与函数一样,定义一组IP方便在配置文件中定义传送,以及查询的限制linux之DNS部署_dns_33

acl的\功能的添加比较容易效果就不做过多的演示了,还望谅解啊

DNS智能解析的示例演示

我们就模拟国内的两大运营商电信和联通,通过在配置文件中为这两大运营商指定特定的客户端(由IP区分)来完成智能DNS的示例实现

配置DNS服务器的/etc/named.conf配置文件(配置文件是简化)

 

linux之DNS部署_dns_34

注意;

安全控制选项:

   allow-transfer{};通常都需要启用,从服务器

   allow-query{};此项仅用于服务器是缓存名称服务器时,只开放查询功能给本地客户端

   allow-recursion{可以使用网段};允许递归的白名单

   allow-update{ none; }:允许动态更新数据文件的主机白名单


ACL:BIND支持使用访问控制列表

    acl ACL_NAME{

      172.16.0.0/16

      192.168.0.0/24

      127.0.0.0/8

    }


  访问控制列表只有定义后才能使用,通常acl要定义在named.conf的最上方

  BIND有四个内置的acl

    any:任何主机

    none:无一主机

    local:本机

    localnet:本机所在的网络


配置模拟的电信网络的区域文件linux之DNS部署_dns_35

配置模拟的联通网络的区域文件linux之DNS部署_dns_36

更改这两文件的属组和权限linux之DNS部署_dns_37

重新加载DNS服务器

service named reload

准备电信客户端 配置IP地址

linux之DNS部署_dns_38

准备联通客户端 配置IP地址

linux之DNS部署_dns_39

使用电信客户端验证linux之DNS部署_dns_40

使用联通客户端验证linux之DNS部署_dns_41

现在DNS的几个基本配置就结束了,截图可能做到的不够到位,有些疏漏的地方还请大家多多指教和谅解