DNS服务配置:

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

 

我们主要写一些其他资料没有的东西,至于DNS的原理也没必要重复,因为其他的资料已写的很详细;以下服务的搭建其原理也不多说,直接配置服务。

 


一、DNS相关文件:

 

<1>bind

 

bind是一个c/s系统,其客户端称为转换程序resolver,它负责产生域名信息的查询,将这类信息发送给服务端。Bind的服务器端是一个称为named的守护进程,它负责回答转换程序的查询。

 

<2>、转发程序控制文件:

 

转换程序控制文件/etc/host.conf是用来控制本地程序设置的文件

Vi /etc/host.conf

order hosts,bind   解析顺序

multi off  指明hosts文件中所指定的每一台主机只有一个IP地址,如果为on则反之。

nospoof on 检查IP欺骗.

alert on 若检查出IP欺骗,则将警告信息记录。

Trim  jamond.net 指明解析器会先将被查找域名中的jamond.net去掉,再从/etc/hosts中查找匹配的主机名。

 

 

,<3.、转换程序配置文件:

 

vi /etc/resolv.conf

 

nameserver 列出域名IP(最多可出现3个)

domain  定义默认域名(主机的本地域名)

search 定义搜索清单(最多6个域名参数)

options rotate nochecknames  inet6  意义分别如下:

 

rotate  打开客户端轮询查询。当nameserver中定义了多个域名服务器时间,进行轮询查询;

nochecknames  禁止检测被查询的域名是否符合RFC 952,当需要使用带有下划线“_”的域名时,需要设置该项。

inet6 可以使解析器查询ipv6地址。

 

 

举例:

Options  nochecknames rotate  options参数定义了不执行RFC 952 名字检测而执行查询轮询。

 

 

<4>Named.conf的配置语句:

Acl              定义IP的访问配置清单

Controls         定义rndc命令使用的控制通道

Include          将其他文件包含到本地配置文件当中

Key                       定义授权的安全密钥

Logging               定义日志的记录规范

Options               定义全局配置选项

Server                 定义远程服务器的特征

Trusted-keys       为服务器定义DNSSEC加密密钥

Zone                   定义区域

View                      定义一个试图

 

 

 

全局配置语句options

 

Options {

 

               配置子句;

               配置子句;

 

}

常用的配置子句:

Recursion  yes|no   是否使用递归DNS服务器,默认为yes

Allow-recursion {  }  指定一个也许进行递归查询操作的地址列表。

Transfer-format one-answer|many-anser  是否允许在一条消息中放入多条应答信息,默认为one-answer

 

Directory path 服务器配置文件目录;

Forwarders {IPaddr} 定义转发器。

Allow –query  指定允许进行查询的主机

Notify      当主区域的数据发生变化时,也许通知从服务器。

 

<5>区(zone):区中其他文件就不必介绍了,主要介绍下区文件指令。

 

下面的指令我会在一下的实验中举例:

 

用途

区文件指令

说明

   简化区文件结构

$INCLUDE

读取一个外部文件并包含它

$GENERATE

用来创建一组NS CNAME PTR类型的 RR

由资源记录使用的值

$ORIGIN

设置管辖源

$TTL

为没有定义精确的生存期的RR定义缺省的TTL

 

二、实验:

 

DNS配置:

 

环境:主DNS  IP192.168.1.112,然后在本机测试。

 

 

1、  yum install bind*安装bind相关软件包。
配置正向与反向区域:
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

 

 

正向数据库文件配置:

 

 

 

 

检查区域文件与数据库文件配置语法是否正确:

 

 

 

测试:

 

 

 

辅助DNS

 

DNS IP192.168.1.112,辅助DNS192.168.1.111

 

 

在区域配置中加入允许复制数据的辅助DNS  IP

 

 

 

 

当配置完成启动服务器后出现,区域数据库文件无法复制,如log中出现一下内容:

 

 

Mar 30 21:55:48 centos5 named[3889]: dumping master file: tmp-GKwViMtW0p: open: permission denied
Mar 30 21:55:48 centos5 named[3889]: transfer of 'unix.com/IN' from 192.168.1.112#53: failed while receiving responses: permission denied
Mar 30 21:55:48 centos5 named[3889]: transfer of 'unix.com/IN' from 192.168.1.112#53: end of transfer
Mar 30 21:55:48 centos5 kernel: audit(1238421348.065:16): avc:  denied  { write } for  pid=3890 comm="named" name="named" dev=hda3 ino=96885 scontext=root:system_r:named_t:s0 tcontext=system_u:object_r:named_zone_t:s0 tclass=dir
Mar 30 21:55:57 centos5 named[3889]: zone 1.168.192.in-addr.arpa/IN: Transfer started.
Mar 30 21:55:57 centos5 named[3889]: transfer of '1.168.192.in-addr.arpa/IN' from 192.168.1.112#53: connected using 192.168.1.111#1270

 

有两种情况:
第一,             数据库所在的目录要让named用户有写权限(一般都是named用户没有权限)。即、chown named:named /var/named/chroot/var/named
      并且
/var/named/chroot/var/named/localhost.zone
/var/named/chroot/var/named/named.ca
/var/named/chroot/var/named/named.local
     以上三个文件必须要有

 

 

第二:SELINUX没有关闭。

 

    usr/sbin/setenforce 0 立刻关闭 SELINUX

 

  /usr/sbin/setenforce 1 立刻启用 SELINUX

 

  加到系统默认启动里面

 

  echo "/usr/sbin/setenforce 0" >> /etc/rc.local

 

 

如果服务器启动成功并且在named目录下已经出现主
dsn中的区域数据库文件,说明配置成功。

 

 

泛域名:

 

 

 

直接域名:

 

DNS负载均衡:

 

正解:
反解:
测试: