前言
《CentOS 6.4 x64构建DNS服务器(主、从DNS Server)》发表于51CTO上来,一来,由于Q友们强烈建议发到51CTO博客上来;二来,我自己在配置此文时,也碰到“不少问题”,见招拆招!共同学习,互相借鉴之。CentOS 6.x与CentOS 5.x确实有点“Beyond”(谐音:不一样的),博友们,自己试试 :)
基本的网络环境规划为如下:
(1)主域名服务器
IP地址: 192.168.1.228/24 主机名:ns1.beyond.com
(2)从域名服务器
IP地址: 192.168.1.229/24 主机名:ns2.beyond.com
一般中型、大型企业少不了DNS服务器(主DNS、从DNS服务器)、DHCP服务器(主DHCP、从DHCP服务器)、FTP服务器,既然是大、中型企业,服务器和客户端PC也比较多,那一般是域环境(单域或多域)等。
PS: 为了准确清楚、了解Linux(如:RedHat、SuSE、Debian等)发行版本信息,经常用如下命令查询:
一、DNS相关的基础知识
1、DNS服务器的主要作用:
DNS服务器的主要作用: 维护一个主机域名与IP地址的对应关系数据库,在需要时为客户端网络程序提供2个方面的地址解析功能。
(1)正向解析:将主机的名称(域名)解析为对应的IP地址。
域名的正向解析是DNS服务器最基本的功能,也是最常用的功能!
(2)反向解析:把主机的IP地址解析为对应的域名。
域名的反向解析不是很常用,却是DNS服务器不可缺少的功能,如 邮件服务 可能会用到域名反向解析结果实施访问控制策略;若缺少对应的反向解析记录可能会被列入“黑名单”中,导致接收不到邮件!PS:我就碰到过,后来我养成一个习惯:构建DNS服务器,一般而言,是会配置反向解析的。
2、DNS系统的结构:
为了查询域名的效率高,故Internet中的域名系统采用了分布式的数据库方式,把不同的范围内的域名和IP地址对应关系交给不同的DNS服务器管理(授权)。分布数据库采用树型结构,全世界的域名系统具有唯一的“根”。(可惜呀……我们不能《把“根”留住》---在中国!)如下图所示:
3、DNS系统的类型:
常见的DNS类型有:
(1)缓存域名服务器
也叫“唯高速缓存服务器”,主要功能提供域名解析记录的缓存。不包含注册的DNS区域设置,只对用户查询过的域名解析记录进行缓存,当用户首次进行某个域名的查询时,缓存服务器通过向根域服务器及其他DNS服务器查询并将结果保存在地缓存中。可提高常用域名的查询速度,因此特别适合在企业局域网内部使用。
(2)主域名服务器
主域名服务器是唯一的,在Internet中。其管理的域名解析记录具有权威性!主域名服务器需要在本地设置所管理区域的地址数据库文件。
(3)从域名服务器
也叫辅助域名服务器,主要功能是提供备份,通常与主域名服务器同时提供服务,对于客户端而言,主、从域名服务器提供完全相同的功能!但是从DNS Server提供的地址解析记录并不由自己决定的,她的命令运掌握在主域名服务器的手中。她适应“环境”的能力特强:她的地址数据库随着主域名服务器的地址数据库变化而变化!
二、BIND域名服务基础
1、安装BIND软件
由于是用在生产环境中,以安全稳定为主!而且采用的是CentOS6.4 64bit的OS,故就用光盘中的BIND软件安装。
先来查看哈,如下图所示:
PS : 上图中主要的软件包作用如下:
(1)bind : 提供了域名服务的主要程序及相关文件;
(2)bind-utils : 提供了对DNS服务器的测试工具程序(如:nslookup、dig etc)
(3)bind-chroot : 为bind提供一个伪装的根目录以增强安全性;
(注:新版本CentOS 6.x 已将chroot所需使用的目录,透过mount --bind的功能进行目录
链接了,故在CentOS 6.x中,根本无须切换到/var/named/chroot/了,只需按常规目录操
作 即可!)请cat /etc/sysconfig/named目录,其下是不是有“ROOTDIR="/var/named/chroot”
(4)caching-nameserver : 为配置BIND作为缓存域名服务器提供必要的默认配置文件,这些文件在配置主、从域名服务器时也可作为参考。(CentOS 6.x后没有caching-nameserver包了)
//安装主程序包
[root@ns1 Packages]# rpm -ivh bind-9.8.2-0.17.rc1.el6.x86_64.rpm [root@ns1 Packages]# rpm -ivh bind-chroot-9.8.2-0.17.rc1.el6.x86_64.rpm [root@ns1 Packages]# rpm -ivh bind-utils-9.8.2-0.17.rc1.el6.x86_64.rpm//查看哈……
[root@ns1 ~]# rpm -qa bind* bind-chroot-9.8.2-0.17.rc1.el6.x86_64 bind-libs-9.8.2-0.17.rc1.el6.x86_64 bind-utils-9.8.2-0.17.rc1.el6.x86_64 bind-9.8.2-0.17.rc1.el6.x86_64 [root@ns1 ~]#2. 简单的方法,才是最好的方法!一般而言,DNS服务器配置流程主要分为3步:
(1)建立主配置文件named.conf,即其主要是设置DNS服务器能管理哪些区域(zone)以及对应文件名和存储路径;(/etc/named.conf和/etc/named.rfc1912.zones)
(2)建立区域文件,依据named.conf文件中指定的路径来建立区域文件,此文件主要记录该区域内的资料记录;(/var/named/fjian.com和/etc/named/named.192.168.1.rev)
(3)重新加载配置文件或重启named服务使用配置生效。
(chkconfig named on、chkconfig --add named、service named start/restart etc)
下面详细配置:
(1)建立主配置文件named.conf,即其主要是设置DNS服务器能管理哪些区域(zone)以及对应文件名和存储路径;
[root@ns1 ~]# vim /etc/named.conf 10 options { 11 listen-on port 53 { any; }; 12 //listen-on-v6 port 53 { ::1; }; //注销此行! 17 allow-query { any; }; :wq 回车! [root@ns1 ~]# cd /etc/ [root@ns1 etc]# cp -p named.rfc1912.zones named.rfc1912.zones.bak [root@ns1 etc]# vim named.rfc1912.zones //先按shift + G 然后,添加如下内容: zone "fjian.com" IN { //设置正向DNS区域名称 type master; file "fjian.com"; //设置对应的正向区域地址数据库文件 allow-transfer {192.168.1.229;};//允许下载区域数据库信息的从域名服务器IP地址 }; zone "1.168.192.in-addr.arpa" IN { //设置反向DNS区域名称 type master; file "192.168.1.rev"; //设置对应的反向区域地址数据库文件 allow-transfer {192.168.1.229;}; };//检查配置文件:
named-checkconf(2)建立区域文件,依据named.conf文件中指定的路径来建立区域文件,此文件主要记录该区域内的资料记录;
//正向解析配置文件:
[root@ns1 ~]# cd /var/named/ [root@ns1 named]# vim fjian.com $TTL 86400 @ IN SOA @ root ( 2013051800 ; serial (d. adams) 28800 ; refresh 14400 ; retry 3600000 ; expiry 86400 ) ; minimum @ IN NS ns1.fjian.com. IN NS ns2.fjian.com. IN A 192.168.1.228 IN MX 5 mail.fjian.com. ns1 IN A 192.168.1.228 ns2 IN A 192.168.1.229 mail IN A 192.168.1.228 www IN A 192.168.1.228//检查正向区域配置文件:
[root@ns1 ~]# named-checkzone fjian.com. /var/named/fjian.com//反向解析配置文件:
[root@ns1 named]# vim 192.168.1.rev vim 192.168.1.rev $TTL 86400 @ IN SOA localhost. root.localhost. ( 2013051800 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum @ IN NS ns1.fjian.com. IN NS ns2 .fjian.com. 228 IN PTR ns1.fjian.com. 229 IN PTR ns2.fjian.com. @ IN MX 5 mail.fjian.com. 228 IN PTR mail.fjian.com. 228 IN PTR www.fjian.com.
//检查反向区域配置文件:
[root@ns1 named]#named-checkzone 1.168.192.in-addr.arpa. /var/named/192.168.1.rev
(3)重新加载配置文件或重启named服务使用配置生效
[root@ns1 ~]#chkconfig --list named [root@ns1 ~]#chkconfig named on [root@ns1 ~]#chkconfig --list named [root@ns1 ~]#chkconfig --add named [root@ns1 ~]#service named restart
3. 验证能否解析,如下图所示:
[root@ns1 etc]# service named restart Stopping named: . [ OK ] Starting named: [ OK ] [root@ns1 etc]# nslookup > 192.168.1.228 Server: 192.168.1.228 Address: 192.168.1.228#53 228.1.168.192.in-addr.arpa name = ns1.fjian.com. 228.1.168.192.in-addr.arpa name = mail.fjian.com. 228.1.168.192.in-addr.arpa name = www.fjian.com. > ns1.fjian.com Server: 192.168.1.228 Address: 192.168.1.228#53 Name: ns1.fjian.com Address: 192.168.1.228 > mail.fjian.com Server: 192.168.1.228 Address: 192.168.1.228#53 Name: mail.fjian.com Address: 192.168.1.228 > www.fjian.com Server: 192.168.1.228 Address: 192.168.1.228#53 Name: www.fjian.com Address: 192.168.1.228 > ns2.fjian.com Server: 192.168.1.228 Address: 192.168.1.228#53 Name: ns2.fjian.com Address: 192.168.1.229 >
二、构建从DNS服务器
从域名服务器作为主服务器的冗余备份,与主域名服务器一起,同时提供本域内主机名与IP地址的解析,从域名服务器的地址数据库需从主域名服务器中定期更新。
(1)建立主配置文件named.conf,即其主要是设置DNS服务器能管理哪些区域(zone)以及对应文件名和存储路径;
[root@ns2 ~]# vim /etc/named.conf 10 options { 11 listen-on port 53 { any; }; 12 //listen-on-v6 port 53 { ::1; }; //注销此行! 17 allow-query { any; }; :wq 回车! [root@ns2 ~]# cd /etc/ [root@ns2 etc]# cp -p named.rfc1912.zones named.rfc1912.zones.bak [root@ns2 etc]# vim named.rfc1912.zones //先按shift + G 然后,添加如下内容: zone "fjian.com" IN { type slave; masters {192.168.1.228;}; file "slaves/fjian.com"; }; zone "1.168.192.in-addr.arpa" IN { type slave; masters {192.168.1.228;}; file "slaves/192.168.1.rev"; }; :wq 回车
2. 执行如下操作:
[root@ns2 ~]# chkconfig --list named named 0:off 1:off 2:off 3:off 4:off 5:off 6:off [root@ns2 ~]# chkconfig named on [root@ns2 ~]# chkconfig --list named named 0:off 1:off 2:on 3:on 4:on 5:on 6:off [root@ns2 ~]# chkconfig --add named [root@ns2 ~]# service named restart Stopping named: [ OK ] Starting named: [ OK ]
3. 数据同步测试
经过上面重启从域名服务器named服务,使其与主域名服务器数据同步,成功后,在系统日志文件中可以看到下载区域数据库文件的记录,在“/var/named/chroot/var/named/slaves/” (/var/named/slaves/)目录中也可以看到自动保存的区域数据库文件。
[root@ns2 ~]# tail /var/log/messages May 19 21:56:49 ns2 named[2123]: zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0 May 19 21:56:49 ns2 named[2123]: zone 1.168.192.in-addr.arpa/IN: loaded serial 2013051800 May 19 21:56:49 ns2 named[2123]: zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0 May 19 21:56:49 ns2 named[2123]: zone fjian.com/IN: loaded serial 2013051800 May 19 21:56:49 ns2 named[2123]: zone localhost.localdomain/IN: loaded serial 0 May 19 21:56:49 ns2 named[2123]: zone localhost/IN: loaded serial 0 May 19 21:56:49 ns2 named[2123]: managed-keys-zone ./IN: loaded serial 3 May 19 21:56:49 ns2 named[2123]: running May 19 21:56:49 ns2 named[2123]: zone fjian.com/IN: sending notifies (serial 2013051800) May 19 21:56:49 ns2 named[2123]: zone 1.168.192.in-addr.arpa/IN: sending notifies (serial 2013051800) //用ll 查看/var/named/slaves/下,是否有自动保存的区域数据库文件 [root@ns2 ~]# ll /var/named/slaves/ total 8 -rw-r--r--. 1 named named 462 May 19 21:45 192.168.1.rev -rw-r--r--. 1 named named 450 May 19 21:45 fjian.com [root@ns2 ~]#
4. 验证从域名服务器
将客户端PC的首选DNS设置从域名服务器的IP地址(192.168.1.229),再如下图所示操作:
PS: 《CentOS 6.4 x64构建DNS服务器(主、从DNS Server)》至此完毕!其实还有《构建分离解析的域名服务器》也比较实用!!有心的朋友自己研究哈!