最近在DNS安装配置的时候老是出现错误,因而从新整理了一下之前学习的资料,详细地作了此次关于DNS服务器的安装与配置实验,顺便也粗略的写下记录了此次实验过程,下面是整理过的实验操做,但愿对一些有须要的朋友能有所帮助。windows
1.服务器的安装缓存
首先检查系统是否已经安装服务器
打开终端输入命令:#rpm -qa | grep bind负载均衡
若已安装则显示以下:ide
若未安装,依次安装上面软件便可。工具
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。这里采用第二种方法。debug
首先将/usr/share/doc/bind-9.3.6/sample/etc/下的所有文件复制到/etc/下,将/usr/share/doc/bind-9.3.6/sample/var/named/下的所有文件复制到/var/named/下(所有替换)。rest
编辑文件named.conf以下(已删去注释):server
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