天天看点

DNS的主从架构、子域委派、转发器

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

主从dns服务器:(主辅)

需要注意的细节:

1.主服务器和辅助服务器都是域级别的概念;

2.必须保证主辅服务器之间的网络通信的顺畅以及时间同步;

3.为了确保所有的名称服务器都能被识别和使用,需要在区域数据库中为所有的名称服务器添加ns资源记录;

4.区域数据库中每条ns资源记录都必须有a记录与之对应;

5.从服务器上可以默认将复制而来的数据库文件保存至/var/name/slaves目录中;

6.在主服务器上应该通过访问控制指令允许从服务器进行区域传送;同时从服务器要指定主服务器;

在架构之前先保证主从服务器的时间同步:

1.两台服务器可向网络中的时间服务器进行同步;

示例;

~]# ntpdate cn.pool.ntp.org

主从服务器的架构示例:

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)能够从当前服务器进行区域传送

};

心得体会:

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服务器发送来的解析查询请求

dns转发器:

全局转发:

1.定义:对于凡是不能由本服务器管理(处理)的域的请求,全部以转发的方式由指定的服务器进行递归查询;

2.配置位置:在bind的主配置文件(/etc/named.conf)的全局配置段(options)

为什么需要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)

子域委派授权:

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

子域委派授权与转发器的比较:

1.子域委派授权实际上是为客户端提供迭代查询机制;

2.转发器实际上是为客户端提供递归查询机制;

3.因为两者都不是直接给客户端返回dns的解析结果,都是通过第三方来"辅助"完成解析,所以得到的答案都是非权威的;

给定三台服务器进行测试:

子域委派授权示例:

1.在a上做qhdlink.org这个域的配置,不做bj.qhdlink.org这个域的配置

named]# vim /etc/named.conf

zone "qhdlink.org" in {

file "qhdlink.org.zone";

allow-transfer { none; };

从子域授权委派示例可以看出:

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

继续阅读