Chinaunix首页 | 论坛 | 博客
  • 博客访问: 330847
  • 博文数量: 30
  • 博客积分: 3021
  • 博客等级: 少校
  • 技术积分: 408
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-01 11:32
文章分类

全部博文(30)

文章存档

2022年(1)

2015年(2)

2014年(1)

2013年(1)

2012年(2)

2011年(2)

2010年(3)

2009年(10)

2008年(8)

分类: LINUX

2009-09-30 14:46:24

搭建环境
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检查,可以正常解析说明配置成功。
阅读(1819) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~