linux系统中部署DNS从服务器

DNS域名解析服务的三种服务器:

主服务器:管理域名和IP地址的对应关系

从服务器:同步域名和IP地址的对应关系(缓解跟服务器压力,提高解析速度)

缓存服务器:转发域名和IP地址的对应关系(缓解根服务器压力,提高解析速度)

DNS从服务器要解决的问题:

从主服务器中获取指定的区域数据文件,起到备份同步和负载均衡的作用,缓解主服务器压力,提高DNS解析效率。

下面实验中要用到两台虚拟机,分别为PC1(主服务器)和PC2(从服务器)。IP分别为192.168.10.10和192.168.10.20。

1、查看主服务器和从服务器基本信息,测试联通性

[root@PC1 ~]# ifconfig | head -n 3  ## 查看主服务器IP
eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.10  netmask 255.255.255.0  broadcast 192.168.10.255
        inet6 fe80::20c:29ff:fe66:37f7  prefixlen 64  scopeid 0x20<link>
[root@PC2 ~]# ifconfig | head -n 3  ## 查看从服务器IP
eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.20  netmask 255.255.255.0  broadcast 192.168.10.255
        inet6 fe80::20c:29ff:fe25:bb3e  prefixlen 64  scopeid 0x20<link>
[root@PC2 ~]# ping -c 3 192.168.10.10  ## 测试从服务器和主服务器的连通性,没有问题
PING 192.168.10.10 (192.168.10.10) 56(84) bytes of data.
64 bytes from 192.168.10.10: icmp_seq=1 ttl=64 time=0.222 ms
64 bytes from 192.168.10.10: icmp_seq=2 ttl=64 time=0.202 ms
64 bytes from 192.168.10.10: icmp_seq=3 ttl=64 time=0.228 ms

--- 192.168.10.10 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 0.202/0.217/0.228/0.016 ms

2、主服务器上一实验已经配置好BIND服务,只需给从服务器配置好BIND服务

[root@PC2 network-scripts]# yum install bind-chroot  ## 安装bind服务
Loaded plugins: langpacks, product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Resolving Dependencies
--> Running transaction check
---> Package bind-chroot.x86_64 32:9.9.4-14.el7 will be installed
--> Processing Dependency: bind = 32:9.9.4-14.el7 for package: 32:bind-chroot-9.9.4-14.el7.x86_64
--> Running transaction check
---> Package bind.x86_64 32:9.9.4-14.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================================
 Package                Arch              Version                      Repository        Size
==============================================================================================
Installing:
 bind-chroot            x86_64            32:9.9.4-14.el7              rhel7             81 k
Installing for dependencies:
 bind                   x86_64            32:9.9.4-14.el7              rhel7            1.8 M

Transaction Summary
==============================================================================================
Install  1 Package (+1 Dependent package)

Total download size: 1.8 M
Installed size: 4.3 M
Is this ok [y/d/N]: y
Downloading packages:
----------------------------------------------------------------------------------------------
Total                                                         189 MB/s | 1.8 MB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : 32:bind-9.9.4-14.el7.x86_64                                                1/2 
  Installing : 32:bind-chroot-9.9.4-14.el7.x86_64                                         2/2 
rhel7/productid                                                        | 1.6 kB  00:00:00     
  Verifying  : 32:bind-9.9.4-14.el7.x86_64                                                1/2 
  Verifying  : 32:bind-chroot-9.9.4-14.el7.x86_64                                         2/2 

Installed:
  bind-chroot.x86_64 32:9.9.4-14.el7                                                          

Dependency Installed:
  bind.x86_64 32:9.9.4-14.el7                                                                 

Complete!
[root@PC2 network-scripts]# vim /etc/named.conf   ## 修改主配置文件,修改第11行和第17行
  1 //
  2 // named.conf
  3 //
  4 // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
  5 // server as a caching only nameserver (as a localhost DNS resolver only).
  6 //
  7 // See /usr/share/doc/bind*/sample/ for example named configuration files.
  8 //
  9 
 10 options {
 11         listen-on port 53 { any; };  ## 表示服务器上的所有的IP(网卡)均可提供DNS服务
 12         listen-on-v6 port 53 { ::1; };
 13         directory       "/var/named";
 14         dump-file       "/var/named/data/cache_dump.db";
 15         statistics-file "/var/named/data/named_stats.txt";
 16         memstatistics-file "/var/named/data/named_mem_stats.txt";
 17         allow-query     { any; };  ## 表示允许任何人使用DNS查询服务
 18 
 19         /* 
 20          - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
 21          - If you are building a RECURSIVE (caching) DNS server, you need to enable 
 22            recursion. 

修改从服务器网卡参数,将DNS服务改为本机的IP:

[root@PC2 Desktop]# systemctl restart named  ## 重启bind服务
[root@PC2 Desktop]# systemctl restart network  ## 重启网卡服务

2、在主服务器中修改区域配置文件,允许从服务器的更新请求,并重启bind服务程序

[root@PC1 ~]# vim /etc/named.rfc1912.zones 
zone "linuxprobe.com" IN {
type master;
file "linuxprobe.com.zone";
allow-update {192.168.10.20;};
};
zone "10.168.192.in-addr.arpa" IN {
type master;
file "192.168.10.arpa";
allow-update {192.168.10.20;};
};

[root@PC1 ~]# systemctl restart named  ## 重启服务,加入开机自启
[root@PC1 ~]# systemctl enable named
ln -s '/usr/lib/systemd/system/named.service' '/etc/systemd/system/multi-user.target.wants/named.service'

 3、修改从服务器的区域配置文件,指定将要去主服务器同步的信息

[root@PC2 ~]# vim /etc/named.rfc1912.zones  ## 修改从服务器的区域配置文件,删除原始的信息,按照如下进行编辑
zone "linuxprobe.com" IN {               ## 指定同步域名
type slave;                              ## 指定服务器类型为从服务器
masters { 192.168.10.10; };              ## 指定主服务器的IP
file "slaves/linuxprobe.com.zone";       ## 指定从主服务器同步数据的保存路径
};
zone "10.168.192.in-addr.arpa" IN {      ## 指定反向解析的IP
type slave;                              ## 指定服务器类型为从服务器
masters { 192.168.10.10; };              ## 指定主服务器的IP
file "slaves/192.168.10.arpa";           ## 指定从主服务器同步数据的保存路径
};
[root@PC2 ~]# systemctl restart named   ## 重启服务
[root@PC2 ~]# systemctl enable named    ## 设定开机自启
ln -s '/usr/lib/systemd/system/named.service' '/etc/systemd/system/multi-user.target.wants/named.service'
[root@PC2 ~]# cd /var/named/slaves/  ## 进入指定同步数据的目录检查是否同步,没有
[root@PC2 slaves]# ls

4、 清空主服务器防火墙

[root@PC1 ~]# iptables -F    ## 这一步很重要,不知道为啥

5、 在从服务器中重新启动bind服务,检查是否同步

[root@PC2 slaves]# systemctl restart named   ## 重启服务
[root@PC2 slaves]# ls  ## 检查,已经同步
192.168.10.arpa  linuxprobe.com.zone

6、测试从服务器的同步备份效果

[root@PC2 slaves]# nslookup   ## 测试从服务的备份效果,通过
> www.linuxprobe.com
Server:        192.168.10.20
Address:    192.168.10.20#53

Name:    www.linuxprobe.com
Address: 192.168.10.10
> 192.168.10.10
Server:        192.168.10.20
Address:    192.168.10.20#53

10.10.168.192.in-addr.arpa    name = www.linuxprobe.com.
> xxx.linuxprobe.com
Server:        192.168.10.20
Address:    192.168.10.20#53

Name:    xxx.linuxprobe.com
Address: 111.123.145.23
> 192.168.10.20
Server:        192.168.10.20
Address:    192.168.10.20#53

20.10.168.192.in-addr.arpa    name = mmm.xxxxxxxx.com.

以上测试说明了以上部署方法可以实现从服务器的备份效果。

原文地址:https://www.cnblogs.com/liujiaxin2018/p/14125276.html