搭建环境
1.DNS master server:192.168.3.11 【Red Hat Enterprise Linux Server
release 5.2 (Tikanga)】
2.DNS slave server:192.168.3.12 【Red Hat Enterprise
Linux Server release 5.2
(Tikanga)】
3.server可与互联网通信;
目录说明
/var/named/chroot/etc
放置named.conf,named.rfc1912.zones
/var/named/chroot/var/named
放置zone和arpa文件
/var/log/messages 查看配置过程中出错信息
首先,应该检查自己是否已经安装了bind
[root@net ~]# rpm -qa
bind*
bind-9.3.4-6.P1.el5
bind-chroot-9.3.4-6.P1.el5
binutils-2.17.50.0.6-6.el5
bind-libs-9.3.4-6.P1.el5
[root@dnsz
named]# rpm -qa | grep
caching
caching-nameserver-9.3.4-6.P1.el5
bind-chroot包放最后一个安装,貌似只需要安装bind-9.3.4-6.P1.el5,bind-chroot-9.3.4-6.P1.el5,caching-nameserver-9.3.4-6.P1.el5三个包即可满足需求。
使用了chroot后,虚拟根目录为/var/named/chroot,则namd.conf实际位置为/var/named/chroot/etc,而工作目录/var/named实际路径为/var/named/chroot/var/named
停用chroot则 在/etc/sysconfig/named 中的 ROOTDIR 这一行给注释掉
配置步骤:配置主dns服务器第一步:安装dns服务器包;
从第二张和第四张光盘中找到要用到的rpm包,然后安装
[root@net
~]#rpm -ivh
bind-9.3.4-6.P1.el5.x86_64.rpm
其它rpm包安装过程略
第二步:建立主配置文件,并修改相关选项;
[root@net
~]#cd
/var/named/chroot/etc
注意:安装caching-nameserver-9.3.4-6.P1.el5.x86_64.rpm之后会自动生成一个
named.caching-nameserver.conf 这个文件,复制为named.conf,并备份一下
[root@net etc]#cp -p
named.caching-nameserver.conf named.caching-nameserver.conf.bak
[root@net
etc]#cp -p named.caching-nameserver.conf named.conf //注意加-p参数
[root@net
etc]#vi named.conf
options {
listen-on port 53 {
any; }; //侦听接口;
listen-on-v6 port 53 { ::1; };
directory
"/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file
"/var/named/data/named_stats.txt";
memstatistics-file
"/var/named/data/named_mem_stats.txt";
query-source port
53;
query-source-v6 port 53;
allow-query {
any; };
//允许查询哪些主机查询;
};
logging {
channel default_debug {
file
"data/named.run";
severity dynamic;
};
};
view
localhost_resolver {
match-clients {
any; };
//匹配任何主机
match-destinations {
any; };
recursion
yes;
include "/etc/named.rfc1912.zones"; //调用区域文件,
可以起个短名
};
第三步:建立正向区域和反向区域;
[root@net ~]# vi
/var/named/chroot/etc/named.rfc1912.zones
在文件末尾添加一下内容,并保存推出;
zone
"test.net" IN {
type master;
file "test.zone";
allow-transfer {
192.168.3.12; }; //设置允许复制数据的辅助dns服务器地址,不设置好像也能复制;
};
zone
"3.168.192.in-addr.arpa" IN {
type master;
file
"rtest.local";
allow-transfer { 192.168.3.12; };
};
第四步:建立对应的区域文件(可以拷贝以有的配置文件,然后修改);
[root@net ~]#cd
/var/named/chroot/var/named
[root@net named]# cp -p localdomain.zone
test.zone
[root@net named]#vi test.zone //建立正向解析区域文件;
$TTL 86400
@ IN SOA ns.test.net. root.test.net. (
//注意域名后面有 .
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ;
expiry
1D ) ; minimum
IN NS ns.test.net.
IN MX 10
mail.test.net.
ns IN A 192.168.3.11
www IN A 192.168.3.1
test IN A
192.168.3.2
ftp IN CNAME
#$TTL
下面的@ 代表域名的意思,在配置文件里所有的域名后都别忘加" .
"##############################################
#如果有子域,只要加一个A和NS记录就行
sub.test.net.
IN NS ns.sub.test.net. //指出子域的dns
ns.sub.test.net. IN A 192.168.3.111
//指出子域的dns地址
##############################################
[root@net
named]#cp -p named.local rtest.local
[root@net named]#vi rtest.local
//建立反向解析区域文件;
$TTL 86400
@ IN SOA ns.test.net. root.test.net.
(
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ;
Expire
86400 ) ; Minimum
IN NS ns.test.net.
11 IN PTR ns.test.net.
1
IN PTR
2 IN PTR test.test.net.
第五步:
把zone配置文件的owner改了,这个文件要是权限过高,那slave就没法去访问和复制
[root@net
named]#chown named:named test.zone
[root@net
named]#^test.zone^rtest.local
第六步: 检查语法
[root@net named]#named-checkconf -t /var/named/chroot
#这命令默认是去找/etc/named/named.conf
#因为安上了chroot这个包,虚拟出来了另一个工作路径/var/named/chroot
所以要把它加上
[root@net named]# //回车没提示那就是OK了
还有一个命令是检查zone的文件语法: 命令 域名
文件位置
[root@net named]#named-checkzone test.net
/var/named/chroot/var/named/test.zone
QUOTE:
/var/named/chroot/var/named/test.zone:9: NS record '192.168.2.78' appears
to be an address
zone test.net/IN: loaded serial
42
OK
第七步:
把iptables里写入规则
[root@net named]#iptables
-A FORWARD -i eth0 -p tcp --dorp 53 -j ACCEPT
[root@net
named]#^tcp^udp
[root@net named]#service iptables save
//保存
关闭selinux
[root@net named]#/usr/sbin/setenforce 0 //立刻关闭 SELINUX
1为启用
[root@net named]#echo "/usr/sbin/setenforce 0" >> /etc/rc.local
//添到系统自动加载文件中
或者
[root@net named]#vi
/etc/sysconfig/selinux
把SELINUX=""改成disabled 再重启
第八步:
[root@net
named]#service named start
//启动服务
用这三条指令来测试:host、dig、nslookup
配置辅助DNS服务器在辅助dns服务器上完成以下内容
第一步:在辅助dns服务器上安装dns所需软件包;
方法同主服务器配置,此处略。
第二步:在辅助dns服务器上建立主配置文件,并修改相关选项;
方法同主服务器配置,此处略。
注:第二步骤中的两个文件可以直接拷贝主dns服务器上的对应文件(named.conf、named.rfc1912.zones),不过要注意权限是root:named或者named:named,要不有可能会在启动时报没有权限的错误。
第三步:在辅助dns服务器上建立相应的区域文件;
[root@net2
dns]# cd /var/named/chroot/etc/
[root@net2 etc]# vi
named.rfc1912.zones
zone "test.net" IN {
type
slave; //区域类型为从区域;
file "
slaves/test.zone"; //这里面可以写路径,
不过注意这个默认的虚拟目录是在/var/named/chroot/var/named 中
masters {
192.168.3.11; }; //设置主dns服务器的ip地址;
};
zone "3.168.192.in-addr.arpa"
IN {
type
slave;
file "
slaves/rtest.local";
//将复制来的文件放在/var/named/chroot/var/named/slaves里
masters {
192.168.3.11; };
};
注意:辅助dns服务器并不需要建立区域数据库文件;
第五步:启动dns服务器,检查数据库文件是否复制了过来;
[root@net2
~]#service named start
[root@net2 ~]#ll
/var/named/chroot/var/named/slaves/
total 8
-rw-r--r-- 1 named named 415
Sep 28 00:19 rtest.local
-rw-r--r-- 1 named named 425 Sep 28 00:19
test.zone
确认文件复制过来后,用nslookup检查,可以正常解析说明配置成功。