DNS服务器配置
一.正解文件资源记录(RR)格式
[domain] [ttl] IN [RRtype] [RR data]
其中:
[domain]:可以是主机名,域名,或者是主机别名
[ttl]:生存时间,意思是当这个记录被其他DNS服务器查询到以后,这个记录会在对方DNS服务器的缓存中保留多长时间。
IN:固定标示符
[RR type]:资源类型,资源类型有以下几种:
(1) A:查询IP,后面的[RR data]为IPV4地址
(2) AAAA: :查询IP,后面的[RR data]为IPV6地址
(3) NS:查询管理区域名的服务器的主机名,后面的[RR data]为域名
(4) SOA:查询管理域名的服务器的管理信息 后面的[RR data]为域名
(5) CNAME:设置某主机名的别名,后面的[RRdata]为主机名
(6) MX:查询某域名的邮件服务器主机名,通常整个区域会设计一个MX,表示所有送给这个区域的E-mail应该要送到[RR data](此时后面接一个IP地址)
SOA的参数介绍
SOA共有7个参数,当我执行如下命令
#dig -t SOA [email protected]
会出现有如下一行
baidu.com. 7200 IN SOA dns.baidu.com. sa.baidu.com.2012124724 300 300 2592000 7200
第一列:域名
第二列:TTL,指生存时间,以及我的查询结果会在DNS服务器中保存多长时间。
第三列:IN,固定标识符
第四列:SOA类型
第五列:指baidu.com.这个域名,由dns.baidu.com.这个服务器负责
第六列:负责该区域的管理员邮箱,不过@这个字符在RR记录中有特定意义,所以[email protected].写成了sa.baidu.com.
第七咧:序列号,这个域的标志,如果设置成master/slaver结构,当更新主DNS服务器时,必须将序列号增加一,这样从DNS才能同步更新
第八列:更新频率,指从DNS多久从主DNS服务器更新数据
第九列:重传间隔时间,如果从服务器与主服务器更新失败,则过多久进行重新连接
第十列:过期时间,指从服务与主服务器一直同步数据失败,经过多长时间,主从不在连接同步,即解除关系
第十一列:否定答案的TTL值
2.DNS服务器类型
主DNS服务器,从DNS服务器,cache-only服务器,转发服务器
二.配置一个简单的cache-only DNS Server
如果一个DNSServer只有缓存搜索功能,也就是说,它本身没有主机名与IP正反解的配置文件,它的数据源完全来自对外的查询。
步骤:
查询本机上是否安装bind
[root@yangjunfeng~]# rpm -qa | grep "^bind"
显示内容如下:
bind-libs-9.8.2-0.30.rc1.el6.x86_64
bind-utils-9.8.2-0.30.rc1.el6.x86_64
bind-9.8.2-0.30.rc1.el6.x86_64
2.打开BIND的主配置文件/etc/named.conf
[root@yangjunfeng ~]# vim/etc/named.conf
将option内的内容做修改:
listen-on port 53 { any; };
allow-query { any; };
options {
listen-on port 53 { any; }; //默认监听端口,默认值为localhost,这里改为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";
allow-query { any; }; //允许哪些主机可以对本机进行DNS查询,默认为本机,改为any,意为所有主机都可以
recursion yes;
dnssec-enable no; //禁用dnssec,将其值改为no
dnssec-validation no; //禁用dnssec,将其值改为no
dnssec-lookaside no; //禁用dnssec,将其值改为no
/* Path to ISC DLV key */
bindkeys-file"/etc/named.iscdlv.key";
managed-keys-directory"/var/named/dynamic";
};
3.重启服务
[root@yangjunfeng ~]# service named start
出现以下结果
Starting named: named: alreadyrunning [ OK ]
这样一个缓存DNS服务器就配置好了。
三.配置一个主DNS服务器
编辑/etc/named.rfc1912.zones
添加如下内容
zone "test.com" IN {
type master; //服务器类型为master
file "test.com.zone";//区域的配置文件名,在/var/named下需自己创建
};
2.在/var/named下新建一个文件test.com.zone,添加如下内容
$TTL86400
@ IN SOA ns1.test.com. admin.test.com. (
20150426012H 5M 7D 1D )
IN NS ns1.test.com.
IN MX 10 mx1
mx1 IN A 172.16.70.150
ns1 IN A 172.16.70.150
www IN A 172.16.70.140
* IN A 172.16.70.140
保存退出
3.执行如下两条命令检查有无语法错误
[root@yangjunfeng named]# named-checkconf
[root@yangjunfeng named]#named-checkzone "test.com" test.com.zone
4.修改test.com.zone权限,属组为named,权限为r,属主为root,权限为rw
[root@yangjunfeng named]# chmod 640 test.com.zone
[root@yangjunfeng named]# chown :named test.com.zone
5.关闭防火墙
[root@yangjunfeng named]# chkconfig iptables off
6.启动named服务
[root@yangjunfeng named]# service named start
7.测试
[root@yangjunfengnamed]# dig -t A www.test.com @172.16.70.150
;<<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6 <<>> -t Awww.test.com @172.16.70.150
;; globaloptions: +cmd
;; Gotanswer:
;;->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59720
;; flags:qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;;QUESTION SECTION:
;www.test.com. IN A
;; ANSWERSECTION:
www.test.com. 86400 IN A 172.16.70.140
;;AUTHORITY SECTION:
test.com. 86400 IN NS ns1.test.com.
;;ADDITIONAL SECTION:
ns1.test.com. 86400 IN A 172.16.70.150
;; Querytime: 1 msec
;;SERVER: 172.16.70.150#53(172.16.70.150)
;; WHEN:Thu Apr 9 23:48:06 2015
;; MSGSIZE rcvd: 80
四.配置主服务器的逆向解析
编辑/etc/named.rfc1912.zones
添加如下内容
zone “70.16.172.in-addr.arpa”IN {
type master;
file “172.16.70.zone”;
};
2.编辑/var/named/172.16.70.zone 添加如下内容
$TTL86400
@ IN SOA ns1.test.com. admin.test.com. (
2015042601 2H 5M 7D 1D )
IN NS ns1.tets.com.
150 IN PTR ns1.test.com.
140 IN PTR www.test.com.
140 IN PTR *.test.com.
3.修改权限
[root@yangjunfeng named]# chmod 640 172.16.70.zone
[root@yangjunfeng named]# chown:named 172.16.70.zone
4.重新加载named服务
[root@yangjunfeng named]# servicenamed reload
5.测试
[root@yangjunfengnamed]# dig -x 172.16.70。140 @172.16.70.150
出现如下的一行内容
;; ANSWER SECTION:
70.16.172.in-addr.arpa.86400 IN PTR www.test.com.
说明测试成功了
五.配置主从服务器
配置主服务器,步骤如上
配置从服务器,这里打开另外一台虚拟机,网络地址为172.16.70.140
(1)编辑/etc/named.rfc1912.zones
添加如下内容
zone “70.16.172.in-addr.arpa” IN {
type slave;
masters { 172.16.70.150;};
file “slaves/172.16.70.zone”;//同步的文件存放在/var/named/slavers,而named的默认工作目录为/var/named,所以只写slaves即可
};
(2)重新启动172.16.70.140主机上的named服务,查看/var/named目录下存在test.com.zone
其内容如下:
$ORIGIN .
$TTL86400 ; 1 day
test.com IN SOA ns1.test.com. admin.test.com. (
2015042601 ;serial
7200 ; refresh (2 hours)
300 ; retry (5 minutes)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS ns1.test.com.
MX 10 mx1.test.com.
$ORIGINtest.com.
* A 173.16.70.140
mx1 A 172.16.70.150
ns1 A 172.16.70.150
www A 174.16.70.140
说明主从DNS服务器已经可以同步了
六.配置子域授权
假设现在我们,要在test下面创建一个子域,名为sub.test.com 并且如果子域所负责的IP为172.16.110.1
在主服务器中/var/named/test.com.zone
添加如下内容:
sub.test.com. IN NS dns.sub.test.com.
dns.sub.test.com. IN A 172.16.110.1
2在172.16.110.1 中/etc/named.rfc1912.zones中添加
zone “sub.test.com.” IN {
type master;
file “sub.test.com.zone”;
};
2.在172.16.110.1的/var/named/新建sub.test.com.zone文件,添加如下内容
$TTL 1D
@ IN SOA ns1.sub.test.com. admin.sub.test.com. (
2015042601 2D 10M 1W 1D )
IN NS ns1.sub.test.com.
ns1 IN A 172.16.110.1
www IN A 172.16.110.1
3.测试
(1)在主服务器上执行如下命令:
[root@yangjunfengnamed]# dig -t A [email protected]
显示如下结果:
;; ANSWERSECTION:
www.sub.test.com. 86400 IN A 172.16.110.1
;;AUTHORITY SECTION:
sub.test.com. 86400 IN NS ns1.sub.test.com.
说明能进行DNS解析
(2)在子域服务器上执行如下命令:
[root@stu110~]# dig -t A [email protected]
得到如下结果:
;; ANSWERSECTION:
www.sub.test.com. 86400 IN A 172.16.110.1
;;AUTHORITY SECTION:
sub.test.com. 86400 IN NS ns1.sub.test.com.
说明子域DNS服务器也能解析