Linux网络服务教程——DNS域名系统服务之DNS主从同步实验

主从 DNS 服务器

 

上一节讲了关于DNS基本功能的搭建,本节讲一下DNS主从实验的搭建。(回顾上一节)

什么叫主从?所谓的主从指的是有两台服务器,其中一台用来进行用户的请求处理以及解析的数据更新,另外一台同样进行用户的请求处理,作为一个备用的机器。从服务器的主要作用是为了减轻主服务器的压力,分摊主服务器的压力,其次呢还有备份的功能,还能帮助主服务器进行备份,当主服务器出现故障的时候,我们的数据如果丢失了的话,从服务器还有另外一份。这就是主从服务器的原因和作用。

 

以下主DNS服务器简称主服务器,从DNS服务器简称从服务器。

 

这次实验由于要做DNS的主从,所以需要的服务器的数量可能稍微要多一些。这里准备四台服务器。

 

 

先关闭服务器和客户机上的防火墙和 SELinux

实验目的:
  减轻主服务器的压力以及对主服务器进行数据备份
实验准备:
  一台主服务器、一台从服务器、一台测试机、一台网站服务器(可选)

  注:操作系统为CentOS-6.10版本。
搭建过程:
  1. 搭建主服务器步骤:
    a. 安装 bind 软件
    b. 主配置文件的修改
    c. 区域配置文件的修改
    d. 配置数据文件
     正向数据文件
     反向数据文件(可选做)
    e. 启动 named 服务
  注意:主 DNS 的区域配置文件中 allow-updata 参数添加从服务器 IP 地址。

  2. 搭建从服务器步骤:
    a. 安装 bind 软件

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

    c. 配置区域文件(/etc/named.rfc1912.zones)

  注意:从配置文件的类型需要修改为 slave,并且需要填写主服务器的地址,如下

     type slave;
     masters { 192.168.0.10; }; #大括号两侧留有空格
     文件保存位置修改为 file “slaves/google.localhost”;
    d. 重启服务
    e. 在测试机上填写从服务器的 IP,并使用 nslookup 测试

 

 

现在开始实验,

先来安装一下软件:

web服务器:yum -y install httpd

主服务器:yum -y install bind

从服务器:yum -y install bind

 

web服务器安装完软件之后,记得让apache能够进行访问网站的页面,以及要让apache处于开启的状态

先去编辑apache的默认网页

vim /var/www/html/index.html

内容为“master-slave.org”,保存退出。

启动服务:service httpd start

设置开机自启:chkconfig httpd on

 

 

主服务器,首先修改主配置文件:

vim /etc/named.conf

options {
        listen-on port 53 { 192.168.66.10; };    #这次写本机IP
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { localhost; };
        recursion yes;
    ......

保存退出。

 

再来改区域配置文件:

vim /etc/named.rfc1912.zones

保留一个模板,其他删掉。

zone "google.com" IN {  #改为要解析的域
        type master;
        file "google.localhost";  #为了好区分,修改数据配置文件名
        allow-update { 192.168.66.20; };  #填写从服务器的IP地址
};

保存退出。

 

然后再来修改数据配置文件:

cd  /var/named/

先通过正向模板来复制成正向配置文件:

cp -a named.localhost google.localhost

vim google.localhost

$TTL 1D
@       IN SOA  google.com. rname.invalid. (
                                        20200202        ; serial  #写1或者写时间。
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns.google.com.    #只要搭建DNS服务器,正反向数据配置文件里面必须得有NS记录。
dns     A       192.168.66.10    #一定得有一个对于DNS的A记录,将它解析成本机IP地址
www     A       192.168.66.30

保存退出。

 

启动主服务器:service named start

没有问题。

 

 

然后再来搭建从服务器:

首先修改主配置文件:

vim /etc/named.conf

options {
        listen-on port 53 { 192.168.66.20; };  #本机IP
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { any; };
        recursion yes;

保存退出。

 

再来修改区域配置文件:

vim /etc/named.rfc1912.zones

同样保留一个正向模板,其他删掉。

zone "google.com" IN {
        type slave;    #填写类型slave
        masters { 192.168.66.10; };  #新加一行,填写关于master的地址。注意格式:大括号两侧留空格,大括号里面的结尾用分号,大括号外面的结尾用分号。
        file "slaves/google.localhost";  #建议修改区域配置文件时,这个数据配置文件的位置最好人为的指一下
        allow-update { none; };
};

保存退出。

 

数据配置文件还用操作吗?不用,为什么?我们现在是从服务器,从服务器不用人为的去生成,默认的就会保存在slaves下一份。

[root@localhost ~]# cd /var/named/
[root@localhost named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves

建议修改区域配置文件时,数据配置文件的位置最好人为的指一下,因为我们的主配置文件里面在声明配置文件位置时是在/var/named下,如果刚才直接写google.locaohost的话,那它可能会保存到/var/named下了,而写成slaves/google.localhost,那就会保存到/var/named/slaves下。

 

在启动从服务器之前,先去slaves目录下看一下

[root@localhost ~]# cd /var/named/slaves/
[root@localhost slaves]# ls
[root@localhost slaves]# 

里面是空的。

然后启动一下从服务器,看一下数据配置文件有没有生成

[root@localhost slaves]# service named start
Generating /etc/rndc.key:                                  [确定]
启动 named:                                               [确定]
[root@localhost slaves]# ls
google.localhost

有了。

 

 

接下来验证结果。

 

客户机测的时候为了测出结果,要让客户机所使用的DNS服务器是从服务器而不是主服务器,所以填DNS的时候填从服务器的IP地址。

setup

 

 重启网卡

 service network restart

 

先用nslookup测试一下

[root@localhost ~]# nslookup www.google.com
Server:        192.168.66.20
Address:    192.168.66.20#53

Name:    www.google.com
Address: 192.168.66.30

用curl测试一下

[root@localhost ~]# curl www.google.com
master-slave.org
[root@localhost ~]# 

 

再来测一下如果主服务器停止了

[root@localhost ~]# service named stop
停止 named:                                               [确定]
[root@localhost ~]# 

那从服务器还有用吗,看一下

[root@localhost ~]# nslookup www.google.com
Server:        192.168.66.20
Address:    192.168.66.20#53

Name:    www.google.com
Address: 192.168.66.30

照样没有问题,为什么?主从服务器相对独立,在一定时间内,从服务器不需要从主服务器上进行数据同步,超过一定时间才进行数据同步,一般默认是一天同步一次嘛,若超时则每一小时尝试一次嘛等等,数据配置文件的时间周期之前是讲过了的。

 

以上就是DNS主从服务器的实验搭建。

 

posted @ 2020-02-14 14:00  hkxxf  阅读(382)  评论(0编辑  收藏  举报