DNS域名服务器-阿里云开发者社区

开发者社区> 开发与运维> 正文

DNS域名服务器

简介:

随着ABC公司业务的扩张,计算机越来越多的情况下,让员工记忆所有公司内部服务器的IP地址可能性不大,因此公司决定采用DNS解决方案,这样实现主机之间的通讯可以变的更简单。案例中我们使用的域为abc.com域,这个是正向解析的域,网络采用的是私有网络:172.16.0.0/16。本案例仅对公司主要的服务器生产解析记录,如果读者需要更多的记录,可以按照这些模版添加其他主机的记录信息,在公司内部服务器列表见表4-10

4-10

服务器IP

服务器名称

功能描述

172.16.0.254

dns1.abc.com

主域名服务器

172.16.0.253

dns2.abc.com

从域名服务器

172.16.0.100

fileserver.abc.com

文件服务器

172.16.0.101

printserver.abc.com

打印机服务器

172.16.0.200

www.abc.com

网站服务器

172.16.0.201

www.abc.com

网站服务器

172.16.0.25

mail.abc.com

邮件服务器

172.16.0.22

ntp.abc.com

时间服务器

1.         安装软件

[root@centos6 ~]# yum -y install bind

[root@centos6 ~]# yum -y install bind-chroot

[root@centos6 ~]# yum -y install bind-utils

2.         修改主配置文件

[root@centos6 etc]# cd /usr/share/doc/bind-9.8.2/sample/etc/

[root@centos6 etc]# cp named.conf /var/named/chroot/etc/

[root@centos6 etc]# chown root.named /var/named/chroot/etc/named.conf

[root@centos6 etc]# vim /var/named/chroot/etc/named.conf


  1. options 
  2. {        directory                   "/var/named";                   // "Working" directory 
  3.          dump-file                  "data/cache_dump.db"; 
  4.         statistics-file "data/named_stats.txt"; 
  5.         memstatistics-file "data/named_mem_stats.txt"; 
  6.          listen-on port 53      { any; }; 
  7.          allow-query               { any; }; 
  8.          allow-query-cache   { any; }; 
  9.          recursion yes; 
  10. }; 
  11. acl secondserver { 
  12.             172.16.0.253; 
  13.   }; 
  14.   zone "." IN { 
  15.             type hint; 
  16.             file "named.ca"; 
  17.   }; 
  18.   zone "abc.com" IN { 
  19.             type master; 
  20.             allow-transfer { secondserver; }; 
  21.             file "abc.com.zone"; 
  22.   }; 
  23.   zone "16.172.in-addr.arpa" IN { 
  24.             type master; 
  25.             allow-transfer { secondserver; }; 
  26.             file "172.16.zone"; 
  27.          }; 

3.         创建区数据文件

[root@centos6 etc]# cd /usr/share/doc/bind-9.8.2/sample/var/named/

[root@centos6 named]# cp named.ca /var/named/chroot/var/named/

[root@centos6 etc]# chown root.named /var/named/chroot/var/named/named.ca

[root@centos6 named]# cp named.localhost /var/named/chroot/var/named/abc.com.zone

[root@centos6 named]# chown root.named /var/named/chroot/var/named/abc.com.zone

[root@centos6 named]# vim /var/named/chroot/var/named/abc.com.zone


  1. $TTL 1D 
  2. @     IN SOA      dns1.abc.com. jacob.abc.com. ( 
  3.                                                10     ; serial 
  4.                                                1D    ; refresh 
  5.                                                1H    ; retry 
  6.                                               1W   ; expire 
  7.                                                3H )  ; minimum 
  8.          NS    dns1.abc.com. 
  9.          NS    dns2.abc.com. 
  10.          MX 10       mail.abc.com. 
  11. dns1                       IN A 172.16.0.254 
  12. dns2                       IN A 172.16.0.253 
  13. ntp.abc.com.    IN A 172.16.0.22 
  14. mail.abc.com.  IN A 172.16.0.25 
  15. fileserver      IN A 172.16.0.100 
  16. printserver        IN A 172.16.0.101 
  17. www                   IN A 172.16.0.200 
  18.                        IN A 172.16.0.201 

[root@centos6 named]# vim /var/named/chroot/var/named/ 172.16.zone


  1. $TTL 1D 
  2. @     IN SOA      dns1.abc.com. jacob.abc.com. ( 
  3.                                                10     ; serial 
  4.                                                1D    ; refresh 
  5.                                                1H    ; retry 
  6.                                                1W   ; expire 
  7.                                                3H )  ; minimum 
  8.              NS    dns1.abc.com. 
  9.              NS    dns2.abc.com. 
  10. 254.0        IN PTR      dns1.abc.com. 
  11. 253.0        IN PTR      dns2.abc.com. 
  12. 22.0         IN PTR      ntp.abc.com. 
  13. 25.0         IN PTR      mail.abc.com. 
  14. 100.0        IN PTR      fileserver.abc.com. 
  15. 101.0        IN PTR      printserver.abc.com. 
  16. 200.0        IN PTR      www.abc.com. 
  17. 201.0        IN PTR      www.abc.com. 

4.         服务管理

[root@centos6 ~]# iptables -I INPUT -p udp --dport 53 -j ACCEPT

[root@centos6 ~]# iptables -I INPUT -p tcp --dport 53 -j ACCEPT

[root@centos6 ~]# service named start

[root@centos6 ~]# chkconfig named on

1.         客户端验证

客户端正确配置DNS服务器后,查询工具比较多,常用的有nslookupdighost,下面分别演示这些命令的基本用法。

[root@centos6 ~]# nslookup www.abc.com

[root@centos6 ~]# nslookup 172.16.0.100

[root@centos6 ~]# dig www.abc.com

[root@centos6 ~]# dig abc.com MX

[root@centos6 ~]# host www.abc.com

4.1.1     部署从域名服务器

部署从域名服务器的作用是防止单点故障或实现负载均衡。如果只有一台服务器当该服务器宕机时,将导致所有客户端的地址解析出现问题。另外,为了满足大规模的查询请求,我们可以创建多台DNS服务器实现负载均衡。然而如果所有的DNS都作为主服务器的话,会有大量的配置需要我们重复进行,再有就是当解析记录发生改变后,各个服务器之间的区数据文件的版本比较混乱(不方便统一),所以我们需要部署从域名服务器,从域名服务器会从主域名服务器上下载数据文件,只要主服务器修改了数据文件中的记录,从服务器可以自动同步数据。

1.         安装软件

[root@centos6 ~]# yum -y install bind

[root@centos6 ~]# yum -y install bind-chroot

[root@centos6 ~]# yum -y install bind-utils

2.         修改配置文件

[root@centos6 etc]# cd /usr/share/doc/bind-9.8.2/sample/etc/

[root@centos6 etc]# cp named.conf /var/named/chroot/etc/

[root@centos6 etc]# chown root.named /var/named/chroot/etc/named.conf

[root@centos6 etc]# vim /var/named/chroot/etc/named.conf


  1. options 
  2.          directory                   "/var/named";                   // "Working" directory 
  3.          dump-file                  "data/cache_dump.db"; 
  4.         statistics-file "data/named_stats.txt"; 
  5.         memstatistics-file "data/named_mem_stats.txt"; 
  6.          listen-on port 53      { any; }; 
  7.          allow-query               { any; }; 
  8.          allow-query-cache   { any; }; 
  9.          recursion yes; 
  10. }; 
  11.   zone "." IN { 
  12.             type hint; 
  13.             file "named.ca"; 
  14.   }; 
  15.   zone "abc.com" IN { 
  16.             type master; 
  17.             masters { 172.16.0.254; }; 
  18.             file "abc.com.zone"; 
  19.   }; 
  20.   zone "16.172.in-addr.arpa" IN { 
  21.             type master; 
  22.             masters { 172.16.0.254; }; 
  23.             file "172.16.zone"; 
  24.          }; 

3.         同步数据文件

从服务器进行同步操作前,需要创建一个BIND软件可以进行读取操作的目录,以便将主服务器的数据文件保存至该目录。

当从服务器的主配置文件修改完成后,通过启动服务,BIND会自动根据主配置文件中的masters语句寻找服务器,并将主服务器的数据文件下载至从服务器本地。完成第一次的数据同步后,从服务器会根据同步过来的数据文件中的SOA记录选项,决定下次同步数据的时间,案例中主域名服务器的SOA记录括号中有五条选项。

第一个选项10是序列号,从服务器会根据这个序列号来决定是否进行同步操作,如果服务器端数据文件的序列号大于从服务器的序列号,从服务器才会与主服务器同步数据,该序列号建议使用时间格式,如20121212001表示20121212日的第一次修改(序列号只要是数字即可,BIND不强制要求具体数字格式)。

第二个选项1D,代表从服务器多久与主服务器进行序列号的对比(仅在主服务器序列号大于从服务器的序列号时,才进行数据同步),D代表Day,这里为1天。

第三个选项1H,代表如果从服务器请求连接主服务器时,由于网络延迟,主服务器故障等原因,暂时无法连接到主服务器,那么从服务器会每个一个小时再试一次。

第四个选项1W,代表如果从服务器尝试一周后还是没能连接到主服务器,则不再进行连接。

第五个选项3H,代表的是缓存的时间为3小时。

 注意:在CentOS 6.3系统中从服务器同步数据文件时需要修改SELinux设置,否则将无权限进行同步操作。

[root@centos6 ~]# setsebool -P named_write_master_zones=1

[root@centos6 ~]# mkdir -p /var/named/chroot/var/named/slaves/

[root@centos6 ~]# chown root.named /var/named/chroot/var/named/slaves/

[root@centos6 ~]# chmod 775 /var/named/chroot/var/named/slaves/

[root@centos6 ~]# service named start

[root@centos6 ~]# chkconfig named on





















本文转自丁丁历险51CTO博客,原文链接:http://blog.51cto.com/manual/1179606 ,如需转载请自行联系原作者


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

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章