最近在DNS安装配置的时候总是出现错误,于是重新整理了一下以前学习的资料,详细地做了这次关于DNS服务器的安装与配置实验,顺便也粗略的写下记录了这次实验过程,下面是整理过的实验操作,希望对一些有需要的朋友能有所帮助。
1.服务器的安装
首先检查系统是否已经安装
打开终端输入命令:#rpm -qa | grep bind
若已安装则显示如下:
若未安装,依次安装上面软件即可。
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,结果如下:
依次验证如下:
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