1. 安装 BIND DNS 服务
1.1 检查 BIND 软件包信息
yum info bind
1.2 安装 BIND DNS 服务器
yum install bind -y
1.3 安装 DNS 工具包(bind-utils)
yum install bind-utils -y
1.4 启动并配置 DNS 服务
systemctl start named # 启动服务
systemctl enable named # 设置开机自启
firewall-cmd --permanent --add-service=dns # 允许 DNS 服务
firewall-cmd --permanent --add-port=53/tcp # 开放 TCP 53 端口
firewall-cmd --permanent --add-port=53/udp # 开放 UDP 53 端口
firewall-cmd --reload # 重新加载防火墙规则
ss -tuln # 检查端口监听状态
2. 配置主 DNS 服务器
2.1 备份并编辑主配置文件 /etc/named.conf
cp -p /etc/named.conf{,.bak} # 备份原文件
vim /etc/named.conf # 编辑配置文件
示例配置片段
options {
listen-on port 53 { any; }; # 监听所有 IPv4 地址
listen-on-v6 port 53 { ::1; }; # 监听 IPv6 本地地址
directory "/var/named"; # 数据文件目录
allow-query { localhost; 192.168.0.0/16; }; # 允许查询的客户端
allow-transfer { 192.168.124.3; }; # 允许从服务器同步
forwarders { 202.101.172.35; 223.5.5.5; }; # 设置上游 DNS 转发器
recursion yes; # 启用递归查询
};
2.2 检查配置文件语法
named-checkconf /etc/named.conf # 验证主配置
2.3 重新加载配置
systemctl reload named # 应用配置更改
3. 配置 DNS 区域文件
3.1 定义区域 /etc/named.rfc1912.zones
vim /etc/named.rfc1912.zones
示例区域定义
zone "abc.com" IN {
type master; # 主服务器类型
file "named.abc.com"; # 区域数据文件名
allow-update { none; }; # 禁止动态更新
};
3.2 创建区域数据文件 /var/named/named.abc.com
cd /var/named
cp -p named.localhost named.abc.com # 复制模板文件
vim named.abc.com
示例区域数据
$TTL 1D
@ IN SOA @ admin.abc.com. (
20231001 ; Serial
1H ; Refresh
30M ; Retry
1D ; Expire
3D ) ; Minimum TTL
@ NS dns.abc.com. ; 域名服务器记录
websrv A 192.168.50.4 ; A 记录
ftpsrv A 192.168.50.42 ; A 记录
www CNAME websrv ; CNAME 别名记录
3.3 验证区域文件语法
named-checkzone abc.com /var/named/named.abc.com
4. 应用配置并测试
4.1 重新加载 DNS 服务
rndc reload # 通过控制工具重载配置
4.2 测试 DNS 解析
host www.abc.com # 使用 host 命令测试
nslookup www.abc.com # 使用 nslookup 测试
5. 注意事项
- 配置文件权限:确保
/var/named
目录及文件属组为 named
,避免权限问题。 - 日志排查:若服务启动失败,检查日志
/var/named/data/named.run
。 - 防火墙规则:确认防火墙已放行 DNS 相关端口(TCP/UDP 53)。
- 从服务器同步:若需配置从服务器(Slave),需在
allow-transfer
中指定其 IP。 - 记录更新:修改记录后需更新 Serial 值(如
20231001 → 20231002
)。
评论 (0)