DNS服务器的作用就是就好比生活中的电话簿、114查号台一样,为各种网络程序找到对应目标主机的IP地址或对应的主机域名。
正向解析:根据主机名称(域名)查找对应的IP地址(实际应用中最多的)
反向解析:根据IP地址查找对应的主机域名(不常用,一般用于搭建邮件服务器时。)
根据服务器与所提供域名解析记录的关系,将DNS服务器分为不同的角色:
也称为 唯高速缓存服务器
通过向其他域名服务器查询获得域名->IP地址记录
将域名查询结果缓存到本地,提高重复查询时的速度
特定DNS区域的官方服务器,具有唯一性
负责维护该区域内所有域名->IP地址的映射记录
也称为 辅助域名服务器
其维护的 域名->IP地址记录 来源于主域名服务器
搭建DNS服务应用的软件为:BIND(Berkeley Internet Name Daemon)
官方站点:https://www.isc.org/
相关软件包:
1
2
3
4
|
bind-9.3.3-7.el5.i386.rpm
bind-utils-9.3.3-7.el5.i386.rpm
bind-chroot-9.3.3-7.el5.i386.rpm
caching-nameserver-9.3.3-7.el5.i386.rpm
|
cache-nameserver软件包实际上只是提供了一些配置样例文件,对于熟悉BIND配置文件的系统管理员来说,也可以不用安装该软件包
bind,提供了域名服务的主要程序及相关文件
bind-utils,提供了对DNS服务器的测试工具程序(如nslookup、dig等)
bind-chroot,为bind提供一个伪装的根目录以增强安全性(将“/var/named/chroot/”文件夹作为BIND的根目录)
caching-nameserver,为配置BIND作为缓存域名服务器提供必要的默认配置文件,这些文件在配置主、从域名服务器时也可以作为参考
named作为标准的系统服务脚本,通过”service named start/stop/restart“的形式可以实现对服务器程序的控制
named默认监听TCP、UDP协议的53端口,以及TCP的953端口:
其中UDP 53端口一般对所有客户机开放,以提供解析服务;
TCP 53端口一般只对特定从域名服务器开放,提高解析记录传输通道;TCP 953端口默认只对本机(127.0.0.1)开放,用于为rndc远程管理工具提供控制通道
如果没有安装bind-chroot软件包,则主配置文件默认位于 /etc/named.conf,数据文件默认保存在/var/named/ 目录
下面主要来介绍实际应用中最多的“主DNS服务器”的搭建
实现步骤:
1
|
[root@dns ~]# yum install bind bind-utils -y
|
1
2
3
4
5
6
7
|
listen-on port 53 { 127.0.0.1; };
改为
listen-on port 53 { any; };
allow-query { localhost; };
改为
allow-query { any; };
|
named.conf文件详解
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
options {
/*OPTIONS选项用来定义一些影响整个DNS服务器的环境,如这里的DI RECTORY用来指定在本文件指定的文件的路径,如这里的是将其指定到 /var/named 下,在这里你还可以指定端口等等。不指定则端口是53
*/
directory "/var/named";
}; //
//
// a caching only nameserver config
//
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone "." IN { //在这个文件中是用zone关键字来定义域区的,一个zone关键字定义一个域区
type hint;
/*在这里type类型有三种,它们分别是master,slave和hint它们的含义分别是:
master:表示定义的是主域名服务器
slave :表示定义的是辅助域名服务器
hint:表示是互联网中根域名服务器
*/
file "named.ca"; //用来指定具体存放DNS记录的文件
};
zone "localhost" IN { //定义一具域名为localhost的正向区域
type master;
file "localhost.zone" ;
allow-update { none; };
};
zone "ywclub.org" IN { //指定一个域名为ywclub.org的正向区域
type master;
file "test.net”
allow-update { none;};
};
zone "0.0.127.in-addr.arpa" IN { //定义一个IP为127.0.0.*的反向域区
type master;
file "named.local";
allow-update { none; };
};
zone "0.192.168.in-addr.arpa" IN { //定义一个IP为168.192.0.*反向域区
type master;
file "168.192.0";
|
1
2
3
4
|
zone "ywclub.org" IN {
type master;
file "ywclub.org.zone";
};
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
# 拷贝一个模版文件并且保留文件权限
[root@dns named]# cp -p named.localhost ywclub.org.zone
# ywclub.org.zone内容如下
$TTL 1D
@ IN SOA @ root.wyclub.org. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS ns
IN MX 10 mail
ns IN A 10.10.10.200
mail IN A 10.10.10.201
www IN A 10.10.10.202
www IN A 10.10.10.203
ftp IN CNAME www
|
ywclub.org.zone说明
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
$TTL 1D /* 缓存时间 */
@ IN SOA ns.wyclub.org. root.wyclub.org. ( /* SOA表示授权开始 */
/* 上面的IN表示后面的数据使用的是INTERNET标准。而@则代表相应的域名,如在这里代表wyclub.org,即表示一个域名记录定义的开始。而ns.wyclub.org则是这个域的主域名服务器,而root.wyclub.org则是管理员的邮件地址。注意这是邮件地址中用.来代替常见的邮件地址中的@ */
2003012101 ; serial (d. adams) /* 本行前面的数字表示配置文件的修改版本,格式是年月日当日修改的修改的次数,每次修改这个配置文件时都应该修改这个数字,要不然你所作的修改不会更新到网上的其它DNS服务器的数据库上,即你所做的更新很可能对于不以你的所配置的DNS服务器为DNS服务器的客户端来说就不会反映出你的更新,也就对他们来说你更新是没有意义的。 */
28800 ; refresh /* 定义的是以为单位的刷新频率 即规定从域名服务器多长时间查询一个主服务器,以保证从服务器的数据是最新的 */
7200 ;retry /* 上面的这个值是规定了以秒为单位的重试的时间间隔,即当从服务试图在主服务器上查询更时,而连接失败了,则这个值规定了从服务多长时间后再试 */
3600000 ; expiry/* 这个用来规定从服务器在向主服务更新失败后多长时间后清除对应的记录,上述的数值是以分钟为单位的 */
8400 /*上面这个数据用来规定缓冲服务器不能与主服务联系上后多长时间清除相应的记录 */
)
IN NS ns
IN MX 10 mail
ns IN A 10.10.10.200
mail IN A 10.10.10.201
www IN A 10.10.10.202
www IN A 10.10.10.203
ftp IN CNAME www
/*上面的第一列表示是主机的名字,省去了后面的域。
NS:表示是这个主机是一个域名服务器,
A:定义了一条A记录,即主机名到IP地址的对应记录
MX 定义了一邮件记录
CNAME:定义了对应主机的一个别名
|
1
2
3
4
|
zone "10.10.10.in-addr.arpa" IN { //in-addr.arp标记为反向域
type master;
file "10.10.10.zone";
};
|
建立10.10.10.zone的域配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
# 复制一个正向解析的区域文件方便修改
[root@dns named]# cp -p ywclub.org.zone 10.10.10.zone
# 编辑10.10.10.zone文件内容如下
$TTL 1D
@ IN SOA @ root.wyclub.org. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS ns.ywclub.org.
200 IN PTR ns.ywclub.org.
201 IN PTR mail.ywclub.org.
202 IN PTR 10.10.1.128.
203 IN PTR 10.10.1.128.
ftp IN PTR ftp.ywclub.org.
|
1
2
3
4
5
6
7
8
9
10
11
12
|
# 测试主配置文件,没有报错说明配置没有问题
[root@dns named]# named-checkconf
# 测试区域文件,提示OK,既配置没有错误
[root@dns named]# named-checkzone ywclub.org /var/named/ywclub.org.zone
[root@dns named]# named-checkzone 10.10.10.in-addr.arpa /var/named/10.10.10.zone
# 启动服务
[root@dns named]# systemctl start named.service
# 开机启动
[root@dns named]# systemctl enable named.service
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
[root@dns named]# dig 10.10.1.128 @10.10.10.132
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> 10.10.1.128 @10.10.10.132
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10594
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;10.10.1.128. IN A
;; ANSWER SECTION:
10.10.1.128. 86400 IN A 10.10.10.203
10.10.1.128. 86400 IN A 10.10.10.202
;; AUTHORITY SECTION:
ywclub.org. 86400 IN NS ns.ywclub.org.
;; ADDITIONAL SECTION:
ns.ywclub.org. 86400 IN A 10.10.10.132
;; Query time: 1 msec
;; SERVER: 10.10.10.132#53(10.10.10.132)
;; WHEN: Mon Sep 12 09:41:33 EDT 2016
;; MSG SIZE rcvd: 108
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
[root@dns named]# dig -x 10.10.10.132 @10.10.10.132
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -x 10.10.10.132 @10.10.10.132
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50359
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;132.10.10.10.in-addr.arpa. IN PTR
;; ANSWER SECTION:
132.10.10.10.in-addr.arpa. 86400 IN PTR ns.ywclub.org.
;; AUTHORITY SECTION:
10.10.10.in-addr.arpa. 86400 IN NS ns.ywclub.org.
;; ADDITIONAL SECTION:
ns.ywclub.org. 86400 IN A 10.10.10.132
;; Query time: 1 msec
;; SERVER: 10.10.10.132#53(10.10.10.132)
;; WHEN: Mon Sep 12 09:42:41 EDT 2016
;; MSG SIZE rcvd: 111
|