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
。
设计正向和反向区域
决定哪些区域文件是必须的,正向解析的区域文件通常以.com
反向解析的区域文件以.inaddr.arpa
三、部署和配置
1. 编辑主配置文件 /etc/named.conf
使用文本编辑器打开/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 服务
确保所有的配置都正确无误后,启动 BIND 服务:
sudo systemctl enable named sudo systemctl start named
检查 DNS 服务状态
使用以下命令检查 BIND 服务的当前状态:
sudo systemctl status named
这将显示 BIND 服务的当前状态,确保它是活跃的(running)。
测试 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
。
四、维护和问题排查
查看日志
BIND 的日志通常位于/var/log/messages
,这对于诊断问题非常有帮助,可以使用以下命令查看日志:
sudo tail f /var/log/messages
更新区域文件
如果需要添加更多的 DNS 记录,编辑相应的区域文件并重启 BIND 服务:
sudo systemctl restart named
安全配置
确保你的 DNS 服务器不对外开放递归查询,以避免成为放大攻击的工具,可以在/etc/named.conf
中添加以下内容:
options { recursion no; };
然后重启 BIND 服务:
sudo systemctl restart named
五、相关问题与解答
1. 为什么需要关闭防火墙和 SELinux?
答:在某些情况下,防火墙和 SELinux 可能会阻止 BIND 服务的正常通信,为了确保 DNS 服务的正常运行,建议在配置过程中暂时关闭防火墙和 SELinux,完成配置后,可以根据需要重新启用它们。
2. 如果修改了 /etc/resolv.conf 文件后,DNS 设置没有立即生效怎么办?
答:在 CentOS 7 中,如果只修改了/etc/resolv.conf
文件,DNS 配置可能不会立即生效,为了使修改立即生效,可以重启 NetworkManager 服务或重启系统,也可以使用nmcli
命令行工具来设置网络连接的 DNS 服务器地址,这样可以确保修改立即生效。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/76856.html