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

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介:

相关理论解析:

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

clip_image002

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

clip_image004

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

clip_image006

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

clip_image008

二、 构建从域名服务器

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

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

clip_image010

将tpye 设置为slave类型

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

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

clip_image012

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

clip_image014

clip_image016

clip_image018

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

clip_image020

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

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

clip_image022

clip_image024

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

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

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

clip_image026

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

clip_image028

clip_image030

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

clip_image032

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

clip_image034

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

clip_image036

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

clip_image038

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

clip_image040

clip_image042

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

clip_image044


本文转自凌激冰51CTO博客,原文链接:http://blog.51cto.com/dreamfire/1094790,如需转载请自行联系原作者

相关文章
|
NoSQL Redis Docker
【Redis从头学-12】Redis主从复制和读写分离的多种部署方式解析(普通方式、Docker搭建方式、Docker-Compose搭建方式)下
【Redis从头学-12】Redis主从复制和读写分离的多种部署方式解析(普通方式、Docker搭建方式、Docker-Compose搭建方式)
241 0
|
存储 NoSQL Redis
【Redis从头学-12】Redis主从复制和读写分离的多种部署方式解析(普通方式、Docker搭建方式、Docker-Compose搭建方式)上
【Redis从头学-12】Redis主从复制和读写分离的多种部署方式解析(普通方式、Docker搭建方式、Docker-Compose搭建方式)
213 0
|
域名解析 缓存 网络协议
DNS服务器和selinux超详解
DNS服务器和selinux超详解
166 0
|
网络协议

相关产品

  • 云解析DNS
  • 推荐镜像

    更多
    下一篇
    无影云桌面