最近在DNS安装配置的时候总是出现错误,于是重新整理了一下以前学习的资料,详细地做了这次关于DNS服务器的安装与配置实验,顺便也粗略的写下记录了这次实验过程,下面是整理过的实验操作,希望对一些有需要的朋友能有所帮助。

1.服务器的安装

首先检查系统是否已经安装

打开终端输入命令:#rpm -qa | grep bind

若已安装则显示如下:

201036773.jpg




若未安装,依次安装上面软件即可。

2.主配置文件named.conf

由于主配置文件named.conf默认并不存在,可以采用①自己编写,或②复制/usr/share/doc/bind-9.3.6/sample/etc/下的模板到/etc/下,或者③安装caching-nameserver-9.3.6-4.P1.el5_4.2.i386.rpm将安装文件named.caching-nameserver.conf修改为named.conf的方法获得主配置文件named.conf。这里采用第二种方法。

首先将/usr/share/doc/bind-9.3.6/sample/etc/下的全部文件复制到/etc/下,将/usr/share/doc/bind-9.3.6/sample/var/named/下的全部文件复制到/var/named/下(全部替换)。

编辑文件named.conf如下(已删去注释):

options

{

directory "/var/named";

dump-file "data/cache_dump.db";

statistics-file "data/named_stats.txt";

memstatistics-file "data/named_mem_stats.txt";

};

logging

{

channel default_debug {

file "data/named.run";

severity dynamic;

};

};

view "localhost_resolver"

{

match-clients { any; }; //将localhost改为any

match-destinations { any; }; //将localhost改为any

recursion yes;

include "/etc/named.root.hints";

include "/etc/named.rfc1912.zones";

};

view "internal"

{

match-clients { localnets; };

match-destinations { localnets; };

recursion yes;

include "/etc/named.root.hints";

zone "my.internal.zone" {

type master;

file "my.internal.zone.db";

};

zone "my.slave.internal.zone" {

type slave;

file "slaves/my.slave.internal.zone.db";

masters { 127.0.0.1; } ;

};

zone "my.ddns.internal.zone" {

type master;

file "slaves/my.ddns.internal.zone.db";

};

};

view "external"

{

match-clients { any; };

match-destinations { any; };

recursion no;

allow-query-cache { none; };

include "/etc/named.root.hints";

zone "my.external.zone" {

type master;

file "my.external.zone.db";

};

};

编辑文件named.rfc1912.zones,在文件最下方添加如下:

zone "test.com" IN { //定义正向解析区域

type master;

file "test.com.zone"; //正向解析区域声明文件

allow-update { none; };

};

zone "91.168.192.in-addr.arpa" IN { //定义反向解析区域

type master;

file "91.168.192.zone"; //反向解析区域声明文件

allow-update { none; };

};

在/var/named/下新建文件test.com.zone,91.168.192.zone。分别编辑如下:

文件test.com.zone:

$TTL 86400 //允许客户端缓存来自查询数据的默认时间

@ IN SOA dns.test.com. root (

2013050700 ; Serial

28800 ; Refresh //更新间隔

14400 ; Retry //重试间隔

3600000 ; Expire //过期时间

86400 ) ; Minimum //最小默认TTL

IN NS dns //名称服务器

IN MX 5 mail //邮件交换器

dns IN A 192.168.91.128

www IN A 192.168.91.10 //负载均衡

www IN A 192.168.91.11

www IN A 192.168.91.12

ftp IN A 192.168.91.13

samba IN A 192.168.91.14

mail IN A 192.168.91.20

bbs CNAME www //设置别名

test.com. IN A 192.168.91.100 //直接解析域名

*.test.com. IN A 192.168.91.9 //泛域名解析

文件91.168.192.zone:

$TTL 86400

@ IN SOA dns.test.com. root (

2013050700 ; Serial

28800 ; Refresh

14400 ; Retry

3600000 ; Expire

86400 ) ; Minimum

IN NS dns.test.com.

128 IN PTR dns.test.com.

10 IN PTR www.test.com.

20 IN PTR mail.test.com.

13 IN PTR ftp.test.com.

3.更新named.root文件

在联网的情况下可直接在终端输入命令如下:

#dig > /var/named/named.root

为避免chroot功能干扰实验,先关闭chroot功能,执行命令如下:

#bind-chroot-admin -d

启动DNS服务器,输入指令如下:

#service named start

如上,一个简单地DNS服务器配置成功。下面用windows XP客户端验证配置:

首先确保开放服务器防火墙端口TCP 53和UDP 53。将客户端DNS地址设置为所配置DNS服务器IP地址。

在命令提示符中输入:nslookup,结果如下:

201040872.jpg

依次验证如下:

201044606.jpg


201048558.jpg


201052728.jpg


4.由于DNS服务器在实际工作中工作量会很大,即使是短暂的间断也会对系统造成很大影响,这里运用rndc工具,使在不用重新启动的情况下更新DNS中的数据。

在终端输入命令如下:

#rndc-confgen

出现如下:

# Start of rndc.conf

key "rndckey" {

algorithm hmac-md5;

secret "p8SMJ/l6wOOddMEp0uwHtA==";

};

options {

default-key "rndckey";

default-server 127.0.0.1;

default-port 953;

};

# End of rndc.conf

# Use with the following in named.conf, adjusting the allow list as needed:

# key "rndckey" {

# algorithm hmac-md5;

# secret "p8SMJ/l6wOOddMEp0uwHtA==";

# };

#

# controls {

# inet 127.0.0.1 port 953

# allow { 127.0.0.1; } keys { "rndckey"; };

# };

# End of named.conf

将其全部复制到/etc/rndc.conf文件中,保存。

将其下半部分:

# key "rndckey" {

# algorithm hmac-md5;

# secret "p8SMJ/l6wOOddMEp0uwHtA==";

# };

#

# controls {

# inet 127.0.0.1 port 953

# allow { 127.0.0.1; } keys { "rndckey"; };

# };

复制到文件named.conf最下方,去掉其前面的#号,保存。

重新启动DNS服务器,输入命令如下:

#service named restart

如此在每次修改了DNS服务器相关文件后无需每次都重新启动服务器,只需在终端输入如下命令:

#rndc reload