相关理论解析:
1、DNS的类型,master/slave架构;
Master 这种类型的DNS的这个配置文件中,包括所有主机的主机名等相关信息,一般是我们手动添加修改的,设置完之后我们要重启服务的才能读取到master库里面的数据内容;一般我们在做DNS的时候都是指定这样的数据库类型的,同时也要能保证把数据的内容提供给slave服务器,这个需要我们设置下。在配置文件中。
Slave 这中类型的数据必须要有master才可以使用,一般情况下都是一主一备的,一个master一个slvae,如果我们都是有master那么我们需要添加修改的时候需要两台同时添加、修改、要是不小心修改错误,很尴尬的,如果我们做成master/slave那么我们直接修改master即可。但是在这里我们牵扯到一个优先级的问题,不管是master还是slave,要保证数据的内容完全一致。
2、 Master/slave数据的同步过程;
首先slave的数据是从master上来读取的,但是master数据更新之后怎么通知slave的呢?有两种方式来告诉slave数据库的。一种是master主动告知,在master修改数据内容之后,并且加大数据库的序列号,然后重启服务之后master会告知slave的。第二是slvae主动去找master,当发现master的数据和自己的不一样的时候,slave会更新的。
1、 测试环境;
Master Server: 192.168.100.102
Slave Server: 192.168.100.103
关于DNS基本搭建过程请参考http://www.rsyslog.org/p239.html
一、 构建主域名服务器
修改主域名服务器全局配置文件named.conf,在options中插入一行 allow-transfer { 192.168.100.103;};意思是允许192.168.100.103主机下载该区域的地址数据库。
修改辅助配置文件,这个平时根据工作需求修改,一般不修改的,这里为了方便测试,可以将有效地址解析记录的默认缓存时间设置成5分钟 将无效地址解析记录(该数据库中不存在的地址)默认缓存时间设置为5分钟
修改完成之后,重启服务,主域名服务器也就配置完毕了。完了记得验证下主域名服务器是否能够正常工作。这里不做测试参考以上文档。
二、 构建从域名服务器
从域名服务器作为主域名服务器的冗余备份,可以与主域名服务器一起,同时提供本域内主机名与IP地址的解析,从域名服务器的地址数据库需要从主域名服务器中定期更新。
建立从域名服务器的辅助区域配置文件
将tpye 设置为slave类型
正向区域和反向区域的名称保持和主DNS的一致,不过文件路径要放到/var/named/slaves下
加上主DNS的IP地址 masters { 192.168.100.102;};
默认情况下,可以看到从DNS slaves目录下是没有数据的。重新启动named服务,发现里面有了主DNS的区域数据库信息。
我们也可以查看从域名服务器的日志信息,发现有了很多从域名服务器从主域名服务器获取区域数据库的信息,其实是根据 主域名服务器的序列号变更获取的。到这里从域名服务器搭建完成。
三、 测试从域名服务器是否能够提供DNS解析
修改PC机DNS为从域名服务器IP地址
四、 下面我们看看在selinux开启enforcing模式的情况下,从DNS是否能够正常工作。
通过实验开启的情况下,从DNS是可以工作的。这里面存在个问题,如果重新创建个文件取代slaves,就不可以正常工作了。如下
创建dnsslaves目录替代slaves目录,然后将权限设置的跟slaves一样
修改从DNS的辅助区域配置文件,将正向反向区域数据库地址指向 dnsslaves目录
修改主DNS的辅助区域配置文件的序列号,官方一般要求加1即可,其实只要变化就行了。
启动从DNS服务,发现 dnsslaves目录下没有数据,这是为什么呢。
查看日志,发现是权限文件,我们知道 dnsslaves的权限跟slaves是一模一样的,哪问题肯定出在selinux上了。
试着将selinux模式更改为permissive模式,重新启动从DNS服务,发现dnsslaves目录下有了主DNS的区域数据库文件。可以看出确实是selinux所致,那么如何设置selinux,让从DNS在selinux的enforcing模式下也可以工作呢。
为了测试先删除刚才生成的区域数据库文件,然后通过 man named_selinux查看 named在selinux的配置文件,发现有一条跟辅助区域配置文件的目录存放地址有关
可以通过getsebool –a命令查看 这个参数是否开启,模式是off的,通过以上提示开启这个参数就可以了。然后将selinux模式设置为enforcing模式,重新启动从DNS服务,发现dnsslaves目前下有了主区域配置文件信息。
本文转自凌激冰51CTO博客,原文链接:http://blog.51cto.com/dreamfire/1094790,如需转载请自行联系原作者