为了保证服务能够稳定的进行,避免只有一台服务器的时候发生宕机而无法提供DNS服务;所有会有DNS主从服务器架构

主从DNS服务器:(主辅)
需要注意的细节:
1.主服务器和辅助服务器都是域级别的概念;
2.必须保证主辅服务器之间的网络通信的顺畅以及时间同步;
3.为了确保所有的名称服务器都能被识别和使用,需要在区域数据库中为所有的名称服务器添加NS资源记录;
4.区域数据库中每条NS资源记录都必须有A记录与之对应;
5.从服务器上可以默认将复制而来的数据库文件保存至/var/name/slaves目录中;
6.在主服务器上应该通过访问控制指令允许从服务器进行区域传送;同时从服务器要指定主服务器;

在架构之前先保证主从服务器的时间同步:
1.两台服务器可向网络中的时间服务器进行同步;
示例;
~]# ntpdate cn.pool.ntp.org

2.把主服务器设置为主从架构中的时间服务器,让从服务器同步到主服务器示例:主:~]# vim /etc/ntp.conf添加:server 127.127.1.0 iburst主:~]# systemctl start ntpd.service从:~]# ntpdate 172.16.72.1//172.16.72.1(主服务器端)

主从服务器的架构示例:
1.编辑:在主服务器(172.16.72.1)中的BIND程序的主配置文件(/etc/named.conf)
zone "qhdlink.com" IN {
type master;
file "qhdlink.zone";
allow-update { none; };
allow-transfer { 172.16.69.1; };
//允许从服务器(172.16.69.1)能够从当前服务器进行区域传送
};

    zone "16.172.in-addr.arpa" IN {type master;file "172.16.local";allow-transfer { 172.16.69.1; };//允许从服务器(172.16.69.1)能够从当前服务器进行区域传送};zone "188.168.192.in-addr.arpa" IN {type master;file "192.168.188.local";allow-transfer { 172.16.69.1; };//允许从服务器(172.16.69.1)能够从当前服务器进行区域传送};2.在主服务器(172.16.72.1)编辑各个zone(区域配置段)中的对应文件:qhdlink.zone、172.16.local、192.168.188.local1)named]# touch qhdlink.zonenamed]# chmod 640 qhdlink.zonenamed]# chgrp named qhdlink.zone:named]# vim qhdlink.zone$ORIGIN qhdlink.com.$TTL 86400@   IN  SOA ns1.qhdlink.com.  root.qhdlink.com. (2018040701;Serial1H;Refresh15M;Retry1W;Expire1D);Minimal TTLIN  NS  ns1.qhdlink.com.IN  MX 10 mail.qhdlink.com.ns1 IN  A   172.16.72.1mail  IN  A   172.16.72.1www   IN  A   172.16.100.100www   IN  A   172.16.100.101www   IN  A   172.16.100.102web   IN  CNAME wwwftp.qhdlink.com.    IN  CNAME web.qhdlink.com.*     IN  A   172.16.200.1qhdlink.com.  IN  A 172.16.200.2bbs   IN  A 192.168.100.1012)named]# touch 172.16.localnamed]# chmod 640 172.16.localnamed]# chgrp named 172.16.localnamed]# vim 172.16.local$ORIGIN 16.172.in-addr.arpa.$TTL 86400@   IN  SOA   ns1.qhdlink.com.  root.qhdlink.com. (2018040701;1H;15M;1W;6H);IN  NS  ns1.qhdlink.com.1.72  IN  PTR   ns1.qhdlink.com.1.72  IN  PTR   mail.qhdlink.com.100.100 IN  PTR www.qhdlink.com.101.100 IN  PTR www.qhdlink.com.102.100 IN  PTR www.qhdlink.com.1.200 IN  PTR qhdlink.com.3)named]# cp -p 172.16.local 192.168.188.localnamed]# vim 192.168.188.local$ORIGIN 188.168.192.in-addr.arpa.$TTL 86400@   IN  SOA   ns1.qhdlink.com.  root.qhdlink.com. (2018040701;1H;15M;1W;6H);IN  NS  ns1.qhdlink.com.101 IN PTR bbs.qhdlink.com.3.编辑:在从服务器(172.16.69.1)中的BIND程序的主配置文件(/etc/named.conf)options {listen-on port 53 { 127.0.0.1; 172.16.69.1; };//在启动DNS服务时,named进程所监听的172.16.69.1:53此套接字listen-on-v6 port 53 { ::1; };directory       "/var/named";dump-file       "/var/named/data/cache_dump.db";statistics-file "/var/named/data/named_stats.txt";memstatistics-file "/var/named/data/named_mem_stats.txt";allow-query     { 172.16.72.1; };//允许本服务器处理主服务器(172.16.72.1)发送来的解析查询请求//"172.16.72.1"也可改成"any",允许允许本服务器处理所有主服务器发送来的解析查询请求recursion yes;dnssec-enable yes;dnssec-validation yes;/* Path to ISC DLV key */bindkeys-file "/etc/named.iscdlv.key";managed-keys-directory "/var/named/dynamic";};zone "qhdlink.com" IN {type slave;masters { 172.16.72.1; };file "slaves/qhdlink.slave.zone";allow-transfer { none; };};zone "16.172.in-addr.arpa" IN {type slave;masters { 172.16.72.1; };file "slaves/172.16.slave.zone";allow-transfer { none; };};zone "188.168.192.in-addr.arpa" IN {type slave;masters { 172.16.72.1; };file "slaves/172.168.188.slave.zone";allow-transfer { none; };};4.检测区域文件的语法格式.并关闭防火墙和SElinux:named]# named-checkconfnamed]# iptables -Fnamed]# setenforce 05.对主配置文件或区域数据库文件进行修改之后,并不会立即生效;只有在重载配置文件和区域文件之后,配置才生效;重载配置文件的方法:1.systemctl reload named.service(CentOS 7.x)2.rndc reload3.systemctl restart named.service(不推荐)4.service named reload(CentOS 6.x)注意:对于应用程序服务进程重载配置文件的操作,如果能使用reload,就使用reload,不要轻易执行restart命令;6.配置完成进行测试named]# dig @172.16.69.1 -x 192.168.188.101named]# dig @172.16.69.1 -t A www.qhdlink.comnamed]# dig @172.16.69.1 -x 172.16.100.100

心得体会:
A、B两台服务器都能对同一个IP/FQDN进行DNS解析
1.假如A服务器的BIND程序的主配置文件(/etc/named.conf)中的区域配置段(zone)和其对应据库文件(XXX.zone)能够进行DNS解析;
2.那么B服务器(B作为A的从服务器)的BIND程序的主配置文件(/etc/named.conf)中必须要有匹配的区域配置段(zone)才能进行DNS解析;
3.保证A服务器中的BIND程序的主配置文件(/etc/named.conf)的区域配置段(zone)的"allow-transfer { XXX.XXX.XXX.XXX; }" 对B服务器开启区域传送许可;
4.同时保证B服务器中的BIND程序的主配置文件(/etc/named.conf)的全局配置段(options)中的"listen-on port 53"监听B服务器的地址,"allow-query"允许B(本地服务器)处理A服务器发送来的解析查询请求

C作为客户端能够获取DNS解析1.防火墙规则2.对应的服务器端的全局配置段(options)中的"allow-query"允许服务器端处理C客户端发送来的解析查询请求

DNS转发器:
全局转发:
1.定义:对于凡是不能由本服务器管理(处理)的域的请求,全部以转发的方式由指定的服务器进行递归查询;
2.配置位置:在bind的主配置文件(/etc/named.conf)的全局配置段(options)

区域转发:1.定义:专门针对于某个特定的域的请求,如果不能给出权威答案,则转发至指定的服务器进行递归查询;2.配置位置:在bind的主配置文件(/etc/named.conf)的区域配置段(zone)转发的方法:forward first:首先转发,当转发器中指定的服务器无响应时,再自行迭代查找;forward only:只使用转发器中指定的服务器进行递归查询,如果无法获得答案,则直接返回否定答案;自身不再迭代查找;注意:1.任何形式的请求转发,都必须依靠被指定的服务器允许自身做递归查询;2.根服务器只做迭代查询,不会为任何服务器做递归查询

为什么需要DNS转发器:
1.假设有A、B两台NS(名称服务器),A为Master(主名称服务器),B为Slave(从名称服务器),还有一台C客户端
2.在A上配备解析www.test.com这个FQDN的区域配置段(zone)和区域数据库文件(test.zone),C能够指定A来进行DNS解析获取得到肯定答案;
3.虽然B作为A的从服务器,但却在B的/etc/named.conf中没有关于www.test.com这个FQDN的区域配置段(zone),则在/var/named/slaves中没有关于此区域数据库文件(test.zone),可能是由于B还没来得及从A上进行区域传送,更新配置文件和数据库中的内容;
4.此时若C指定B来进行DNS解析时,即使B的/etc/named.conf中的option(全局配置段)中的"allow-query"为"{ any; }"(允许B处理任何主机发送来的解析查询请求),C客户端也获取不了肯定答案,B只能返回一个否定答案(dns解析不了)给C
5.为了实现服务器的高效可用性,B解析不了的时候把这个DNS解析请求传给A去处理,这其中就可以利用DNS转发器来实现;

给定三台虚拟机进行测试:
A:服务器端(172.16.72.1)
B:转发器端(172.16.69.1)
C:客户端(172.16.69.2)

全局转发示例:1.编辑在A服务器(172.16.72.1)中的BIND程序的主配置文件(/etc/named.conf),定义qhdlink.org域named]# vim /etc/named.confzone "qhdlink.org" IN {type master;file "qhdlink.org.zone";allow-transfer { none; };};2.创建数据库文件,修改权限并添加相应资源记录;编辑A服务器(172.16.72.1)中主配置文件的zone(区域配置段)对应的文件:qhdlink.org.zonenamed]# touch qhdlink.org.zonenamed]# chgrp named qhdlink.org.zone named]# chmod 640 qhdlink.org.zonenamed]# vim qhdlink.org.zone$TTL 86400qhdlink.org. IN SOA ns1.qhdlink.org. root.qhdlink.org. (2018040701;1H;10M;3D;4H);IN NS ns1ns1 IN A 172.16.72.1www IN A 11.22.33.443.编辑B服务器(172.16.69.1)中主配置文件(/etc/named.conf)中的全局配置段(option)named]# vim /etc/named.confoptions {listen-on port 53 { 127.0.0.1; 172.16.72.1; 172.16.69.1; };listen-on-v6 port 53 { ::1; };directory       "/var/named";dump-file       "/var/named/data/cache_dump.db";statistics-file "/var/named/data/named_stats.txt";memstatistics-file "/var/named/data/named_mem_stats.txt";allow-query     { any; };recursion yes;forward first;//转发方法forwarders { 172.16.72.1; }; //转发给172.16.72.1dnssec-enable no;dnssec-validation no;/* Path to ISC DLV key */bindkeys-file "/etc/named.iscdlv.key";managed-keys-directory "/var/named/dynamic";};4.检测区域文件和对应数据库文件A:named]# named-checkconfnamed]# named-checkzone qhdlink.org qhdlink.org.zone zone qhdlink.org/IN: loaded serial 2018040701OKB:named]# named-checkconf5.对主配置文件或区域数据库文件进行修改之后,并不会立即生效;只有在重载配置文件和区域文件之后,配置才生效;重载配置文件的方法:1.systemctl reload named.service(CentOS 7.x)2.rndc reload3.systemctl restart named.service(不推荐)4.service named reload(CentOS 6.x)注意:对于应用程序服务进程重载配置文件的操作,如果能使用reload,就使用reload,不要轻易执行restart命令;6.配置完成进行测试在C客户端上:~]# dig @172.16.72.1 -t A www.qhdlink.org~]# dig @172.16.69.1 -t A www.qhdlink.org//对比两者结果,解析得到的答案一致,则转发器有效在C客户端上:~]# nslookup> set q=a> server 172.16.69.1Default server: 172.16.69.1Address: 172.16.69.1#53> www.qhdlink.org    Server:     172.16.69.1Address:    172.16.69.1#53Non-authoritative answer://非权威答案,证明是通过转发获取得到的,则转发器有效Name:   www.qhdlink.orgAddress: 11.22.33.44全局转发测试成功后,可以用"/*...*/"的注释方法把定义全局转法部分先注释掉,避免进行区域转发测试得到的结果的准确性和有效性;区域转发示例:1.编辑在A服务器(172.16.72.1)中的BIND程序的主配置文件(/etc/named.conf),定义qhdlink.com.cn域named]# vim /etc/named.confzone "qhdlink.com.cn" IN {type master;file "qhdlink.com.cn.zone";allow-transfer { none; };};2.创建数据库文件,修改权限并添加相应资源记录;编辑A服务器(172.16.72.1)中主配置文件的zone(区域配置段)对应的文件:qhdlink.com.cn.zonenamed]# touch qhdlink.com.cn.zonenamed]# chgrp named qhdlink.com.cn.zonenamed]# chmod 640 qhdlink.com.cn.zonenamed]# vim qhdlink.com.cn.zone$ORIGIN qhdlink.com.cn.$TTL 86400qhdlink.com.cn. IN SOA ns1.qhdlink.com.cn. root.qhdlink.com.cn. (2018040701;1H;10M;3D;4H);IN NS ns1ns1 IN A 172.16.72.1www IN A 1.2.3.43.编辑B服务器(172.16.69.1)中主配置文件(/etc/named.conf)中的全局配置段(option)和区域配置段(zone)named]# vim /etc/named.confoptions {listen-on port 53 { 127.0.0.1; 172.16.72.1; 172.16.69.1; };//添加监听C客户端(172.16.69.1)的53端口listen-on-v6 port 53 { ::1; };directory       "/var/named";dump-file       "/var/named/data/cache_dump.db";statistics-file "/var/named/data/named_stats.txt";memstatistics-file "/var/named/data/named_mem_stats.txt";allow-query     { any; };//允许本服务器处理任何主机发送来的解析查询请求recursion yes;dnssec-enable no;dnssec-validation no;/* Path to ISC DLV key */bindkeys-file "/etc/named.iscdlv.key";managed-keys-directory "/var/named/dynamic";};zone "qhdlink.com.cn" IN {type forward;forward only;forwarders { 172.16.72.1; };};4.检测区域文件的语法格式A:named]# named-checkconfnamed]# named-checkzone qhdlink.com.cn qhdlink.com.cn.zonezone qhdlink.com.cn/IN: loaded serial 2018040701OKB:named]# named-checkconf5.对主配置文件或区域数据库文件进行修改之后,并不会立即生效;只有在重载配置文件和区域文件之后,配置才生效;重载配置文件的方法:1.systemctl reload named.service(CentOS 7.x)2.rndc reload3.systemctl restart named.service(不推荐)4.service named reload(CentOS 6.x)注意:对于应用程序服务进程重载配置文件的操作,如果能使用reload,就使用reload,不要轻易执行restart命令;6.配置完成进行测试在C客户端上:~]# dig @172.16.72.1 -t A www.qhdlink.com.cn~]# dig @172.16.69.1 -t A www.qhdlink.com.cn//对比A和B的解析结果,解析得到的答案一致则成功在C客户端上:~]# nslookup> server 172.16.69.1Default server: 172.16.69.1Address: 172.16.69.1#53> www.qhdlink.com.cnServer:     172.16.69.1Address:    172.16.69.1#53Non-authoritative answer://非权威答案,证明是通过转发获取得到的,则转发器有效Name:   www.qhdlink.com.cnAddress: 1.2.3.4

子域委派授权:
将子域的管理权授权给子域中的名称服务器;父域中不保存任何子域数据库中资源记录;但为了能够成功授权,需要添加一条NS记录,指向子域的名称服务器;

子域委派授权与转发器的比较:
1.子域委派授权实际上是为客户端提供迭代查询机制;
2.转发器实际上是为客户端提供递归查询机制;
3.因为两者都不是直接给客户端返回DNS的解析结果,都是通过第三方来"辅助"完成解析,所以得到的答案都是非权威的;

给定三台服务器进行测试:
A:服务器端(172.16.72.1)
B:转发器端(172.16.69.1)
C:客户端(172.16.69.2)

子域委派授权示例:
1.在A上做qhdlink.org这个域的配置,不做bj.qhdlink.org这个域的配置
named]# vim /etc/named.conf
zone "qhdlink.org" IN {
type master;
file "qhdlink.org.zone";
allow-transfer { none; };
};

    named]# vim qhdlink.org.zone$TTL 86400qhdlink.org. IN SOA ns1.qhdlink.org. root.qhdlink.org. (2018040701;1H;10M;3D;4H);IN NS ns1bj.qhdlink.org.    IN NS ns1.bj.qhdlink.org.ns1 IN A 172.16.72.1ns1.bj.qhdlink.org. IN A 172.16.69.1www IN A 11.22.33.442.在B上做bj.qhdlink.org这个域的配置named]# vim /etc/named.confzone "bj.qhdlink.org" IN {type master;file "bj.qhdlink.org.zone";allow-transfer { none; };};named]# named]# touch bj.qhdlink.org.zonenamed]# chgrp named bj.qhdlink.org.zone named]# chmod 640 bj.qhdlink.org.zonenamed]# vim bj.qhdlink.org.zone$ORIGIN bj.qhdlink.org.$TTL 86400@   IN  SOA ns1.bj.qhdlink.org. root.bj.qhdlink.org. (2018040701;3H;30M;10D;8H);IN  NS  ns1ns1 IN  A   172.16.72.2www IN  A   55.66.77.883.检测区域文件的语法格式A:named]# named-checkconfnamed]# named-checkzone qhdlink.org qhdlink.org.zoneB:named]# named-checkconfnamed]# named-checkzone bj.qhdlink.org bj.qhdlink.org.zone4.对主配置文件或区域数据库文件进行修改之后,并不会立即生效;只有在重载配置文件和区域文件之后,配置才生效;重载配置文件的方法:1.systemctl reload named.service(CentOS 7.x)2.rndc reload3.systemctl restart named.service(不推荐)4.service named reload(CentOS 6.x)注意:对于应用程序服务进程重载配置文件的操作,如果能使用reload,就使用reload,不要轻易执行restart命令;5.配置完成进行测试C:~]# dig @172.16.72.1 -t A www.bj.qhdlink.org//解析得到肯定答案,则说明测试成功

从子域授权委派示例可以看出:
1.A只配置了qhdlink.org这个域的解析内容;
2.B只配置bj.qhdlink.org这个域的解析内容;
3.但只需要在A的qhdlink.org这个域对应的数据库中文件中添加这两句RR:
bj.qhdlink.org. IN NS ns1.bj.qhdlink.org.
ns1.bj.qhdlink.org. IN A 172.16.69.1
4.就能把A与B联系起来;对于C客户端发过来的DNS解析查询请求,虽然A在自己本地的服务器上无法给C返回DNS解析查询信息,但可以委派给B,让B来对C进行DNS解析服务,并把结果返回给C

转载于:https://blog.51cto.com/weidehong/2404673

DNS的主从架构、子域委派、转发器相关推荐

  1. DNS服务器(DNS服务器构建,特殊的解析记录,多域名DNS服务器架构,DNF主从架构,DNS主从数据同步)

    学前提示: 需要两台虚拟机 虚拟机A:主机名位svr7 IP:192.168.4.7 虚拟机B:主机名pc207 IP:192.168.207 一.进行环境的设置 1.修改两台虚拟机的SELinux ...

  2. linux dns子域委派,bind服务器子域委派

    环境 操作系统: centos7 bind:    BIND 9.11.4 服务器 说明 备注 192.168.1.100 dns主节点 test.com 192.168.1.101 dns从节点 1 ...

  3. DNS子域委派配置案例[转载]

    最近在研究linux dns 在51上面看见这篇文章,感觉讲的很透彻,随转载,方便以后自己查阅 原文地址:http://www.51osos.com/a/Linux_CentOS_RedHat/Lin ...

  4. DNS(三)--子域授权和视图

    实验题目: 1.子域授权(委派) 2.视图 实验环境: 1.vmware虚拟机 2.linux子机两台 3.XP测试机 实验过程: 一.子域授权 在现实生活中我们世界互联网中的每个主机并不是在同一个域 ...

  5. DNS中实现父子域,以及授权和转发

    DNS中实现父子域,以及授权和转发 1:搭建实验环境 根据上面的实验环境来做这个实验 2:还是用上面实验192.168.100.60(在北京)创建的abc.com这个服务器做主DNS服务器和父域,新找 ...

  6. 企业内部DNS从服务器架构的步骤

    从DNS服务器的架设 之前文章有说"主DNS服务器"的架构过程,现在来说从服务器的架构步骤,主从DNS服务器的IP地址和服务器名称跟之前的计划一样均不变.主服务器的IP:172.1 ...

  7. 一文讲清,MySQL主从架构

    MySQL在生成环境中,如果是单机版的部署方式,就会有很大的可用性问题,MySQL提供了一套主从复制的架构,以提高其可用性. MySQL主从复制架构,就是部署两台机器,一台机器上部署的MySQL是ma ...

  8. Redis 高可用篇:你管这叫主从架构数据同步原理?

    高可用有两个含义:一是数据尽量不丢失,二是服务尽可能提供服务. AOF 和 RDB 保证了数据持久化尽量不丢失,而主从复制就是增加副本,一份数据保存到多个实例上.即使有一个实例宕机,其他实例依然可以提 ...

  9. 【带你重拾Redis】Redis 主从架构

    Redis 主从架构 单机的 Redis,能够承载的 QPS 大概就在上万到几万不等.对于缓存来说,一般都是用来支撑读高并发的.因此架构做成主从(master-slave)架构,一主多从,主负责写,并 ...

最新文章

  1. 自然语言处理:网购商品评论情感判定
  2. php imap 安装_linux 下安装PHP的IMAP扩展实现邮件收发
  3. [转]showModalDialog()、showModelessDialog()方法使用详解
  4. Java并发包--阻塞队列(BlockingQueue)
  5. Eclipse 插件开发遇到问题心得总结
  6. vs 编译错误 The name 'InitializeComponent' does not exist in the current context in WPF application...
  7. 1.6_quick_sort_快速排序
  8. 计算机软件技术信息安全哪个好,国内哪个大学的计算机安全专业最好?
  9. 不是所有学计算机的都是肖奈,为什么《微微一笑很倾城》中贝微微肖奈学习都很拔尖,却都不考研...
  10. VMware下安装ubuntu,桥接上网配置静态IP
  11. 一、Java多线程基础
  12. python 识别二维码内容
  13. 在坦桑尼亚如何打国际长途,打给你中国的朋友?
  14. css33d图片轮播_手把手教你用纯css3实现轮播图效果实例
  15. 新《古惑仔》 —— 神转折大赛
  16. AUTODESK 卸载工具,完美彻底卸载清除干净autodesk各种软件残留注册表和文件
  17. 用计算机浮点数表示法计算,计算机组成原理第4章浮点数运算方法ppt课件
  18. P4408 [NOI2003] 逃学的小孩(树的直径)
  19. 【翻译】CEDEC2014跨世代多平台并行开发PS4版如龙维新开发的一年
  20. 获取页面高度 height scroll

热门文章

  1. 004_FastDFS分布式添加多个tracker
  2. 063_提升Hoisting
  3. 004_淡入淡出效果
  4. linux控制流程,Linux-流程控制:for 循环
  5. 升级bios_ThinkPad如何升级BIOS?我来教你!
  6. python实现冒泡排序视频_Python实现冒泡排序算法的完整实例
  7. ftp 服务器的目录文件是否存在,ftp服务器的目录文件是否存在
  8. 交换机调试工具_工业以太网交换机安装流程图解
  9. linux课程教学设计,《LINUX操作系统》课程整体教学设计.doc
  10. 一周一论文(翻译 总结)—— [DSN 18] RDMC A Reliable RDMA Multicast for Large Objects :一个面向大型对象的可靠的RDMA广播框架