centos7.x 部署主、从DNS服务器问题

1. 介绍

当我们在部署一个企业级的网络时,DNS服务器是必不可少的一部分。CentOS 7.x 提供了 DNS 服务器的软件包 BIND9,可以用来构建一个分布式、高可用性的 DNS 服务器架构。本文就将向您介绍如何在 CentOS 7.x 上搭建主、从 DNS 服务器。

2. 环境准备

在开始之前,请确保您有两台 CentOS 7.x 服务器,并且这两台服务器之间可以互相通信。一台作为主 DNS 服务器,一台作为从 DNS 服务器。

下面是两台服务器的 IP 地址和主机名:

主 DNS 服务器 从 DNS 服务器
192.168.1.100 192.168.1.101
dns-master.example.com dns-slave.example.com

3. 在主 DNS 服务器上安装 BIND9

在主 DNS 服务器上安装 BIND9:

sudo yum install bind bind-utils -y

安装完成后,启动 BIND9:

sudo systemctl start named

查看 BIND9 的状态:

sudo systemctl status named

如果出现如下信息,则表示 BIND9 已经正确启动:

● named.service - Berkeley Internet Name Domain (DNS)

Loaded: loaded (/usr/lib/systemd/system/named.service; enabled; vendor preset: disabled)

Active: active (running) since Tue 2019-06-04 14:16:53 CST; 2 weeks 0 days ago

Main PID: 22255 (named)

CGroup: /system.slice/named.service

└─22255 /usr/sbin/named -u named -c /etc/named.conf

BIND9 启动后,默认监听 53 端口,可以使用以下命令验证:

sudo netstat -tulpn | grep named

如果出现以下信息,则表示 BIND9 正确监听在 53 端口:

tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 22255/named

tcp6 0 0 :::53 :::* LISTEN 22255/named

udp 0 0 0.0.0.0:53 0.0.0.0:* 22255/named

udp6 0 0 :::53 :::* 22255/named

4. 配置主 DNS 服务器

4.1 配置域名解析

在主 DNS 服务器上,编辑 /etc/named.conf 文件:

sudo vi /etc/named.conf

在 options 段落中添加:

listen-on port 53 { any; };

allow-query { any; };

forwarders { 8.8.8.8; 8.8.4.4; };

其中,listen-on 表示允许哪些 IP 地址访问 BIND9;allow-query 表示允许哪些 IP 地址查询 DNS 服务;forwarders 表示转发 DNS 请求。

在前面添加以下内容:

zone "example.com" IN {

type master;

file "example.com.zone";

};

其中,zone 表示定义域名解析的区块,example.com 表示需要解析的域名,type 表示该区块的类型为 master(主区块),file 表示该区块的配置文件为 example.com.zone。

在 /var/named/ 目录下创建 example.com.zone,内容如下:

$ORIGIN example.com.

$TTL 86400

@ IN SOA dns-master.example.com. admin.example.com. (

1 ; serial number

3600 ; refresh

1800 ; retry

604800 ; expire

86400 ; minimum TTL

)

@ IN NS dns-master.example.com.

@ IN NS dns-slave.example.com.

@ IN A 192.168.1.100

www IN CNAME example.com.

其中,$ORIGIN 定义了这个区块的起始域名为 example.com.;$TTL 表示缓存的有效时间为 86400 秒;SOA 表示 Start Of Authority,admin.example.com 表示表示网站管理员的邮箱地址,数字 1 表示序列号。这里使用 DNS 主机名作为主机名服务器的名称;NS 表示 Name Server,A 表示 Address,CNAME 表示 Canonical Name,分别表示 DNS 服务器、IP 地址、域名的别名。

检查 /etc/named.conf 配置文件是否正确:

sudo named-checkconf

如果出现 No errors,则表示配置文件正确。

检查 example.com.zone 文件是否正确:

sudo named-checkzone example.com /var/named/example.com.zone

如果出现 zone example.com/IN: loaded serial 1,则表示文件正确。

4.2 配置防火墙规则

开放 53 端口:

sudo firewall-cmd --zone=public --add-port=53/tcp --permanent

sudo firewall-cmd --zone=public --add-port=53/udp --permanent

sudo firewall-cmd --reload

5. 在从 DNS 服务器上安装 BIND9

在从 DNS 服务器上安装 BIND9:

sudo yum install bind bind-utils -y

安装完成后,启动 BIND9:

sudo systemctl start named

查看 BIND9 的状态:

sudo systemctl status named

如果出现如下信息,则表示 BIND9 已经正确启动:

● named.service - Berkeley Internet Name Domain (DNS)

Loaded: loaded (/usr/lib/systemd/system/named.service; enabled; vendor preset: disabled)

Active: active (running) since Tue 2019-06-04 14:16:53 CST; 2 weeks 0 days ago

Main PID: 22255 (named)

CGroup: /system.slice/named.service

└─22255 /usr/sbin/named -u named -c /etc/named.conf

6. 配置从 DNS 服务器

6.1 配置域名解析

在从 DNS 服务器上,编辑 /etc/named.conf 文件:

sudo vi /etc/named.conf

在 options 段落中添加:

listen-on port 53 { any; };

allow-query { any; };

forwarders { 8.8.8.8; 8.8.4.4; };

在前面添加以下内容:

zone "example.com" IN {

type slave;

masters { 192.168.1.100; };

file "example.com.zone";

};

其中,type 表示该区块的类型为 slave(从区块),masters 表示需要同步的主 DNS 服务器的 IP 地址,file 表示该区块的配置文件为 example.com.zone。

检查 /etc/named.conf 配置文件是否正确:

sudo named-checkconf

检查 example.com.zone 文件是否正确:

sudo named-checkzone example.com /var/named/example.com.zone

6.2 配置防火墙规则

开放 53 端口:

sudo firewall-cmd --zone=public --add-port=53/tcp --permanent

sudo firewall-cmd --zone=public --add-port=53/udp --permanent

sudo firewall-cmd --reload

7. 测试

在客户端上,将 DNS 解析服务器指向从 DNS 服务器:

sudo vi /etc/resolv.conf

添加:

nameserver 192.168.1.101

使用 nslookup 命令查询主 DNS 服务器是否可以正常解析 example.com:

nslookup example.com 192.168.1.100

使用 nslookup 命令查询从 DNS 服务器是否可以正常解析 example.com:

nslookup example.com 192.168.1.101

如果都能正常解析,则表示主、从 DNS 服务器部署成功。

8. 总结

本文详细介绍了在 CentOS 7.x 上部署主、从 DNS 服务器的相关操作。主 DNS 服务器负责处理域名解析请求,从 DNS 服务器通过与主 DNS 服务器同步数据来提高 DNS 服务的稳定性和可用性。要注意的是,在配置防火墙规则时,需要开放 53 端口。

操作系统标签