在CentOS中配置主DNS需安装BIND,编辑named.conf,添加区域定义并创建解析文件
CentOS中主DNS服务器的详细配置指南
配置前置准备
系统更新与依赖安装
执行以下命令更新系统并安装BIND域名服务系统:
yum update y yum install bind bindutils y
注意事项:
- BIND软件包包含
named
服务程序 bindutils
提供nslookup
、dig
等调试工具
关键配置文件路径
文件路径 | 作用 |
---|---|
/etc/named.conf |
主配置文件 |
/var/named/ |
区域文件存放目录(默认) |
/etc/sysconfig/network |
网络接口配置 |
主配置文件修改
编辑named.conf
使用编辑器打开主配置文件:
vi /etc/named.conf
(1) 全局配置修改
定位options
配置块,进行以下修改:
options { listenon port 53 { 127.0.0.1; }; + listenon port 53 { any; }; directory "/var/named"; dumpfile "/var/named/data/cache_dump.db"; + allowquery { any; }; };
关键参数说明:
listenon
:监听地址(any表示所有接口)allowquery
:允许查询的客户端范围
(2) 添加正向解析区域
在named.conf
中添加以下配置:
zone "example.com" IN { type master; file "example.com.zone"; allowupdate { none; }; };
(3) 添加反向解析区域
zone "192.168.1.0/24" IN { type master; file "192.168.1.0.zone"; allowupdate { none; }; };
区域文件配置
创建正向解析文件
执行命令创建文件并编辑:
vi /var/named/example.com.zone
$TTL 86400 @ IN SOA ns1.example.com. admin.example.com. ( 2025032801 ; Serial 3600 ; Refresh 1800 ; Retry 604800 ; Expire 86400 ) ; Minimum TTL IN NS ns1.example.com. ns1 IN A 192.168.1.1 www IN A 192.168.1.100
创建反向解析文件
vi /var/named/192.168.1.0.zone
$TTL 86400 @ IN SOA ns1.example.com. admin.example.com. ( 2025032801 ; Serial 3600 ; Refresh 1800 ; Retry 604800 ; Expire 86400 ) ; Minimum TTL IN NS ns1.example.com. 1 IN PTR ns1.example.com. 100 IN PTR www.example.com.
安全策略配置
防火墙设置
执行以下命令开放DNS服务端口:
firewallcmd permanent addservice=dns firewallcmd reload
SELinux设置
若系统启用SELinux,需执行:
setsebool P named_write_master_zones on
服务管理
启动与自启设置
systemctl start named systemctl enable named
状态验证
systemctl status named
功能验证
正向解析测试
nslookup www.example.com 127.0.0.1
预期结果:
Name: www.example.com Address: 192.168.1.100
反向解析测试
nslookup 192.168.1.100
预期结果:
Name: www.example.com Address: 192.168.1.100
常见问题与解答
Q1: 如何配置辅助DNS服务器?
A1:
- 在
named.conf
中使用type slave;
代替type master;
- 添加
masters
指令指定主服务器IP - 使用相同域名的区域文件
Q2: 如何限制只允许特定网段查询?
A2:
修改named.conf
中的allowquery
配置:
allowquery { 192.168.1.0/24; 10.0.0.0/8; };