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,如需转载请自行联系原作者










相关文章
|
存储 缓存 文件存储
如何保证分布式文件系统的数据一致性
分布式文件系统需要向上层应用提供透明的客户端缓存,从而缓解网络延时现象,更好地支持客户端性能水平扩展,同时也降低对文件服务器的访问压力。当考虑客户端缓存的时候,由于在客户端上引入了多个本地数据副本(Replica),就相应地需要提供客户端对数据访问的全局数据一致性。
33079 82
如何保证分布式文件系统的数据一致性
|
前端开发 容器
HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第8章FlexBox布局(上)
HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第8章FlexBox布局
17819 24
|
设计模式 存储 监控
设计模式(C++版)
看懂UML类图和时序图30分钟学会UML类图设计原则单一职责原则定义:单一职责原则,所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责。而单一职责原则就是指一个类或者模块应该有且只有一个改变的原因。bad case:IPhone类承担了协议管理(Dial、HangUp)、数据传送(Chat)。good case:里式替换原则定义:里氏代换原则(Liskov 
36801 22
设计模式(C++版)
|
存储 编译器 C语言
抽丝剥茧C语言(初阶 下)(下)
抽丝剥茧C语言(初阶 下)
|
机器学习/深度学习 人工智能 自然语言处理
带你简单了解Chatgpt背后的秘密:大语言模型所需要条件(数据算法算力)以及其当前阶段的缺点局限性
带你简单了解Chatgpt背后的秘密:大语言模型所需要条件(数据算法算力)以及其当前阶段的缺点局限性
24875 15
|
机器学习/深度学习 弹性计算 监控
重生之---我测阿里云U1实例(通用算力型)
阿里云产品全线降价的一力作,2023年4月阿里云推出新款通用算力型ECS云服务器Universal实例,该款服务器的真实表现如何?让我先测为敬!
36787 15
重生之---我测阿里云U1实例(通用算力型)
|
SQL 存储 弹性计算
Redis性能高30%,阿里云倚天ECS性能摸底和迁移实践
Redis在倚天ECS环境下与同规格的基于 x86 的 ECS 实例相比,Redis 部署在基于 Yitian 710 的 ECS 上可获得高达 30% 的吞吐量优势。成本方面基于倚天710的G8y实例售价比G7实例低23%,总性价比提高50%;按照相同算法,相对G8a,性价比为1.4倍左右。
|
存储 算法 Java
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的限流器RateLimiter功能服务
随着互联网的快速发展,越来越多的应用程序需要处理大量的请求。如果没有限制,这些请求可能会导致应用程序崩溃或变得不可用。因此,限流器是一种非常重要的技术,可以帮助应用程序控制请求的数量和速率,以保持稳定和可靠的运行。
29928 52