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主从服务器的实验搭建。