开发者社区> 技术小胖子> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

构建主从DNS服务器

简介:
+关注继续查看

                           构建主从DNS服务器

实验背景:


 公司注册了DNS区域tarena.com,准备使用两台RHEL5服务器构建主、从域名系统,其中任何一台都能够解析tarena.com域内的主机地址。


1.主DNS服务器:svr5.tarena.com,192.168.4.5 。


2.从DNS服务器:svr6.tarena.com,192.168.4.6 。


3.负责解析以下站点:


网站:www.tarena.com ? 192.168.4.100

邮件:mail.tarena.com ? 192.168.4.25

FTP:是www的别名

4.为*.tarena.com提供泛域名解析:192.168.4.100 。



实验方案:

 使用2台RHEL 5虚拟机,其中一台作为主DNS服务器(192.168.4.5)、另外一台作为从DNS服务器(192.168.4.6),两台RHEL 5虚拟机及Windows真机都可作为DNS客户机执行测试。


实验实现:

1.认识Linux中的bind域名服务软件包


BIND不是唯一能够提供域名服务的DNS服务程序,却是应用最为广泛的,BIND可以运行在大多数UNIX/Linux主机中。其官方站点位于https://www.isc.org/。


1)安装bind相关的软件包


RHEL 5系统光盘自带了BIND服务的安装文件,主要包括以下软件包:


bind-9.3.6-20.P1.el5_8.5.x86_64.rpm

bind-chroot-9.3.6-20.P1.el5_8.5.x86_64.rpm

bind-libs-9.3.6-20.P1.el5_8.5.x86_64.rpm

bind-utils-9.3.6-20.P1.el5_8.5.x86_64.rpm

caching-nameserver-9.3.6-20.P1.el5_8.5.x86_64.rpm


#rpm -ivh bind-9.3.6-20.P1.el5_8.5.x86_64.rpm bind-chroot-9.3.6-20.P1.el5_8.5.x86_64.rpm caching-nameserver-9.3.6-20.P1.el5_8.5.x86_64.rpm //安装三个软件包

2)了解bind、bind-chroot的配置路径


# rpm -qc bind

/etc/dbus-1/system.d/named.conf /etc/logrotate.d/named /etc/named.conf                     //域名服务主配置文件 /etc/rc.d/init.d/named

/etc/rndc.conf

/etc/rndc.key

/etc/sysconfig/named                 //服务程序named的选项配置文件 /usr/share/dbus-1/services/named.service


# grep "^ROOTDIR" /etc/sysconfig/named //查看真正的配置根目录ROOTDIR=/var/named/chroot

 从上述定义可看出,服务程序named的主配置文件最好存放到/var/named/chroot/etc目录下,文件名为named.conf:


3)

# chkconfig --list named                 //设置服务开机自启动


2.搭建主DNS服务器(192.168.4.5)


1)构建主配置文件named.conf

直接用vim编辑器新建,存放到/var/named/chroot/etc/目录下:

#cd /var/named/chroot/etc

#cp -p named.caching-nameserver.conf named.conf//复制模板,保留权限不变

# vim ./etc/named.conf


2.options {                                 //定义全局选项

3.directory "/var/named";             //区域数据文件的默认存放位置

4.allow-transfer { 192.168.4.6; };     //授权从DNS服务器

5.};

6.zone "tarena.com" IN {                     //定义正向解析区域

7.type master;                         //类型为主区域

8.file "tarena.com.zone";             //本区域的地址数据文件

9.};

10.zone "4.168.192.in-addr.arpa" IN {     //设置反向解析区域(不是必需的,可选)

11.type master;

12.file "192.168.4.arpa";

13.};

2)建立区域地址文件(正向域tarena.com)

直接用vim编辑器新建,存放到/var/named/chroot/var/named/目录下:

#cd ..//回到上一级目录chroot

#cd ./var

#cp named.local tarena.com.zone

#vim /var/named/chroot/var/named/tarena.com.zone

2.$TTL 86400                                 //有效记录的生存周期

3.@ IN SOA tarena.com. admin.tarena.com. ( //@表示当前tarena.com,

admin.tarena.com 表示邮箱,@变成了点.

4.2013101601                                 //更新序号

5.3H                                         //刷新时间

6.15M                                         //重试间隔

7.1W                                         //失效时间

8.1D                                         //无效记录的生存周期

9.)

10.@         IN NS         svr5.tarena.com.         //本域的DNS服务器地址

11.            IN NS         svr6.tarena.com.         //本域的DNS服务器地址

12.            IN MX 10    mail.tarena.com.         //本域的邮件服务器地址

13.            IN A         192.168.4.100             //本域的默认IP地址

14.svr5     IN A         192.168.4.5             //A主机记录

15.svr6     IN A         192.168.4.6

16.www         IN A         192.168.4.100

17.mail        IN A         192.168.4.25

18.ftp         IN CNAME    www                         //CNAME别名记录

19.*         IN A        192.168.4.100             //*泛域名解析

3)建立区域地址文件(反向域4.168.192.in-addr.arpa)

#cp -p tarena.com.zone 192.168.4.arpa

#vim 192.168.4.arpa//这里编辑的还是/var/named/chroot/var/named/192.168.4.arpa


2.$TTL 86400

3.@ IN SOA tarena.com. admin.tarena.com. (

4.2013101601                                 //更新序号

5.3H                                         //刷新时间

6.15M                                         //重试间隔

7.1W                                         //失效时间

8.1D                                         //无效记录的生存周期

9.)

10.@         IN NS svr5.tarena.com.

11.        IN NS svr6.tarena.com.

12.5         IN PTR svr5.tarena.com.

13.6         IN PTR svr6.tarena.com.

14.25         IN PTR mail.tarena.com.

15.100         IN PTR www.tarena.com.//反向解析

4)检查配置文件是否正确



# named-checkconf etc/named.conf //没有错误不提示

# named-checkzone tarena.com var/named/tarena.com.zone //没有错误提示ok

# named-checkzone 4.168.192.in-addr.arpa var/named/192.168.4.arpa

5)启动named服务,并在本机测试DNS解析是否符合预期



# service named restart                 //重启named服务

# vim /etc/resolv.conf //修改本机的DNS设置文件:


nameserver 192.168.4.5                             //首选DNS指向主DNS服务器

测试正向解析,都与预期的结果一致:

1.[root@svr5 ~]# host svr5.tarena.com

2.svr5.tarena.com has address 192.168.4.5

3.[root@svr5 ~]# host svr6.tarena.com

4.svr6.tarena.com has address 192.168.4.6

5.[root@svr5 ~]# host mail.tarena.com

6.mail.tarena.com has address 192.168.4.25

7.[root@svr5 ~]# host www.tarena.com

8.www.tarena.com has address 192.168.4.100


测试反向解析(抽查),也都与预期的结果一致:

1.[root@svr5 ~]# host 192.168.4.5

2.5.4.168.192.in-addr.arpa domain name pointer svr5.tarena.com.

3.[root@svr5 ~]# host 192.168.4.25

4.25.4.168.192.in-addr.arpa domain name pointer mail.tarena.com.



测试泛域名解析(查询几个不存在的域名),也都正确给出结果:


1.[root@svr5 ~]# host abc.tarena.com

2.abc.tarena.com has address 192.168.4.100

3.[root@svr5 ~]# host xxyyzz.tarena.com

4.xxyyzz.tarena.com has address 192.168.4.100



3.搭建从DNS服务器(192.168.4.5)


1)构建主配置文件named.conf

在从DNS服务器上,主配置文件named.conf的内容大部分与主DNS服务器上相同,因此只要复制过来稍加改动即可,建议采用scp远程复制:

# cd /var/named/chroot/etc/     //切换到主配置目录

# scp root@192.168.4.5:/var/named/chroot/etc/named.conf ./

//远程复制,保留到当前目录下


2)  对复制过来的named.conf进行修改——去掉主DNS配置的allow-transfer授权,将正、反向区域的类型改为slave,并添加masters配置指定主DNS服务器:


# vim /var/named/chroot/etc/named.conf


2.options {

3.directory "/var/named";

4.#allow-transfer { 192.168.4.6; };         //移除此行授权配置

5.};

6.zone "tarena.com" IN {

7.type slave;                                 //区域类型改为slave

8.file "slaves/tarena.com.zone";             //改为保存到slaves/子目录下

9.masters { 192.168.4.5; };                 //指定主DNS服务器的地址

10.};

11.zone "4.168.192.in-addr.arpa" IN {

12.type slave;                                 //区域类型改为slave

13.file "slaves/192.168.4.arpa";             //指定主DNS服务器的地址

14.masters { 192.168.4.5; };                 //改为保存到slaves/子目录下

15.};

 因为named服务程序的默认运行身份是named用户,当从DNS服务器自动从主DNS服务器下载区域地址数据文件后,需要有本地写入权限才能保存成功。默认情况下,子目录是专为主从同步准备的,named用户有权限写入:这里的权限错误页容易出错,需要注意


2)建立区域地址文件

对于从DNS服务器来说,此步骤不需要做(因为会自动从主DNS服务器下载)。

在从DNS服务器的named服务未启动之前,没有(也不需要有)区域地址文件:


3)启动named服务,确认已成功从主DNS服务器下载区域地址文件


# service named restart                 //重启named服务

 检查slaves/目录,可发现已自动下载正、反向区域地址文件:


#ls -l /var/named/chroot/var/named/slaves/


 如果前面忘记将存放位置改成slaves/目录下,则极可能因为无权限写入而导致区域文件下载失败,此时检查从DNS的日志应发现类似下列的提示:

dumping master file: tmp-MoaX2hDvPO: open: permission denied                                     //导出文件到本地时被拒绝

Oct 16 15:54:39 svr6 named[16371]: transfer of 'tarena.com/IN' from 192.168.4.5#

53: failed while receiving responses: permission denied

                                               //最终反馈:访问被拒绝


 只要修正存放位置或解决named用户的写入权限问题,故障就会解决了。


4)在从DNS服务器本机测试DNS解析是否符合预期


  测试操作与前面类似,使用host或nslookup都可以。

修改本机的DNS设置文件:


# vim /etc/resolv.conf //此处容易忘记修改从服务器的dns配置文件,不修改时解析不出来的

抽查正向解析,与预期结果一致:


1.[root@svr6 ~]# host www.tarena.com

2.www.tarena.com has address 192.168.4.100

3.[root@svr6 ~]# host svr5.tarena.com

4.svr5.tarena.com has address 192.168.4.5

抽查反向解析,与预期结果一致:

1.[root@svr6 ~]# host 192.168.4.5

2.5.4.168.192.in-addr.arpa domain name pointer svr5.tarena.com.

3.[root@svr6 ~]# host 192.168.4.25

4.25.4.168.192.in-addr.arpa domain name pointer mail.tarena.com.



测试泛域名解析,也能正确得出结果(192.168.4.100):

1.[root@svr6 ~]# host abc.tarena.com

2.abc.tarena.com has address 192.168.4.100

3.[root@svr6 ~]# host xxyyzz.tarena.com

4.xxyyzz.tarena.com has address 192.168.4.100



4.主、从DNS解析整体测试


1)修改客户机的DNS服务器指向


在主机192.168.4.5上,指定首选、辅助DNS服务器:

# vim /etc/resolv.conf

2.search localdomain

3.nameserver 192.168.4.5                             //首选DNS服务器

4.nameserver 192.168.4.6                             //辅助DNS服务器

在主机192.168.4.5上,也指定首选、辅助DNS服务器:

1.[root@svr6 ~]# vim /etc/resolv.conf

2.search localdomain

3.nameserver 192.168.4.6                             //首选DNS服务器

4.nameserver 192.168.4.5                             //辅助DNS服务器






实验总结:


1  此实验中尤其需要注意路径,本实验的各种路径都是在/var/named/chroot/下的var和etc目录下操作的

,在切换路径的时候习惯性的在前面加上/ ,这样就切换到根下了,是不正确的。

2  正向解析式最后的tarena.com. 后面的.不要忘记  


3  要解析出dns服务器,还不要忘记修改/etc/resolve.conf文件,添加本机的namesearch


4  如果还是解析不出来,可以查看/var/log/message 查看日志,日志中有的会提醒...denied 表示文件的  属性改变了,配置文件和区域配置文件的所属组应该是named,查看这几个文件的权限,如果是boot该为 named

例:chgrp named /var/named/chroot/etc/named.conf

 chgrp named /var/named/chroot/var/named/tarena.com.zone

chgrp named /var/named/chroot/etc/192.168.4.arpa

5 named.conf 的检查命令是:named-checkconf ./etc/named.conf

 区域文件的检查命令是: named-checkzone tarena.com ./var/named/tarena.com.zone

named-checkzone tarena.com ./var/named/192.168.4.arpa

 每次配置完,用检查命令接着检查下,刚刚配置的是否正确

6。在设置别名的时候,IN之后的A改为CNAME,去掉A不要保留着,这里自己容易忘记删除A

7.从dns服务器要想从主服务器上获取信息,首先要保证他们2个之间是能ping通的,解析不出也有可能是2个服务器之间不能ping通


8.在编辑各个配置文件的时候要注意标点符号的遗漏,像; ,在}外有;,不要遗漏

9 要学会用日志来检查出错信息,要留意出错时的错误提示信息,根据提示信息去找出错误并改正。


10 DNS使用端口  tcp/udp 53


11DNS负载均衡--同一个域名对应多个ip地址

12泛域名解析中有规律时的设置:

$GENERATE 1-200 station$ IN192.168.4.$//正向解析

$GENERATE 1-200$INAstation$.tarena.com.//反向解析




      本文转自Jx战壕  51CTO博客,原文链接:http://blog.51cto.com/xujpxm/1370848,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
搭建DNS 服务器
安装 环境变量 OS: centos 6.9 安装 Bind 9 $ yum install -y bind* caching-nameserver* 安装 Webmin $ wget https://jaist.
7668 0
DNS 搭建主从DNS服务器(转载)
CentOS release 6.8 (Final) 构建DNS主从服务器。 主服务器:192.168.18.42 从服务器:192.168.18.41 一般而言,DNS服务器配置流程主要分为3步: (1)建立主配置文件named.
941 0
21114
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载