背景介绍
实际环境中为了避免单点故障,DNS服务器是由一组服务器组成每一个服务器上都有若干个区域,不同服务器上的相同区域分为主和从两种角色。由于正向和反向是不同的区域,所以多台服务器间的相同区域可以互为主从或者一主多从,本处以右图为例进行演示。
DNS服务器的主从复制
1.之前已经在172.16.10.10/24主机上创建了contoso.com正反向解析区域并分别设置为主服务器,对于从服务器,只需要在配置文件中添加解析区域且zone名称必须和主服务器的zone名称保持一致,他会自动去主服务器上同步区域解析库文件。此处的masters是固定用法,无论你的master角色的主机有多少个
之所以要将区域解析库文件放到/var/named/slave目录下,原因是bind程序以named用户身份运行,而/var/named目录对于named用户没有写权限,所以bind程序创建了一个专门的slaves目录来方便slave主机存放同步的区域解析库文件
需要注意的是:要进行同步的从服务器必须在主服务器上已经建立了NS记录,并且A记录也建立了正确的对应关系(即主服务器授权允许从服务器进行同步)。
添加完解析区域后,使用rndc reload重新装载,可以看到他已经进行同步。
主从复制并不一定是非要等到同步时间周期后才进行更新,如果手动修改了区域解析库文件后,手动将当前序列号+1,使用rndc reload重新装载后他会立即进行同步。
DNS的区域转发
如下图所示:当contoso.com域存在一个blog.contoso.com的子域,controso.com域中的客户如果想访问ark.blog.contoso.com时,他首先会请求本区域的DNS服务器,由于本区域的DNS服务器有对blog.contoso.com子域的授权记录,所以他会直接找到子域的DNS服务器从而获得ark.blog.contoso.com的IP地址;而子域中的客户如果要访问父域中的www.contoso.com时,同样是先请求本区域的DNS服务器,但是子域中没有父域的DNS服务器记录,所以子域DNS服务器会向过根发起请求,并通过一级级的迭代查询最终获得www.contoso.com的IP地址。
这样对服务器带来不必要的消耗,我们子域希望在解析父域时可以使用父域上的DNS服务器而不是直接去找根。以下就介绍如何设置DNS的转发。
1.首先要将需要将contoso.com域和blog.contoso.com域的DNS都配置为缓存DNS服务器,需要注意的是:dnssec是一种安全的DNS传输机制,他通过彼此间的密钥来防止DNS被污染,这里需要改为no,即使注销掉他默认值也为yes。
2.父域DNS服务器只需要创建自己的zone,并且在区域解析数据库中指明子域的DNS服务器(即授权)即可。
3.因为子域的DNS服务器在父域中有指向,所以父域可以解析到子域的ark.blog.contoso.com地址(此时子域的DNS服务器必须能够正常提供服务,否则无法解析,在/var/log/message记录中提示无法与子域DNS服务器通信)。
5.在子域DNS服务器配置文件/etc/named.rfc912.zones中不仅要创建自己的zone,还要创建父域的zone,转发方式可以为first或only(first表示先转发,转发不成功再递归;only表示只转发),此处以only为例,并指明转发到的DNS服务器地址。
6.在子域DNS服务器主配置文件/etc/named.conf的options全局配置段中,将所有地址请求都转发到互联网上的DNS服务器,由于在子域中明确定义了contoso.com和blog.contoso.com,所以局部转发的优先级高于全局转发。
7.使用子域的DNS服务器解析www.contoso.com可以看到它是通过转发到父域DNS服务器完成的地址解析。
本文出自 “兔样兔森破” 博客,请务必保留此出处http://arkling.blog.51cto.com/2844506/1923882
原文地址:http://arkling.blog.51cto.com/2844506/1923882