快速搭建 DNS 服务器

2019-11-26 12:12:49 浏览数 (1)

前面几篇文章我们介绍了域名解析,介绍了如何通过 dig 命令洞察 DNS 解析的过程,并从 DNS 协议的层面分析了全球为什么只有13组根域名服务器,本文向大家介绍如何自己动手快速搭建一组主从架构的 DNS 服务器。

动手前的准备

搭建 DNS 服务器需要准备一台 centos 的机器,我们可以通过腾讯云开发者实验室领取免费的实验机器。假设我们领取到的机器的外网 IP 为123.207.8.164/内网 IP 为10.135.87.104(可以通过 ifconfig 查看),现在我们可以开始动手实践了。

安装 BIND 软件

BIND 是美国加利福尼亚大学伯克利分校开发的软件,是一套域名服务器软件包,该软件实现了 DNS 解析协议,可以在 Linux 系统上通过这个软件包来提供域名解析服务。

  • 查看 BIND 软件是否安装:rpm  -qa  |  grep  ^bind,若软件包不全或者不是最新,可以通过 yum 进行安装;
  • 通过 yum 命令安装 BIND 软件包:yum install -y bind*,安装成功后截图如下所示;
  • 启动 DNS 服务:systemctl start named.service(同时可以设置开机启动:systemctl enable named.service),启动成功后可以通过 netstat -npl|grep named 查看结果

从结果可以看到 named 进程是 BIND 软件的运行进程,提供 DNS 解析服务,可以同时支持 udp/tcp 两种协议,默认使用53端口,此外 named 进程同时监听了953端口,主要用于为远程管理工具提供控制通道。

修改 DNS 服务器配置

  • 修改 /etc/named.conf 配置文件,将监听 IP 修改为 10.135.87.104,allow-query 取值修改为 any,如截图所示;
  • 修改 /etc/named.rfc1912.zones 配置文件,将加入 zone 配置,这里我们以 qq.com 为例进行介绍,新增配置代码块如下所示,表示本 DNS 服务器包含 qq.com 域名的解析库;
代码语言:javascript复制
zone "qq.com" IN {
        type master;
        file "data/qq.com.zone";
};
  • 新增 /var/named/data/qq.com.zone 配置文件,配置文件的内容如下所示;
代码语言:javascript复制
$TTL 1D
@       IN SOA  dns.qq.com. webmaster.qq.com. (
                                        20191124      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@                       IN      NS      dns.qq.com.
dns.qq.com.           IN      A       123.207.8.164
www.qq.com.           IN      A       8.8.8.8
  • 通过命令 systemctl  restart  named.service 重启 DNS 服务器,通过 netstat -npl|grep named 截图如下所示;

验证 DNS 服务器有效性

  • 通过 PC 电脑执行命令 dig -t a www.qq.com 查看现网真实的 www.qq.com 的解析情况,结果如下图所示;
  • 通过修改 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),与我们搭建的 DNS 服务器配置一致;
  • 通过命令 nslookup www.qq.com 验证 www.qq.com 域名的解析结果,如图所示;

至此,我们完成了简单 DNS 服务器的搭建,支持对域名 www.qq.com 进行正向解析,即将域名解析为 IP。

0 人点赞