DNS-BIND构建主从DNS服务器实现负载均衡和冗余备

                                  ------selinux与DNS并存

另一个博客地址:www.rsyslog.org

相关理论解析:

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、 测试环境;

RHEL6.3下如何解决DNS主从复制与selinux的并存问题_selinux影响DNS主从复制

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主机下载该区域的地址数据库。

RHEL6.3下如何解决DNS主从复制与selinux的并存问题_dns主从复制_02

修改辅助配置文件,这个平时根据工作需求修改,一般不修改的,这里为了方便测试,可以将有效地址解析记录的默认缓存时间设置成5分钟 将无效地址解析记录(该数据库中不存在的地址)默认缓存时间设置为5分钟

RHEL6.3下如何解决DNS主从复制与selinux的并存问题_dns主从复制_03

修改完成之后,重启服务,主域名服务器也就配置完毕了。完了记得验证下主域名服务器是否能够正常工作。这里不做测试参考以上文档。

RHEL6.3下如何解决DNS主从复制与selinux的并存问题_selinux设置_04

二、 构建从域名服务器

从域名服务器作为主域名服务器的冗余备份,可以与主域名服务器一起,同时提供本域内主机名与IP地址的解析,从域名服务器的地址数据库需要从主域名服务器中定期更新。

建立从域名服务器的辅助区域配置文件

RHEL6.3下如何解决DNS主从复制与selinux的并存问题_dns主从复制_05

将tpye 设置为slave类型

正向区域和反向区域的名称保持和主DNS的一致,不过文件路径要放到/var/named/slaves下

加上主DNS的IP地址 masters { 192.168.100.102;};

RHEL6.3下如何解决DNS主从复制与selinux的并存问题_selinux设置_06

默认情况下,可以看到从DNS slaves目录下是没有数据的。重新启动named服务,发现里面有了主DNS的区域数据库信息。

RHEL6.3下如何解决DNS主从复制与selinux的并存问题_linux系统_07

RHEL6.3下如何解决DNS主从复制与selinux的并存问题_selinux设置_08

RHEL6.3下如何解决DNS主从复制与selinux的并存问题_selinux设置_09

我们也可以查看从域名服务器的日志信息,发现有了很多从域名服务器从主域名服务器获取区域数据库的信息,其实是根据 主域名服务器的序列号变更获取的。到这里从域名服务器搭建完成。

RHEL6.3下如何解决DNS主从复制与selinux的并存问题_selinux影响DNS主从复制_10

三、 测试从域名服务器是否能够提供DNS解析

修改PC机DNS为从域名服务器IP地址

RHEL6.3下如何解决DNS主从复制与selinux的并存问题_selinux影响DNS主从复制_11

RHEL6.3下如何解决DNS主从复制与selinux的并存问题_dns主从复制_12

四、 下面我们看看在selinux开启enforcing模式的情况下,从DNS是否能够正常工作。

通过实验开启的情况下,从DNS是可以工作的。这里面存在个问题,如果重新创建个文件取代slaves,就不可以正常工作了。如下

创建dnsslaves目录替代slaves目录,然后将权限设置的跟slaves一样

RHEL6.3下如何解决DNS主从复制与selinux的并存问题_linux系统_13

修改从DNS的辅助区域配置文件,将正向反向区域数据库地址指向 dnsslaves目录

RHEL6.3下如何解决DNS主从复制与selinux的并存问题_linux基础_14

RHEL6.3下如何解决DNS主从复制与selinux的并存问题_selinux设置_15

修改主DNS的辅助区域配置文件的序列号,官方一般要求加1即可,其实只要变化就行了。

RHEL6.3下如何解决DNS主从复制与selinux的并存问题_linux基础_16

启动从DNS服务,发现 dnsslaves目录下没有数据,这是为什么呢。

RHEL6.3下如何解决DNS主从复制与selinux的并存问题_selinux设置_17

查看日志,发现是权限文件,我们知道 dnsslaves的权限跟slaves是一模一样的,哪问题肯定出在selinux上了。

RHEL6.3下如何解决DNS主从复制与selinux的并存问题_dns主从复制_18

试着将selinux模式更改为permissive模式,重新启动从DNS服务,发现dnsslaves目录下有了主DNS的区域数据库文件。可以看出确实是selinux所致,那么如何设置selinux,让从DNS在selinux的enforcing模式下也可以工作呢。

RHEL6.3下如何解决DNS主从复制与selinux的并存问题_linux系统_19

为了测试先删除刚才生成的区域数据库文件,然后通过 man named_selinux查看 named在selinux的配置文件,发现有一条跟辅助区域配置文件的目录存放地址有关

RHEL6.3下如何解决DNS主从复制与selinux的并存问题_selinux设置_20

RHEL6.3下如何解决DNS主从复制与selinux的并存问题_linux系统_21

可以通过getsebool –a命令查看 这个参数是否开启,模式是off的,通过以上提示开启这个参数就可以了。然后将selinux模式设置为enforcing模式,重新启动从DNS服务,发现dnsslaves目前下有了主区域配置文件信息。

RHEL6.3下如何解决DNS主从复制与selinux的并存问题_selinux设置_22

如果你想了解更多有关selinux信息,请访问 http://www.rsyslog.org/p239.html