一、安装 BIND
1、更新软件包索引:使用yum update
命令更新系统的软件包索引,确保获取到最新版本的软件信息。
2、安装 BIND 软件包:执行yum install bind bindutils y
命令来安装 BIND 服务器软件包以及相关的工具,如dig
和nslookup
等。bind
是 BIND 的主程序,bindutils
包含了一些用于 DNS 查询和管理的工具。
![在 CentOS 上轻松部署 Bind DNS 服务器教程-图1 在 CentOS 上轻松部署 Bind DNS 服务器教程-图1](https://blog.huochengrm.cn/zb_users/upload/2025/01/20250129085541173811214168728.jpeg)
二、配置 BIND
1、编辑主配置文件/etc/named.conf
:使用vim /etc/named.conf
命令打开该文件,在该文件中进行以下主要配置:
设置监听地址和端口:找到options
部分,将listenon port 53 { any; };
修改为listenon port 53 { any; };
,允许 BIND 在所有网络接口的 53 端口监听 DNS 请求;同时可以添加listenonv6 port 53 { ::1; };
以支持 IPv6 的本地回环接口监听。
设置工作目录:将directory "/var/named";
设置为 BIND 的主工作目录路径,该目录下会存放区域文件、缓存文件等。
设置日志文件:可以指定日志文件的路径,如logging { channel default_debug { file "data/named.run"; severity dynamic; }; }
,方便后续查看 BIND 的运行日志和调试信息。
定义正向解析区域:在zone
部分添加正向解析的区域配置,例如zone "example.com" IN { type master; file "/var/named/forward.example.com"; allowupdate { none; }; };
,这里的example.com
是要解析的域名,type master
表示该区域是主域名解析区域,file
指定了该区域的数据文件存放路径。
定义反向解析区域:类似地,添加反向解析区域的配置,如zone "1.168.192.inaddr.arpa" IN { type master; file "/var/named/reverse.example.com"; allowupdate { none; }; };
,用于将 IP 地址解析为域名。
![在 CentOS 上轻松部署 Bind DNS 服务器教程-图2 在 CentOS 上轻松部署 Bind DNS 服务器教程-图2](https://blog.huochengrm.cn/zb_users/upload/2025/01/20250129085542173811214222377.jpeg)
2、创建正向区域文件:根据在主配置文件中定义的正向区域文件路径,使用vim
命令创建并编辑相应的区域文件,如/var/named/forward.example.com
,在该文件中添加以下内容作为示例:
起始授权和序列号:$TTL 86400
设置了该区域的存活时间(默认一天),@ IN SOA ns1.example.com. admin.example.com. ( 2023022201 ; Serial 3600 ; Refresh 1800 ; Retry 604800 ; Expire 86400 ; Minimum TTL )
,其中ns1.example.com.
是主域名服务器的主机名,admin.example.com.
是管理员的邮箱地址,括号内的数值分别代表序列号、刷新时间、重试时间、过期时间和最小 TTL 值。
NS 记录:@ IN NS ns1.example.com.
指定了该域名的域名服务器为ns1.example.com.
。
A 记录:例如ns1 IN A <your_name_server_IP>
、mail IN A <your_mail_server_IP>
、www IN A <your_web_server_IP>
等,将域名或子域名解析到对应的 IP 地址。
3、创建反向区域文件:按照主配置文件中定义的反向区域文件路径,创建并编辑反向区域文件,如/var/named/reverse.example.com
,添加类似如下的内容:
起始授权和序列号:与正向区域文件类似,设置该反向解析区域的存活时间、序列号等信息。
![在 CentOS 上轻松部署 Bind DNS 服务器教程-图3 在 CentOS 上轻松部署 Bind DNS 服务器教程-图3](https://blog.huochengrm.cn/zb_users/upload/2025/01/20250129085542173811214280056.jpeg)
PTR 记录:例如2 IN PTR mail.example.com.
,将 IP 地址的特定部分(这里是最后一个字节为 2)解析为对应的域名。
三、启动和启用 BIND 服务
1、启动 BIND 服务:执行systemctl start named
命令立即启动 BIND 服务。
2、设置开机自启:运行systemctl enable named
命令,确保系统重启后 BIND 服务能够自动启动。
四、测试 BIND 配置
1、使用dig
命令测试正向解析:在终端中输入dig @localhost www.example.com
,如果配置正确,应该能够返回www.example.com
对应的 IP 地址。
2、使用dig
命令测试反向解析:输入dig x @localhost <your_ip_address>
,其中<your_ip_address>
是被查询的 IP 地址,若配置无误,则会返回该 IP 地址对应的域名。
五、配置防火墙(可选)
如果服务器启用了防火墙,需要打开 DNS 服务所使用的端口(TCP 和 UDP 的 53 端口),可以使用以下命令:
1、添加服务规则:firewallcmd addservice=dns permanent
。
2、重新加载防火墙配置:firewallcmd reload
。
六、常见问题及解决方法
1、问题:启动 BIND 服务时提示配置文件有语法错误,无法启动服务。
解答:仔细检查/etc/named.conf
文件中的语法,特别是括号的匹配、关键词的拼写是否正确等,可以使用namedcheckconf /etc/named.conf
命令来检查主配置文件的语法错误,使用namedcheckzone <zone_name> <zone_file>
命令来检查区域文件的语法错误,并根据错误提示进行修正。
2、问题:配置了正向和反向解析区域后,测试发现无法正常解析域名或 IP 地址。
解答:再次检查正向和反向区域文件中的记录是否正确填写,包括域名、IP 地址、SOA 记录中的序列号等是否一致且符合规范,确认主配置文件中对正向和反向解析区域的引用是否正确,以及相关服务是否已经重新启动以使配置生效。