DNS服务配置:
我们主要写一些其他资料没有的东西,至于
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 �Cquery
指定允许进行查询的主机
Notify
当主区域的数据发生变化时,也许通知从服务器。
<5>
区(
zone
):区中其他文件就不必介绍了,主要介绍下区文件指令。
下面的指令我会在一下的实验中举例:
用途
|
区文件指令
|
说明
|
简化区文件结构
|
$INCLUDE
|
读取一个外部文件并包含它
|
$GENERATE
|
用来创建一组NS 、CNAME或 PTR类型的 RR
|
由资源记录使用的值
|
$ORIGIN
|
设置管辖源
|
$TTL
|
为没有定义精确的生存期的RR定义缺省的TTL值
|
|
|
|
|
二、实验:
主
DNS
配置:
环境:主
DNS IP
为
192.168.1.112
,然后在本机测试。
1、
用
yum install bind*
安装
bind
相关软件包。
配置正向与反向区域:
正向数据库文件配置:
检查区域文件与数据库文件配置语法是否正确:
测试:
辅助
DNS
:
主
DNS IP
为
192.168.1.112
,辅助
DNS
为
192.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
负载均衡:
正解:
反解:
测试:
本文出自 “www.zhangyahan.com” 博客,谢绝转载!