DNS服务器的安装与部署
一、DNS服务概述和解析原理
1.1 DNS概述
DNS是Domain Name System的缩写,即域名系统,DNS服务主要的功能是将域名转换为相应的IP地址,提供DNS服务的系统就是DNS服务器。DNS服务器可以分为3种,主域名服务器(Master DNS)、辅助域名服务器(Slave DNS)和高速缓存服务器(Cache-only server)。Master DNS,本身提供dns服务,并且本身含有区域数据文件。Slave DNS,和Master一起提供dns服务,当Master服务器上的配置信息修改的时候,会自动更新到Slave服务器达到同步。
Cache-only server,没有自己的区域数据文件,只是帮助客户端向外部dns请求查询,然后将查到的结果保存到它的缓存中。在linux系统下DNS服务的功能是通过bind软件实现的,几乎每个linux发行版都自带了这个DNS服务软件,下面将具体讲述DNS服务的安装、配置与使用。
1.2 解析原理(解析www.exmaple.com.cn)
A 客户机请求解析www.exmaple.com.cn的IP 地址,如果本地hosts文件中没有相关解析,则向本地DNS服务器
发出解析请求;
B 如果本地DNS服务器有该域名的解析信息,则直接返回给客户机;如果本地DNS 服务器没有该域名的解析信
息,则本地DNS 服务器向根DNS服务器询问www.exmaple.com.cn的IP地址;
C 如果根DNS 服务器有该域名的解析信息,则直接返回信息给本地DNS 服务器,本地DNS 服务器再将解析信
息返回给客户机;如果根DNS服务器没该域名的解析信息,则返回管辖.cn解析业务的DNS 服务器的IP 地址;
D 本地DNS 服务器向管辖.cn的DNS 服务器询问www.exmaple.com.cn的IP 地址;
E 如果.cn 服务器有该域名的解析信息,则直接返回信息给本地DNS 服务器,本地DNS服务器再将解析信息返
回给客户机;如果.cnDNS 服务器没有该域名的解析信息,则管辖.cn解析业务的DNS服务器告知.com.cn的DNS
服务器的IP地址;
F 本地DNS 服务器向管辖.com.cn的DNS服务器询问www.exmaple.com.cn的IP 地址;
G 如果.com.cn 服务器有该域名的解析信息,则直接返回信息给本地DNS 服务器,本地DNS 服务器再将解析信
息返回给客户机;如果.com.cnDNS 服务器没有该域名的解析信息,则管辖.com.cn解析业务的DNS 服务器告
知.example.com.cn的DNS服务器的IP地址;
H 本地DNS服务器向管辖.example.com.cn的DNS 服务器询问www. example.com.cn IP 地址;
I 管辖.example.com.cn的DNS服务器告知www.exmaple.com.cn的DNS服务器的IP地址;
J 本地DNS服务器解析出www.exmaple.com.cn的IP 地址,并传回给客户机。
二、部署与安装的环境
[root@nfs-client ~]# uname –r # 查看linux内核参数
2.6.18-308.el5
[root@nfs-client ~]# cat/etc/redhat-release # 查看系统linux系统环境
CentOS release 5.8 (Final)
三、安装DNS服务
3.1 挂载光驱
[root@nfs-client ~]# mount -tiso9660 /dev/cdrom /mnt
[root@nfs-client CentOS]# cd /mnt/CentOS
3.2 安装DNS相关软件包
rpm –ivh安装下面的软件包
bind-9.3.6-20.P1.el5
bind-utils-9.3.6-20.P1.el5
bind-devel-9.3.6-20.P1.el5
bind-libs-9.3.6-20.P1.el5
ypbind-1.19-12.el5_6.1
bind-chroot-9.3.6-20.P1.el5
caching-nameserver-9.3.6-20.P1.el5
3.3 查看DNS相关软件包
[root@nfs-client CentOS]# rpm-qa |grep -E "bind|caching"
bind-devel-9.3.6-20.P1.el5
bind-libs-9.3.6-20.P1.el5
bind-utils-9.3.6-20.P1.el5
ypbind-1.19-12.el5_6.1
bind-9.3.6-20.P1.el5
bind-chroot-9.3.6-20.P1.el5
caching-nameserver-9.3.6-20.P1.el5
四、修改DNS服务的配置文件
4.1 修改named.conf主配置文件
[root@nfs-client CentOS]# cd/var/named/chroot/etc/ # 切换到NDS服务的虚拟目录
[root@nfs-client etc]# cpnamed.rfc1912.zones named.conf # 将模板复制成named.conf
[root@nfs-client etc]# chownnamed:named named.conf # 修改named.conf权限
[root@nfs-client etc]# vi /var/named/chroot/etc/named.conf
添加如下字段:
options {
directory"var/named";
};
/*
上面这段通过OPTIONS选项定义了一些影响整个DNS服务器的环境设置,directory选项指定named从/var/named目录下读取DNS数据文件,这个目录用户可自行指定并创建,指定后所有的DNS数据文件都存放在此目录下。
*/
zone "abc.com" IN {
type master;
file "abc.zone";
allow-update { none; };
};
/*
上面这段设置是用zone关键字来定义一个正向域区,对应的域名分别为ixdba.net,一个zone关键字定义一个域区。在这里type类型有三种,它们分别是master,slave和hint,它们的含义分别是:
master:表示定义的是主域名服务器。
slave:表示定义的是辅助域名服务器。
hint:表示是互联网中根域名服务器。
file用来指定存放DNS记录的文件,allow-update定义是否允许客户主机或服务器自行更新DNS记录,上面指定的这个正向区域不允许更新DNS记录。
*/
zone"184.168.192.in-addr.arpa" IN {
type master;
file "184.168.192.zone";
allow-update { none; };
};
//上面这段设置是定义一个IP为192.168.60.*的反向区域。
4.2修改需要正向解析的配置文件
[root@nfs-client etc]# cd/var/named/chroot/var/named
[root@nfs-client named]# cplocalhost.zone abc.zone
[root@nfs-client named]#viabc.zone
$TTL 86400
@ IN SOA ns.abc.com. root.abc.com. (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D) ; minimum
IN NS ns.abc.com.
IN A 127.0.0.1
IN MX 10 mail
mail IN A 192.168.184.130
www IN A 192.168.184.100
test IN A 192.168.184.100
IN AAAA ::1
linux IN CNAME www
/*
可以看出,区域数据文件内容很简单。
第一行是一个TTL设定,定义区域数据文件里面的各项记录的默认TTL值为86400 秒,缺少此行不影响使用,但是会出现警告信息。
第二行﹐是一个SOA记录的设定,“@”代表相应的域名,也就是在named.conf中设定的zone,如在这里表示abc.com,IN表示后面的数据使用的是INTERNET标准。SOA,全称是“Start Of Authority”的意思,表示目前区域授权开始。每一个区域数据文件只能有一个SOA,不能重复,而且必须是所负责的zone中第一个“记录”。在SOA后面分别指定了这个区域的授权主机名称和管理者的信箱,特别注意,授权主机名和管理员信箱后面都要有一个“.”,而且授权主机名称必须能够在DNS设置中找到一个A记录(下面会讲到),由于“@”在区域数据文件中有其它含义,因此管理员信箱邮件地址中用“.”代替“@”符号。
接下来包含在括弧中的5组数字是作为与slave服务器同步信息而设置的,含义如下:
Serial:表示配置文件的修改版本,格式是年月日加上修改的次数,每次修改这个配置文件时都应该修改这个数字,因为slave DNS进行信息同步时,会比较这个数值,如果这个数值比自身的数值大,那么就进行更新,否则忽略更新。注意,这个设置很重要,如果你在修改区域数据文件后,没有更新该值,那么所作的更改就不会更新到网上的其它DNS服务器。
refresh:用来设定slave DNS与Master DNS进行同步的间隔时间。
retry:如果slave DNS在进行更新失败后,要隔多久再进行重试。
expiry:设定slave DNS在与Master DNS同步失败后,多长时间清除对应的记录。
Minimum:这是默认的最小TTL值,如果在前面没有指定TTL值,就以这个为基准。
以上的数字都是以秒为单位,但也可以用 H(小时)、D(天)、W(星期)来做单位。
第8至14行,是对域名解析的具体设置,第一列表示不同的主机域名,但是省略了后面的域信息。例如“www”其实是www.abc.com,“mail”是指mail.abc.com。其它具有相同的含义。“IN”后面的指令含义说明如下:
NS:用来定义这个主机是个域名服务器。
MX:定义了一个邮件交换器。
A指针:定义了一个A记录,即域名到IP的记录。
CNAME:定义了域名的别名。
从上面的例子可知,我们首先定义了一个NS(name server)为ns.abc.com,然后定义了一个邮件交换器,交换优先级为10,接着定义了4个A记录,不同域名指向了不同的IP地址。最后定义了一个www的别名,即访问linux.abc.com与访问www.abc.com是相同的。
*/
4.3 修改需要反向解析的配置文件
[root@nfs-client named]# cpnamed.local 184.168.192.zone
[root@nfs-client named]# vi184.168.192.zone
$TTL 86400
184.168.192.in-addr.arpa. IN SOA ns.abc.com.root.abc.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400) ; Minimum
IN NS localhost.
100 IN PTR www.abc.com.
100 IN PTR test.abc.com.
130 IN PTR mail.abc.com.
/*
可以看出,基本结构与正向区域数据文件完全相同,只不过这里多出了一个PTR选项。PTR用来定义一个反向记录,也就是通过IP可以查到对应的域名信息。最后两行的第一列表示的是主机的IP地址,只不过省略了网络地址部分,如130对应的IP为192.168.184.130,同理,100对应的IP为192.168.184.100。
*/
4.4 修改正向和反向配置文件的权限
[root@nfs-client etc]# chownnamed:named ../var/named/abc.zone
[root@nfs-client etc]# chownnamed:named ../var/named/184.168.192.zone
五、启动DNS服务
[root@nfs-client etc]#/etc/init.d/named start
Starting named: [ OK ]
[root@nfs-client etc]#/etc/init.d/named stop
Stopping named: [ OK ]
六、客户端测试DNS服务器的配置
注意:测试DNS之前,先把服务DNS地址指向本机自己,客户端的DNS指向配置好的DNS服务器。
测试DNS的各种记录
C:\Users\ES>nslookup
默认服务器: mail.abc.com
Address: 192.168.184.130
6.1测试A记录
> www.abc.com
服务器: mail.abc.com
Address: 192.168.184.130
名称: www.abc.com
Address: 192.168.184.100
> mail.abc.com
服务器: mail.abc.com
Address: 192.168.184.130
名称: mail.abc.com
Address: 192.168.184.130
6.2测试别名
> linux.abc.com
服务器: mail.abc.com
Address: 192.168.184.130
名称: www.abc.com
Address: 192.168.184.100
Aliases: linux.abc.com
6.3测试邮件MX记录
> set type=mx
> abc.com
服务器: mail.abc.com
Address: 192.168.184.130
abc.com MX preference = 10, mail exchanger= mail.abc.com
abc.com nameserver = ns.abc.com
mail.abc.com internet address = 192.168.184.130
6.4测试PTR记录
> set type=PTR
> 192.168.184.130
服务器: mail.abc.com
Address: 192.168.184.130
130.184.168.192.in-addr.arpa name = mail.abc.com
184.168.192.in-addr.arpa nameserver = localhost
localhost internet address = 127.0.0.1
localhost AAAA IPv6 address = ::1
> 192.168.184.100
服务器: mail.abc.com
Address: 192.168.184.130
100.184.168.192.in-addr.arpa name = www.abc.com
100.184.168.192.in-addr.arpa name = test.abc.com
184.168.192.in-addr.arpa nameserver = localhost
localhost internet address = 127.0.0.1
localhost AAAA IPv6 address = ::1
6.5测试NS记录
> set type=ns
> abc.com
服务器: mail.abc.com
Address: 192.168.184.130
abc.com nameserver = ns.abc.com
希望大家多多指教!