实验环境说明
操作系统 主机名 网卡数量 IP 用途
——————————————————————————————————
RHEL5 ns1 1块 192.10.10.5/24 主DNS
Centos5.5 ns2 1块 192.10.10.55/24 辅助DNS
Xp Xp_client 1块 192.10.10.10/24 内网客户端
——————————————————————————————————
以上,先用ping命令测试确保网络连通性
一、在RHEL5上检查构建DNS所需的安装包
[root@ns1 ~]# rpm -qa |grep bind*
bind-utils-9.3.3-7.el5 #提供对DNS服务器的测试用的工具,如nslookup,dig等
bind-chroot-9.3.3-7.el5 #为bind提供一个伪装根目录以增强安全性
bind-9.3.3-7.el5 #构建DNS的主要程序包
[root@ns1 ~]# rpm -qa |grep caching-name*
caching-nameserver-9.3.3-7.el5 #为实现缓存DNS服务器提供必要的配置文件
BIND的主配置文件为named.conf,RHEL5和Centos5.5的/etc和/var/named/chroot/etc下默认没有此文件,需要手动建立,也可以从/usr/share/doc/bind-9.3.3/sample/etc/下复制BIND的主配置样本文件到/var/named/chroot/etc下。
named.conf配置文件中主要包括全局配置和区域配置部分,全局配置部分包括在"options { };"的大括号中;而区域配置参数在"zone { };"中。
二、为提高域名解析效率,需要将主从DNS的地址写入到/etc/hosts,同时在/etc/resolv.conf文件中指定主从DNS地址。
[root@ns1 named]# cat /etc/hosts #将主从DNS地址写入到hosts文件中
# Do not remove the following line, or various programs
# that require network functionality will fail.
192.10.10.5 ns1.tgh.com ns1
192.10.10.55 ns2.tgh.com ns2
[root@ns1 named]# cat /etc/resolv.conf #将主从DNS地址写入到resolv.conf文件中
search tgh.com
nameserver 192.10.10.5
nameserver 192.10.10.55
[root@ns1 ~]# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=ns1.tgh.com #设置主机名
GATEWAY=192.10.10.1
三、手动创建BIND主配置文件
[root@ns1 ~]#vi /var/named/chroot/etc/named.conf #使用vi创建并编辑BIND主配置文件named.conf
#全局配置参数
options {
listen-on port 53 { any; }; #设定监听端口号、IP地址;若注释此行,则在所有的可用IP地址上监听服务,any为监听所有
directory "/var/named/"; #此行不能注释,指定区域数据库文件存放位置
allow-query { any; }; #允许DNS查询的客户端地址,any表示所有都可查询
recursion yes; #设置允许递归查询
};
#区域配置参数
zone "." IN { #设置根区域
type hint; #区域类型,hint表示根域、master表示主域、slave表示辅助域
file "named.ca"; #对应的根域地址数据库文件名
};
zone "tgh.com" IN { #设置正向DNS区域名称
type master; #区域类型为主域
file "tgh.com.zone"; #正向区域的地址数据库文件名
allow-transfer { 192.10.10.55; }; #设置允许下载区域数据库信息的从域名服务器地址
allow-update { none; }; #设置允许动态更新的客户端地址为禁止
};
zone "10.10.192.in-addr.arpa" IN { #设置反向DNS区域名称
type master; #区域类型为主域
file "192.10.10.arpa"; #反向区域的地址数据库文件名
allow-transfer { 192.10.10.55;}; #设置允许下载区域数据库信息的从域名服务器地址
allow-update { none; };
};
:wq! #保存退出!
[root@ns1 etc]#chmod 755 named.conf #给予相关权限,不然在启动named时会报错
[root@ns1 etc]# ll named.conf #查看区域配置文件的属性
-rwxr-xr-x 1 root root 780 Nov 24 07:37 named.conf
[root@ns1 ~]# named-checkconf /var/named/chroot/etc/named.conf #检查主配置文件是否存在语法错误,注意指定路径哦
四、手动创建BIND的区域数据库配置文件
[root@ns1 ~]# vi /var/named/chroot/var/named/tgh.com.zone #创建正向区域数据库文件,注意文件名及路径
$TTL 86400 #设置有效地址解析记录的默认缓存时间
@ IN SOA tgh.com. admin.tgh.com. ( #设置SOA标记、域名、域管理邮箱
2010112001 #更新序列号,用于标记地址数据库的变化,可以是10位以内的整数
4H #刷新时间,从域名服务器更新该地址数据库文件的间隔时间
15M #重试时间,从域名服务器更新地址数据库失败后,等待多长时(15 Minutes)间再次尝试
1W #失效时间,超过该时间(1 Week)仍无法更新地址数据库,则不再尝试
1D #设置无效地址解析记录的默认缓存时间(1 Day)
)
@ IN NS ns1.tgh.com. #NS为域名服务器记录,用于设置当前域的DNS服务器的域名地址,注意名称后都有"."
@ IN NS ns2.tgh.com.
IN MX 5 mail.tgh.com. #MX邮件交换记录,用于设置当前域的邮件服务器域名地址,数字表优先级,越大越低
ns1 IN A 192.10.10.5 #A地址记录,用于记录正向域名解析
ns2 IN A 192.10.10.55
www IN A 192.10.10.5
www IN A 192.10.10.4 #此处假设一个域名对应多个IP,可以实现基于DNS解析的负载均衡
mail IN A 192.10.10.5
ftp IN A 192.10.10.5
sz IN CNAME www #CNAME别名记录,表示sz.tgh.com是的别名,可以通过nslookup sz.tgh.com查看到
* IN A 192.10.10.5 #当一个IP对应大量不同域名时,用作泛域名解析
:wq! #保存退出!
[root@ns1 ~]# vi /var/named/chroot/var/named/192.10.10.arpa #创建反向区域数据库文件,注意文件名及路径
$TTL 86400
@ IN SOA tgh.com. admin.tgh.com. (
2010112001
4H
15M
1W
1D
)
@ IN NS ns1.tgh.com. #注意名称后有"."
@ IN NS ns2.tgh.com.
5 IN PTR ns1.tgh.com.
55 IN PTR ns2.tgh.com.
5 IN PTR . #PTR指针记录,第一列为主机地址
4 IN PTR . #此处对应正向区域数据库中的假设一个域名对应多个IP
5 IN PTR mail.tgh.com.
5 IN PTR .
:wq! #保存退出!
五、给予相关权限,启动named服务,并关闭防火墙
[root@ns1 named]# chmod 755 tgh.com.zone #给予相关权限
[root@ns1 named]# chmod 755 192.10.10.arpa #给予相关权限
[root@ns1 ~]# service named restart #重新启动named服务
Stopping named: [ OK ]
Starting named: [ OK ]
[root@ns1 etc]# service iptables stop #关闭防火墙,不然客户端不能正常解析
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
[root@ns1 ~]# chkconfig --level 35 named on #将named服务设为开机自启动
[root@ns1 ~]# chkconfig --list named #查看是否在3 5开启
named 0:off 1:off 2:off 3:on 4:off 5:on 6:off
[root@ns1 data]# netstat -anp |grep :53 #查看named端口状态
六、验证主域名服务器
[root@ns1 ~]# nslookup #启用nslookup查询
>
Server: 192.10.10.5
Address: 192.10.10.5#53
Name:
Address: 192.10.10.5
> mail.tgh.com
Server: 192.10.10.5
Address: 192.10.10.5#53
Name: mail.tgh.com
Address: 192.10.10.5
> sz.tgh.com
Server: 192.10.10.5
Address: 192.10.10.5#53
sz.tgh.com canonical name = .
Name:
Address: 192.10.10.5
> 192.10.10.5 #反向解析
Server: 192.10.10.5
Address: 192.10.10.5#53
5.10.10.192.in-addr.arpa name = .
5.10.10.192.in-addr.arpa name = ns1.tgh.com.
5.10.10.192.in-addr.arpa name = .
5.10.10.192.in-addr.arpa name = mail.tgh.com.
在客户端XP_client上(注:客户端的DNS应该为192.10.10.5)
C:\Documents and Settings\tghfly>nslookup #正向解析
Server:
Address: 192.10.10.5
Name:
Address: 192.10.10.5
C:\Documents and Settings\tghfly>nslookup sz.tgh.com #对设置的别名进行正向解析
Server:
Address: 192.10.10.5
Name:
Address: 192.10.10.5
Aliases: sz.tgh.com
C:\Documents and Settings\tghfly>nslookup 192.10.10.5 #反向解析
Server: mail.tgh.com
Address: 192.10.10.5
Name:
Address: 192.10.10.5
——————————————————————————————————————
七、在Centos5.5上使用bind构建辅助域名服务器
1、同样设置好主机名、/etc/hosts 、/etc/resolv.conf文件
[root@ns2 network-scripts]# cat /etc/resolv.conf
nameserver 192.10.10.5
nameserver 192.10.10.55
[root@ns2 network-scripts]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
192.10.10.5 ns1.tgh.com
192.10.10.55 ns2.tgh.com
[root@ns2 network-scripts]# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=ns2.tgh.com
GATEWAY=192.10.10.1
2、在辅助域名服务器上建立BIND主配置文件named.conf
[root@ns2 ~]# vi /var/named/chroot/etc/named.conf
options {
allow-query { any; };
directory "/var/named";
recursion yes;
};
zone "tgh.com" IN {
type slave; #使用辅助区域类型
masters { 192.10.10.5; }; #指定主域名服务器的IP地址
file "slaves/tgh.com.zone"; #从主域名服务器上下载的地址数据库文件保存到辅助域名服务器的slaves目录下
};
zone "10.10.192.in-addr.arpa" IN {
type slave;
masters { 192.10.10.5; };
file "slaves/192.10.10.arpa";
};
:wq! #保存退出
3、给予相关权限,启动named服务,并关闭防火墙
[root@ns2 ~]# chmod 755 /var/named/chroot/etc/named.conf
[root@ns2 ~]# service named restart
Stopping named: [ OK ]
Starting named: [ OK ]
[root@ns2 ~]# service iptables stop
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: nat filter [ OK ]
Unloading iptables modules: [ OK ]
[root@ns2 ~]# chkconfig --level 35 named on
[root@ns2 ~]# tail -f /var/log/messages #查看区域数据库文件下载记录
Nov 27 14:37:18 ns2 named[5463]: zone tgh.com/IN: Transfer started.
Nov 27 14:37:18 ns2 named[5463]: transfer of 'tgh.com/IN' from 192.10.10.5#53: connected using 192.10.10.55#53041
Nov 27 14:37:18 ns2 named[5463]: zone tgh.com/IN: transferred serial 2010112001
Nov 27 14:37:18 ns2 named[5463]: transfer of 'tgh.com/IN' from 192.10.10.5#53: end of transfer
Nov 27 14:37:18 ns2 named[5463]: zone tgh.com/IN: sending notifies (serial 2010112001)
Nov 27 14:37:19 ns2 named[5463]: zone 10.10.192.in-addr.arpa/IN: Transfer started.
Nov 27 14:37:19 ns2 named[5463]: transfer of '10.10.192.in-addr.arpa/IN' from 192.10.10.5#53: connected using 192.10.10.55#49613
Nov 27 14:37:19 ns2 named[5463]: zone 10.10.192.in-addr.arpa/IN: transferred serial 2010112001
Nov 27 14:37:19 ns2 named[5463]: transfer of '10.10.192.in-addr.arpa/IN' from 192.10.10.5#53: end of transfer
Nov 27 14:37:19 ns2 named[5463]: zone 10.10.192.in-addr.arpa/IN: sending notifies (serial 2010112001)
4、在客户端XP_client上测试(注:客户端的DNS应更改为192.10.10.55)
C:\Documents and Settings\Administrator>nslookup
Default Server: ns2.tgh.com
Address: 192.10.10.55
>
Server: ns2.tgh.com
Address: 192.10.10.55
Name:
Address: 192.10.10.5
> mail.tgh.com
Server: ns2.tgh.com
Address: 192.10.10.55
Name: mail.tgh.com
Address: 192.10.10.5
> sz.tgh.com
Server: ns2.tgh.com
Address: 192.10.10.55
Name:
Address: 192.10.10.5
Aliases: sz.tgh.com