CentOS 6.4 x64构建DNS服务器(主、从DNS Server)

前言数据库

《CentOS 6.4 x64构建DNS服务器(主、从DNS Server)》发表于51CTO上来,一来,因为Q友们强烈建议发到51CTO博客上来;二来,我本身在配置此文时,也碰到“很多问题”,见招拆招!共同窗习,互相借鉴之。CentOS 6.x与CentOS 5.x确实有点“Beyond”(谐音:不同的),博友们,本身试试 :)vim

基本的网络环境规划为以下:缓存

(1)主域名服务器安全

IP地址: 192.168.1.228/24    主机名:ns1.beyond.com服务器

(2)从域名服务器网络

IP地址: 192.168.1.229/24     主机名:ns2.beyond.com   dom

通常中型、大型企业少不了DNS服务器(主DNS、从DNS服务器)、DHCP服务器(主DHCP、从DHCP服务器)、FTP服务器,既然是大、中型企业,服务器和客户端PC也比较多,那通常是域环境(单域或多域)等。分布式

PS: 为了准确清楚、了解Linux(如:RedHat、SuSE、Debian等)发行版本信息,常常用以下命令查询:ide

p_w_picpath

1、DNS相关的基础知识工具

一、DNS服务器的主要做用:

   DNS服务器的主要做用: 维护一个主机域名与IP地址的对应关系数据库,在须要时为客户端网络程序提供2个方面的地址解析功能。

(1)正向解析:将主机的名称(域名)解析为对应的IP地址。 

       域名的正向解析是DNS服务器最基本的功能,也是最经常使用的功能!

(2)反向解析:把主机的IP地址解析为对应的域名。

       域名的反向解析不是很经常使用,倒是DNS服务器不可缺乏的功能,如 邮件服务 可能会用到域名反向解析结果实施访问控制策略;若缺乏对应的反向解析记录可能会被列入“黑名单”中,致使接收不到邮件!PS:我就碰到过,后来我养成一个习惯:构建DNS服务器,通常而言,是会配置反向解析的。

二、DNS系统的结构:

    为了查询域名的效率高,故Internet中的域名系统采用了分布式的数据库方式,把不一样的范围内的域名和IP地址对应关系交给不一样的DNS服务器管理(受权)。分布数据库采用树型结构,全世界的域名系统具备惟一的“根”。(惋惜呀……咱们不能《把“根”留住》---在中国!)以下图所示:

p_w_picpath

三、DNS系统的类型:

     常见的DNS类型有:

(1)缓存域名服务器

       也叫“惟高速缓存服务器”,主要功能提供域名解析记录的缓存。不包含注册的DNS区域设置,只对用户查询过的域名解析记录进行缓存,当用户首次进行某个域名的查询时,缓存服务器经过向根域服务器及其余DNS服务器查询并将结果保存在地缓存中。可提升经常使用域名的查询速度,所以特别适合在企业局域网内部使用。

(2)主域名服务器

       主域名服务器是惟一的,在Internet中。其管理的域名解析记录具备权威性!主域名服务器须要在本地设置所管理区域的地址数据库文件。

(3)从域名服务器

      也叫辅助域名服务器,主要功能是提供备份,一般与主域名服务器同时提供服务,对于客户端而言,主、从域名服务器提供彻底相同的功能!可是从DNS Server提供的地址解析记录并不禁本身决定的,她的命令运掌握在主域名服务器的手中。她适应“环境”的能力特强:她的地址数据库随着主域名服务器的地址数据库变化而变化!

2、BIND域名服务基础

一、安装BIND软件

   因为是用在生产环境中,以安全稳定为主!并且采用的是CentOS6.4 64bit的OS,故就用光盘中的BIND软件安装。

先来查看哈,以下图所示:

p_w_picpath

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
>

p_w_picpath

 

2、构建从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),再以下图所示操做:

p_w_picpath

PS: 《CentOS 6.4 x64构建DNS服务器(主、从DNS Server)》至此完毕!其实还有《构建分离解析的域名服务器》也比较实用!!有心的朋友本身研究哈!

相关文章
相关标签/搜索