CentOS 7 配置 DNS

一、软件下载
BIND 安装
在 CentOS 7 上,首先需要安装 BIND(Berkeley Internet Name Domain),这是一个广泛使用的开源 DNS 服务器软件,可以通过以下命令进行安装:
sudo yum install bind bindutils y
bind
是 DNS 服务器的主程序,而bindutils
包含了一些用于 DNS 查询的工具,如dig
和nslookup
。
验证安装
安装完成后,可以使用以下命令验证 BIND 是否正确安装:
named v
该命令将显示 BIND 的版本信息,如果显示版本号,说明 BIND 已成功安装。
二、规划
决定域名
在配置 DNS 之前,需要决定要解析的域名,例如example.com
。
规划 IP 地址

为 DNS 服务器和所需主机分配 IP 地址,在本例中,假设 DNS 服务器的 IP 地址为192.168.1.100
,客户端的 IP 地址为192.168.1.101
。
设计正向和反向区域
决定哪些区域文件是必须的,正向解析的区域文件通常以 三、部署和配置 1. 编辑主配置文件 /etc/named.conf 使用文本编辑器打开 添加以下内容以配置正向和反向解析的区域文件: 注释: 使用文本编辑器创建正向区域文件: 添加以下内容: 注释: 使用文本编辑器创建反向区域文件: 添加以下内容: 注释: 确保所有的配置都正确无误后,启动 BIND 服务: 使用以下命令检查 BIND 服务的当前状态: 这将显示 BIND 服务的当前状态,确保它是活跃的(running)。 使用 这应该返回 这应该返回 四、维护和问题排查 BIND 的日志通常位于 如果需要添加更多的 DNS 记录,编辑相应的区域文件并重启 BIND 服务: 确保你的 DNS 服务器不对外开放递归查询,以避免成为放大攻击的工具,可以在 然后重启 BIND 服务: 五、相关问题与解答 1. 为什么需要关闭防火墙和 SELinux? 答:在某些情况下,防火墙和 SELinux 可能会阻止 BIND 服务的正常通信,为了确保 DNS 服务的正常运行,建议在配置过程中暂时关闭防火墙和 SELinux,完成配置后,可以根据需要重新启用它们。 2. 如果修改了 /etc/resolv.conf 文件后,DNS 设置没有立即生效怎么办? 答:在 CentOS 7 中,如果只修改了.com
反向解析的区域文件以.inaddr.arpa
/etc/named.conf
文件:
sudo vi /etc/named.conf
options {
listenon port 53 { any; };
directory "/var/named";
dumpfile "/var/named/data/cache_dump.db";
statisticsfile "/var/named/data/named_stats.txt";
allowquery { any; };
};
zone "example.com" IN {
type master;
file "/var/named/forward.example.com";
allowupdate { none; };
};
zone "1.168.192.inaddr.arpa" IN {
type master;
file "/var/named/reverse.example.com";
allowupdate { none; };
};
listenon port 53 { any; };
:允许 BIND 在所有接口的 53 端口监听 DNS 请求。zone "example.com"
:定义正向解析的区域文件。zone "1.168.192.inaddr.arpa"
:定义反向解析的区域文件。 创建正向区域文件
sudo vi /var/named/forward.example.com
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2023042401 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ; Minimum TTL
)
NS ns1.example.com.
ns1 IN A 192.168.1.100
www IN A 192.168.1.101
SOA
记录指定了授权开始,并列出了主域名服务器和域管理员的电子邮件。NS
记录指定了域名服务器。A
记录将域名映射到 IP 地址。 创建反向区域文件
sudo vi /var/named/reverse.example.com
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2023042401 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ; Minimum TTL
)
NS ns1.example.com.
1 IN PTR ns1.example.com.
2 IN PTR www.example.com.
PTR
记录用于反向 DNS 解析,将 IP 地址映射回域名。 启动 BIND 服务
sudo systemctl enable named
sudo systemctl start named
检查 DNS 服务状态
sudo systemctl status named
测试 DNS 解析
dig
命令来测试正向和反向解析是否配置成功:
dig @localhost www.example.com
www.example.com
对应的 IP 地址192.168.1.101
。
dig x @localhost 192.168.1.101
192.168.1.101
对应的域名www.example.com
。 查看日志
/var/log/messages
,这对于诊断问题非常有帮助,可以使用以下命令查看日志:
sudo tail f /var/log/messages
更新区域文件
sudo systemctl restart named
安全配置
/etc/named.conf
中添加以下内容:
options {
recursion no;
};
sudo systemctl restart named
/etc/resolv.conf
文件,DNS 配置可能不会立即生效,为了使修改立即生效,可以重启 NetworkManager 服务或重启系统,也可以使用nmcli
命令行工具来设置网络连接的 DNS 服务器地址,这样可以确保修改立即生效。