如何搭建主从架构的 DNS 服务器

前面我们介绍了如何搭建 DNS 服务器以及如何往 DNS 服务器添加反向解析记录,本文将在前面的基础上告诉大家如何搭建主从架构的 DNS 服务器。

DNS 服务器集群架构

DNS 服务器通常以集群的方式提供服务,一台主服务器和多台从服务器,从服务器启动时从主服务器进行解析库的完全同步,运行时以一定的时间间隔进行增量刷新同步,从而保证记录的一致性,若从服务器超过一定的时间无法与主服务器同步刷新则从服务器记录会过期失效,无法提供解析服务。

动手前的准备

为方便讲解起见,我们以搭建一主一从的 DNS 服务器集群为例进行介绍。为搭建集群,需要准备两台 centos 的机器,我们可以通过腾讯云开发者实验室领取免费实验机器。假设我们领取到的机器分别为主服务器(外网 IP 为182.254.232.147/内网 IP 为10.135.45.55),从服务器(外网 IP 为123.207.40.140/内网 IP 为10.186.8.20),现在我们可以开始动手实践了。

部署 DNS 服务

在两台备用机器上分别通过如下步骤部署 DNS 服务,详细部署过程可以参考快速搭建 DNS 服务器

  • 通过 yum 命令安装 BIND 软件包:yum install -y bind*;
  • 执行 systemctl start named.service 启动 DNS 服务;

配置主 DNS 服务器

  • 修改 /etc/named.conf 配置文件,将监听 IP 修改为主服务器 IP 地址10.135.45.55,allow-query 取值修改为 any,如截图所示;
  • 修改 /etc/named.rfc1912.zones 配置文件,将正向解析域和反向解析域的配置加入配置文件,其中 type 为 master 表示主服务器,allow-transfer 取值为从服务器 123.207.40.140,表示允许指定的从服务器同步 zone;
zone "qq.com" IN {
        type master;
        file "data/qq.com.zone";
        allow-transfer {123.207.40.140;};
};

zone "8.168.192.in-addr.arpa" IN {
        type master;
        file "data/192.168.8.zone";
        allow-transfer {123.207.40.140;};
};
  • 新增 /var/named/data/qq.com.zone 配置文件,配置内容如下所示;
$TTL 1D
@       IN SOA  dns1.qq.com. webmaster.qq.com. (
                                        20181124      ; serial
                                        30S      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@                       IN      NS      dns1.qq.com.
dns1.qq.com.          IN      A       182.254.232.147
@                       IN      NS      dns2.qq.com.
dns2.qq.com.          IN      A       123.207.40.140
www.qq.com.           IN      A       192.168.8.8
  • 新增 /var/named/data/192.168.8.zone 配置文件,配置内容如下所示;
$TTL 1D
@       IN SOA  dns1.qq.com. webmaster.qq.com. (
                                        20181124      ; serial
                                        30S      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@               IN      NS      dns1.qq.com.
@               IN      NS      dns2.qq.com.
8              IN      PTR     www.qq.com.
  • 执行命令 systemctl  restart  named.service,重启主 DNS 服务器;

配置从 DNS 服务器

  • 修改 /etc/named.conf 配置文件,将监听 IP 修改为从服务器 IP 地址10.186.8.20,allow-query 取值修改为 any,如截图所示;
  • 修改 /etc/named.rfc1912.zones 配置文件,将正向解析域和反向解析域的配置加入配置文件,其中 type 为 slave 表示从服务器,allow-transfer 取值为主服务器 IP 182.254.232.147,表示从主服务器同步 zone;
zone "qq.com" IN {
        type slave;
        file "data/qq.com.zone";
        masters { 182.254.232.147; };
        allow-transfer {182.254.232.147;};
};

zone "8.168.192.in-addr.arpa" IN {
        type slave;
        file "data/192.168.8.zone";
        masters { 182.254.232.147; };
        allow-transfer {182.254.232.147;};
};
  • 执行命令 systemctl  restart  named.service,重启从 DNS 服务器;

验证 DNS 服务器有效性

  • 在从服务器上执行命令 ll /var/named/data/,发现从主 DNS 服务器同步了两个 zone 配置文件;
  • 通过修改 PC 电脑的 /etc/resolv.conf 配置文件指定 nameserver,将 PC 的默认 DNS 服务器设置为我们搭建的 DNS 服务器;
  • 通过 PC 电脑执行命令 dig -t a www.qq.com 查看解析情况,如我们所预期的,域名www.qq.com 被解析到8.8.8.8,同时 qq.com的权威服务器变成了 dns.qq.com(指向 IP 为123.207.8.164);
  • 修改主服务器正向解析域和反向解析域的配置中 www.qq.com 对应的 IP,等待30秒后,通过 dig @182.254.232.147 -t a www.qq.com 查看从服务器的解析情况,可以看到主服务器的修改已经增量同步到从服务器;

到目前为止,我们已经可以构建一套完整的 DNS 服务,具备主从架构和正反向域名解析能力,我们也从中详细了解了 域名解析的系列知识点。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏JAVA烂猪皮

Zookeeper的简介和应用场景

Zookeeper是一个分布式协调服务;就是为用户的分布式应用程序提供协调服务 A、zookeeper是为别的分布式程序服务的 B、Zookeeper本身就...

1331
来自专栏cloudskyme

搭建hadoop1.2集群

环境准备 我使用的是vmware workstation,首先安装ubuntu 12.04,安装完成后通过vmware的clone,clone出两个虚机,设置的...

3053
来自专栏月牙寂

k8s源码分析-----kubectl(1)api.RESTMapper

第一时间获取文章,可以关注本人公众号 月牙寂道长 yueyajidaozhang

4156
来自专栏java思维导图

单点登录(SSO),从原理到实现

如果你觉得文字太长,可以直接先看文末思维导图总结,小编已为你整理了作者的主要观点,供你回顾与快速阅读~

2.3K6
来自专栏vue学习

31、地址新增 — 定义数据结构与获取方式

(1)让我们进入addressEdit.vue页面填写一条地址,ok,现在假设你已经填写完毕。 (2)这个时候我们点击保存按钮且应该为这个按钮添加一个save...

1063
来自专栏北京马哥教育

如何使用logrotate管理Linux的日志文件

日志文件包含系统内部执行情况的有用信息。在排除故障或服务器性能分析时往往需要检查日志。对于繁忙的服务器,日志文件可能会在短时间内变得非常大。这将成为一个问题,...

3294
来自专栏一个会写诗的程序员的博客

maven 依赖jar包时版本冲突的解决:mvn dependency:tree -Dverbose

maven 依赖jar包时版本冲突的解决: mvn dependency:tree -Dverbose

1.6K2
来自专栏云计算教程系列

使用Apache或Nginx加密Tomcat流量

Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Serv...

1626
来自专栏weixuqin 的专栏

Django 使用第三方服务发送电子邮件

1314
来自专栏前端之心

如何为 DNS 服务器添加反向解析记录

前一篇文章我们介绍了如何快速搭建 DNS 服务器,本文将向大家介绍如何向 DNS 服务器添加反向解析记录,支持将指定的 IP 解析到对应的域名。

1.3K5

扫码关注云+社区

领取腾讯云代金券