缓存DNS和主DNS服务器的快速搭建详解
一、设定配置内容
假设我们已经在网上注册了wangej.com域名,得到的IP网络是172.16.12.0/24
ns服务器是:172.16.12.1
www服务器:172.16.12.1,另外一个地址:172.16.12.3
mail服务器:172.16.12.2
ftp主机在www服务器上,即ftp为www的别名
二、准备工作:
这里我们使用97来搭建我们的DNS服务器,首先需要安装好bind97.i386、bind97-libs.i386、bind97-utils.i386这三个软件包。软件包可以在官方网站下载。(此为源码)
三、配置文件详解
/etc/named.conf为BIND服务进程的主配置文件
BIND进程的工作属性
区域的定义
-
options { #定义选项
-
directory "/var/named"; #定义数据文件目录
-
};
-
-
zone "." IN { #定义区域
-
type hint; #定义区域类型为根
-
file "named.ca"; #定义数据文件
-
};
-
-
zone "localhost" IN { #定义本地解析区域
-
type master; #定义区域类型为主
-
file "named.localhost"; #定义数据文件
-
};
-
-
zone "0.0.127.in-addr.arpa" IN { #定义反向解析区域
-
type master; #定义区域类型为主
-
file "named.loopback"; #定义数据文件
-
};
/etc/rndc.key为rndc服务的密钥文件
rndc:Remote Name Domain Controller远程名称服务控制器
/etc/rndc.conf为rndc服务的密钥文件
/var/named/目录
目录中存储的均为区域数据文件
/etc/rc.d/init.d/named BIND的服务控制脚本,用来在rhel5中使用service调用开关的。
四、资源记录类型和字符含义
-
SOA(Start Of Authority起始授权记录)
-
ZONE NAME TTL IN SOA FQDN(主DNS) ADMINISTRATOR_MAILBOX(
-
serial number #版本号
-
refresh #定义检查周期时间
-
retry #定义重试时间
-
expire #定义过期时间
-
nagative answer TL #定义否定答案的缓存时长
-
时间单位:M(分钟)、H(小时)、D(天)、W(周)、默认单位是秒
-
邮箱格式:admin@magedu.com. -写为-> admin.magedu.com.
-
-
magedu.com. 600 IN SOA ns1.wangej.com. admin.wag.com. (
-
20130401(最长10为数)
-
1H
-
5M
-
1W
-
1D)
-
NS(Name Server):区域名称-->主机名
-
magedu.com. 600 IN NS ns.magedu.com.
-
ns.magedu.com. 600 IN A 1.1.1.2
-
MX(Mail eXchange):ZONE NAME --> FQDN
-
优先级 0-99:数字越小级别越高
-
ZONE NAME TTL IN MX pri VALUE
-
magedu.com. 600 IN MX 10 .magedu.com.
-
mail.magedu.com. 600 IN A 1.1.1.3
-
A(address): FQDN-->IPv4
-
AAAA:FQDN-->IPv6
-
PTR(pointer): IP-->FQDN 指针记录
-
CNAME(Canonical NAME): FQDN-->FQDN 别名记录
五、配置缓存DNS服务器
1、vim /etc/named.conf
-
options { #定义选项
-
directory "/var/named"; #定义数据文件目录
-
};
-
-
zone "." IN { #定义区域
-
type hint; #定义区域类型为根
-
file "named.ca"; #定义数据文件
-
};
-
-
zone "localhost" IN { #定义本地解析区域
-
type master; #定义区域类型为主
-
file "named.localhost"; #定义数据文件
-
};
-
-
zone "0.0.127.in-addr.arpa" IN { #定义反向解析区域
-
type master; #定义区域类型为主
-
file "named.loopback"; #定义数据文件
-
};
检查语法是否错误:
named-checkconf
检查named.conf文件的属主属组和权限
-
[root@localhost named]# chmod 640 /etc/named.conf
-
[root@localhost named]# chown root:named /etc/named.conf
-
[root@localhost named]# ll /etc/named.conf
-
-rw-r----- 1 root named 369 Apr 1 22:08 /etc/named.conf
2、这里我们需要关闭SELinux,以确保linux的安全机制不会对BIND服务造成什么影响。
查看SELinux当前状态:
-
[root@localhost named]# getenforce #查看SELinux当前的开启状态
-
Enforcing #SELinux开启状态
-
[root@localhost named]# setenforce 0 #临时性关闭SELinux服务
-
[root@localhost named]# getenforce #再次查看SELinux
-
Permissive
临时性关闭SELinux:
# setenforce 0
开启SELinux服务
# setenforce 1
永久关闭SELinux就需要配置: vim /etc/selinux/
这里我们关闭SELinux服务
# setenforce 0
3、测试服务是否正常
重启named服务service named restart然后我们ping一个EQDN测试是否成功
-
[root@localhost named]# service named restart
-
Stopping named: [ OK ]
-
Starting named: [ OK ]
使用dig命令查看一下根域
dig -t NS . @172.16.12.1 通过我们自己设置的DNS服务器查看根域名服务器。
-
[root@localhost named]# dig -t NS . @172.16.12.1
-
-
; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_7.4 <<>> -t NS . @172.16.12.1
-
;; global options: +cmd
-
;; Got answer:
-
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64807
-
;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 14
-
-
;; QUESTION SECTION:
-
;. IN NS
-
-
;; ANSWER SECTION:
-
. 487177 IN NS a.root-servers.net.
-
. 487177 IN NS f.root-servers.net.
-
. 487177 IN NS m.root-servers.net.
-
. 487177 IN NS h.root-servers.net.
-
. 487177 IN NS k.root-servers.net.
-
. 487177 IN NS b.root-servers.net.
-
. 487177 IN NS i.root-servers.net.
-
. 487177 IN NS l.root-servers.net.
-
. 487177 IN NS d.root-servers.net.
-
. 487177 IN NS e.root-servers.net.
-
. 487177 IN NS j.root-servers.net.
-
. 487177 IN NS c.root-servers.net.
-
. 487177 IN NS g.root-servers.net.
-
-
;; ADDITIONAL SECTION:
-
a.root-servers.net. 573577 IN A 198.41.0.4
-
a.root-servers.net. 573577 IN AAAA 2001:503:ba3e::2:30
-
b.root-servers.net. 573577 IN A 192.228.79.201
-
c.root-servers.net. 573577 IN A 192.33.4.12
-
d.root-servers.net. 573577 IN A 199.7.91.13
-
d.root-servers.net. 573577 IN AAAA 2001:500:2d::d
-
e.root-servers.net. 573577 IN A 192.203.230.10
-
f.root-servers.net. 573577 IN A 192.5.5.241
-
f.root-servers.net. 573577 IN AAAA 2001:500:2f::f
-
g.root-servers.net. 573577 IN A 192.112.36.4
-
h.root-servers.net. 573577 IN A 128.63.2.53
-
h.root-servers.net. 573577 IN AAAA 2001:500:1::803f:235
-
i.root-servers.net. 573577 IN A 192.36.148.17
-
i.root-servers.net. 573577 IN AAAA 2001:7fe::53
-
-
;; Query time: 5 msec
-
;; SERVER: 172.16.12.1#53(172.16.12.1)
-
;; WHEN: Tue Apr 2 19:51:37 2013
-
;; MSG SIZE rcvd: 512
4、为named服务添加开机启动
chkconfig on named
-
[root@localhost named]# chkconfig --list named
-
named 0:off 1:off 2:off 3:off 4:off 5:off 6:off
-
[root@localhost named]# chkconfig named on
-
[root@localhost named]# chkconfig --list named
-
named 0:off 1:off 2:on 3:on 4:on 5:on 6:off
OK,到这里缓存DNS就已经配置正常,能够正常使用了。
六、配置主DNS服务器
1、为/etc/named.conf添加主区域文件配置和反向区域解析
-
zone "wangej.com" IN { #定义wangej.com区域
-
type master; #定义区域类型为主
-
file "wangej.com.zone"; #定义数据文件
-
};
-
-
zone "12.16.172.in-addr.arpa" IN { #定义wangej.com反向解析区域
-
type master; #定义区域类型为主
-
file "172.16.12.zone"; #定义数据文件
-
};
2、添加区域文件
vim wangej.com.zone
-
vim wangej.com.zone
-
$TTL 1H
-
wangej.com. IN SOA ns1.wangej.com. admin.wangej.com. (
-
1
-
1H
-
5M
-
2D
-
6H )
-
IN NS ns1
-
IN MX 10 mail
-
ns1 IN A 172.16.12.1
-
mail IN A 172.16.12.2
-
www IN A 172.16.12.1
-
www IN A 172.16.12.3
-
ftp IN CNAME www
vim 172.16.12.zone
-
$TTL 1H
-
@ IN SOA ns1.wangej.com. admin.wangej.com. (
-
1
-
1H
-
5M
-
2D
-
6H )
-
IN NS ns1.wangej.com.
-
1 IN PTR ns1.wangej.com.
-
1 IN PTR
-
2 IN PTR mail.wangej.com.
-
3 IN PTR
3、检查文件的语法错误和属主属组及权限
-
named-checkzone "wangej.com" /var/named/wangej.com.zone
-
named-checkzone "172.16.12.zone" /var/named/172.16.12.zone
-
-rw-r----- 1 root named 321 Apr 1 22:43 172.16.12.zone
-
-rw-r----- 1 root root 289 Apr 1 22:42 wangej.com.zone
4、测试服务是否能够正常使用
-
[root@localhost ~]# dig -t A
-
-
; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_7.4 <<>> -t A
-
;; global options: +cmd
-
;; Got answer:
-
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43339
-
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
-
-
;; QUESTION SECTION:
-
; IN A
-
-
;; ANSWER SECTION:
-
3600 IN A 172.16.12.1
-
-
;; AUTHORITY SECTION:
-
wangej.com. 3600 IN NS ns1.wangej.com.
-
-
;; ADDITIONAL SECTION:
-
ns1.wangej.com. 3600 IN A 172.16.12.1
-
-
;; Query time: 4 msec
-
;; SERVER: 172.16.12.1#53(172.16.12.1)
-
;; WHEN: Tue Apr 2 20:05:27 2013
-
;; MSG SIZE rcvd: 82
5、如此一个主DNS就已经搭建成功了。
七、单单一个主DNS就已经能够满足我们对于DNS的需求了么?
不是,不仅不够,我们还要需要更多的内容用来满足DNS的冗余、DNS的智能分配、DNS的acl控制、还有DNS的日志公用,以便让我们能够尽快的定位到错误和查看一些恶意的操作。所以,未完待续。
PS: 亲,明天见……