DNS-BIND构建主从DNS服务器实现负载均衡和冗余备html
------selinux与DNS并存linux
另外一个博客地址:www.rsyslog.org数据库
相关理论解析:缓存
一、DNS的类型,master/slave架构;服务器
Master 这种类型的DNS的这个配置文件中,包括全部主机的主机名等相关信息,通常是咱们手动添加修改的,设置完以后咱们要重启服务的才能读取到master库里面的数据内容;通常咱们在作DNS的时候都是指定这样的数据库类型的,同时也要能保证把数据的内容提供给slave服务器,这个须要咱们设置下。在配置文件中。架构
Slave 这中类型的数据必需要有master才可使用,通常状况下都是一主一备的,一个master一个slvae,若是咱们都是有master那么咱们须要添加修改的时候须要两台同时添加、修改、要是不当心修改错误,很尴尬的,若是咱们作成master/slave那么咱们直接修改master便可。可是在这里咱们牵扯到一个优先级的问题,不论是master仍是slave,要保证数据的内容彻底一致。负载均衡
二、 Master/slave数据的同步过程;ide
首先slave的数据是从master上来读取的,可是master数据更新以后怎么通知slave的呢?有两种方式来告诉slave数据库的。一种是master主动告知,在master修改数据内容以后,而且加大数据库的序列号,而后重启服务以后master会告知slave的。第二是slvae主动去找master,当发现master的数据和本身的不同的时候,slave会更新的。测试
一、 测试环境;大数据
Master Server: 192.168.100.102
Slave Server: 192.168.100.103
关于DNS基本搭建过程请参考http://www.rsyslog.org/p239.html
1、 构建主域名服务器
修改主域名服务器全局配置文件named.conf,在options中插入一行 allow-transfer { 192.168.100.103;};意思是容许192.168.100.103主机下载该区域的地址数据库。
修改辅助配置文件,这个平时根据工做需求修改,通常不修改的,这里为了方便测试,能够将有效地址解析记录的默认缓存时间设置成5分钟 将无效地址解析记录(该数据库中不存在的地址)默认缓存时间设置为5分钟
修改完成以后,重启服务,主域名服务器也就配置完毕了。完了记得验证下主域名服务器是否可以正常工做。这里不作测试参考以上文档。
2、 构建从域名服务器
从域名服务器做为主域名服务器的冗余备份,能够与主域名服务器一块儿,同时提供本域内主机名与IP地址的解析,从域名服务器的地址数据库须要从主域名服务器中按期更新。
创建从域名服务器的辅助区域配置文件
将tpye 设置为slave类型
正向区域和反向区域的名称保持和主DNS的一致,不过文件路径要放到/var/named/slaves下
加上主DNS的IP地址 masters { 192.168.100.102;};
默认状况下,能够看到从DNS slaves目录下是没有数据的。从新启动named服务,发现里面有了主DNS的区域数据库信息。
咱们也能够查看从域名服务器的日志信息,发现有了不少从域名服务器从主域名服务器获取区域数据库的信息,实际上是根据 主域名服务器的序列号变动获取的。到这里从域名服务器搭建完成。
3、 测试从域名服务器是否可以提供DNS解析
修改PC机DNS为从域名服务器IP地址
4、 下面咱们看看在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目前下有了主区域配置文件信息。
若是你想了解更多有关selinux信息,请访问 http://www.rsyslog.org/p239.html