rxysg

一.简介

1.背景介绍
实际环境中为了避免单点故障,DNS服务器是由一组服务器组成,每一个服务器上都有若干个区域,不同服务器上的相同区域分为主和从两种角色。由于正向和反向是不同的区域,所以多台服务器间的相同区域可以互为主从或者一主多从,下图为例进行演示。

2.DNS主从原理
下图所示为主辅DNS服务器数据同步的过程,首先master DNS服务器每次修改完成并重启服务后,将传送notify给所有的slave DNS服务器。slave DNS服务器将查询master服务器的SOA记录,master DNS服务器收到请求后将SOA记录发送给Slave DNS服务器,Slave DNS服务器收到后同时对比查询结果中的serial值,如果serial值不大于本机的话将结束数据同步过程;但是如果serial值大于本机的话,slave DNS将发送zone transfer请求要求(AXFR/IXFR)。Master响应zone transfer请求并传送结果,直到整个slave更新完成。

3.DNS误区
DNS主从之间只会进行解析记录的同步,当主DNS出现故障时,从DNS不会把ip切换为主DNS的ip。可以在客户端填写多个DNS地址,这样达到冗余的作用。

二.部署

1.主从都安装
yum -y install bind bind-chroot bind-utils

安装包作用
bind : 提供了域名服务的主要程序及相关文件
bind-utils : 提供了对DNS服务器的测试工具程序(如:nslookup、dig etc)
bind-chroot : 为bind提供一个伪装的根目录以增强安全性;

2.修改主配置文件
vim /etc/named.conf

options {
    listen-on port 53 { any; }; 
    #listen-on-v6 port 53 { ::1; };  #注销或删除
    allow-query     { any; }; #允许所有ip访问
   forwarders { 219.141.136.10; }; #用于缓存转发,可不写
}

3.在文件行尾添加
cd /etc
cp -p named.rfc1912.zones named.rfc1912.zones.bak
vim named.rfc1912.zones

zone "rzsj.com" IN { #设置正向DNS区域名称
    type master;
    file "rzsj.com.zone"; /#设置对应的正向区域地址数据库文件
    allow-transfer {192.168.18.41;}; #允许哪些从dns下载数据
};

4.检测文档,没有消息就是好消息
named-checkconf

5.建立区域文件,正向解析配置文件:
cd /var/named
cp -p named.localhost rzsj.com.zone
vim rzsj.com.zone

$TTL 1D
@       IN SOA  @ root (
                                        0       ; serial #每次同步要手动+1
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns1.rzsj.com. #一定带.
ns1     A       192.168.1.184
ns2     A       192.168.1.185

6.重新加载配置
systemctl restart named systemctl enable named`

7.进行测试dns是否运行
nslookup ns2.rzsj.com 192.168.1.184

8.修改从配置文件
vim /etc/named.conf

options {
    listen-on port 53 { any; };
    #listen-on-v6 port 53 { ::1; };  #注销或删除
    allow-query     { any; };
}

9.行尾添加
cd /etc
cp -p named.rfc1912.zones named.rfc1912.zones.bak
vim named.rfc1912.zones

zone "rzsj.com" IN {
        type slave; #设置为从
        masters { 192.168.1.184; }; #主dns地址
        file "slaves/rzsj.com.zone"; #放到slaves下
};

10.检测配置,没反应就正常
named-checkconf

11.重新加载配制,查看是否为空
ls /var/named/slaves/
systemctl restart named
systemctl enable named

看是否有文件了
ls /var/named/slaves/

12.看是否同步了解析记录
nslookup ns1.rzsj.com 192.168.1.185

三.维护

添加区域文件

1.主DNS操作,将例子区域复制一下,变动一下即可
vim /etc/named.rfc1912.zones

zone "baidu.com" IN {
        type master;
        notify yes;
		#允许哪个从DNS复制信息
        also-notify { 192.168.1.101; };
        allow-update { none; };
        file "baidu.com.zone";
        allow-transfer { 192.168.1.101; };
};

2.建立解析文件,每添加一条记录,将serial记录值+1,下次为4
vim /var/named/baidu.com.zone

$TTL 1D
@       IN SOA  @ root (
                                        3       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns1.baidu.com.
ns1     A       192.168.1.100
ns2     A       192.168.1.101

3.从DNS操作,复制区域文件,谈些主服务的地址
vim /etc/named.rfc1912.zones

zone "baidu.com" IN {
        type slave;
        masters { 192.168.1.100; };
        file "slaves/rzsj.net.zone";
//      allow-transfer { none; };
        allow-update { none; };
};

4.均操作
systemctl restart named

5.指定dns服务器并测试解析结果是否正确
nslookup ns1.baidu.com 192.168.1.100
nslookup ns1.baidu.com 192.168.1.101

添加新记录

1.修改主配置文件,首先将serial的值+1 否则不会同步
vim /var/named/rzsj.com.zone

2.在末尾增加解析记录,ns2为主机名开头 192.168.1.185为主机ip地址

ns2     A       192.168.1.185

3.重启
systemctl restart named

分类:

技术点:

相关文章: