1. 什么是主从DNS服务器
主从DNS服务器是指在网络中,部署了两台相同的DNS服务器,其中一台被称为主DNS服务器,另一台被称为从DNS服务器。主DNS服务器用来维护最新的DNS记录,而从DNS服务器从主DNS服务器中复制这些记录并缓存它们。这样,当主DNS服务器宕机或不可用时,从DNS服务器可以继续为用户提供服务,不会影响用户使用。
2. 环境准备
2.1 硬件环境
本教程使用两台CentOS 7虚拟机,每台机器配置1个CPU核心,1GB内存和10GB硬盘空间。
2.2 软件环境
CentOS 7
bind(DNS服务器软件)
3. 主从DNS服务器的搭建
3.1 安装bind软件
在这两台机器上都需要安装bind软件,使用以下命令:
yum install bind bind-utils -y
bind-utils是一个实用程序的集合,包含有关DNS查询和更新的工具,如dig、nslookup等。
3.2 配置主DNS服务器
在主DNS服务器上,我们需要修改named.conf文件,该文件包含有关bind的所有配置。使用以下命令打开named.conf文件:
vim /etc/named.conf
文件内容如下:
options {
listen-on port 53 { any; };
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;
allow-transfer { ipAddress; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
zone "example.com" IN {
type master;
file "example.com.zone";
allow-update { none; };
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
下面我们将一一解释上述文件中的配置:
options: 是DNS服务器的一些选项。
listen-on: 表示运行在哪个IP地址和端口上,任何IP地址都可以访问。
directory: 表示bind的数据文件目录。
dump-file: 表示生成cache文件的位置。
statistics-file: bind的统计文件的位置。
memstatistics-file: 表示bind的内存统计文件的位置。
allow-query: 表示哪些IP地址允许查询DNS。
recursion: 表示是否允许递归查询。
allow-transfer: 表示允许从DNS服务器传输数据的IP地址。
logging: 表示DNS服务器的日志文件位置。
zone: 表示DNS服务器的域和类型。
type hint: 服务器将使用其提供的根域名服务器。
type master: 本地服务器将是特定域名的主服务器。
file: bind的数据文件的位置。
allow-update: 表示允许更新的IP地址。
include: 表示引用其他配置文件的位置。
下面我们需要创建DNS数据文件,使用以下命令:
vim /var/named/example.com.zone
输入以下内容:
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
1001 ; Serial
1H ; Refresh
1M ; Retry
1W ; Expire
3H ) ; Minimum TTL
@ IN NS ns1.example.com.
@ IN NS ns2.example.com.
ns1 IN A 192.168.56.11
ns2 IN A 192.168.56.12
www IN A 192.168.56.10
ftp IN A 192.168.56.20
上述文件包含了以下信息:
@: 表示域名本身。
IN: 表示Internet地址类型。
SOA: Start of Authority,(记录一条域数据),表示ns1.example.com为DNS服务器的管理员。serial是版本号。
NS: Name Server,指明一个域上的DNS服务器的名称。
A: Address,映射FQDN(Fully Qualified Domain Name)到一个IP地址。
保存文件并退出。
3.3 配置从DNS服务器
在从DNS服务器上,我们要编辑named.conf配置文件,使其从主DNS服务器上获取信息,使用以下命令:
vim /etc/named.conf
在options下添加以下内容:
zone "example.com" IN {
type slave;
file "example.com.zone";
masters { 192.168.56.11; };
};
上述命令解释如下:
type: 表示数据来源,可以是master(主服务器)或slave(从服务器)。
file: 绑定的数据文件。
master: 指向主服务器的IP地址。
完成之后,重新启动DNS服务:
systemctl start named
systemctl enable named
4. 测试DNS解析
现在我们可以在客户端机器上进行DNS解析。首先需要将客户端机器的DNS服务器更改为我们刚刚搭建的从DNS服务器的IP地址。然后通过ping命令测试dns服务器是否正常工作。
在客户端机器上使用以下命令更改DNS服务器:
echo "nameserver 192.168.56.12" > /etc/resolv.conf
然后使用ping命令测试DNS服务器是否正常工作:
ping www.example.com
注:192.168.56.11是主DNS服务器的IP地址,该地址在主DNS服务器的named.conf文件中定义,在从DNS服务器中使用masters参数指向主DNS服务器。
如果输出结果中出现主机的IP地址,则表示测试成功。
总结
本教程简要介绍了Centos7搭建主从DNS服务器的过程。采用主从DNS服务器的方案会使得DNS服务器更加稳定和可靠。