安装bind,编辑named.conf,定义zone,添加NS/A记录,开放防火墙53端口,启动name
CentOS7上搭建DNS服务器详细教程
环境准备
系统要求
项目 | 要求 |
---|---|
操作系统 | CentOS 7.x |
内存 | ≥512MB(建议1GB+) |
存储空间 | ≥200MB(含日志文件) |
网络环境 | 公网IP或内网固定IP |
基础网络配置
# 查看网络接口名称 ip addr show # 配置网卡(示例eth0) nmcli con mod "System eth0" ipv4.addresses "192.168.1.10/24" ipv4.gateway "192.168.1.1" ipv4.dns "8.8.8.8" nmcli con up "System eth0"
安装BIND DNS服务
安装软件包
# 更新YUM源 yum update y # 安装BIND yum install y bind bindutils # 验证安装 named V
启动与自启设置
# 启动服务 systemctl start named # 设置开机自启 systemctl enable named # 查看运行状态 systemctl status named
核心配置文件解析
/etc/named.conf
主配置文件
// 全局配置示例 options { listenon port 53 { 192.168.1.10; any; }; // 监听地址 directory "/var/named"; // 数据存放目录 dumpfile "/var/named/data/cache_dump.db"; statisticsfile "/var/named/data/named_stats.txt"; recursion yes; // 开启递归查询 allowquery { any; }; // 允许所有客户端查询 };
正向解析区域配置
// 在named.conf中添加zone配置 zone "example.com" IN { type master; file "example.com.zone"; // 对应文件路径:/var/named/example.com.zone allowupdate { none; }; // 禁止动态更新 };
反向解析区域配置
// 反向解析配置示例(针对192.168.1.x/24) zone "1.168.192.inaddr.arpa" IN { type master; file "1.168.192.zone"; // 对应文件路径:/var/named/1.168.192.zone };
区域文件制作
创建目录结构
mkdir p /var/named/ chown named:named /var/named/
正向区域文件示例 (/var/named/example.com.zone
)
$TTL 86400 ; 默认生存时间(秒) @ IN SOA ns1.example.com. admin.example.com. ( 2023100101 ; Serial Number 3600 ; Refresh (秒) 1800 ; Retry (秒) 1209600 ; Expire (秒) 86400 ) ; Minimum TTL (秒) IN NS ns1.example.com. IN NS ns2.example.com. ns1 IN A 192.168.1.10 ; 主DNS服务器IP ns2 IN A 192.168.1.11 ; 备用DNS服务器IP www IN A 192.168.1.100 ; Web服务器IP mail IN A 192.168.1.101 ; 邮件服务器IP
反向区域文件示例 (/var/named/1.168.192.zone
)
$TTL 86400 @ IN SOA ns1.example.com. admin.example.com. ( 2023100101 ; Serial Number 3600 ; Refresh 1800 ; Retry 1209600 ; Expire 86400 ) ; Minimum TTL IN NS ns1.example.com. IN NS ns2.example.com. 10 IN PTR ns1.example.com. 11 IN PTR ns2.example.com. 100 IN PTR www.example.com. 101 IN PTR mail.example.com.
安全加固设置
SELinux配置
# 添加BIND相关策略 setsebool P named_write_master_zones on
防火墙配置
# 开放TCP/UDP 53端口 firewallcmd permanent addport=53/tcp addport=53/udp firewallcmd reload
测试验证
使用dig
命令测试
# 测试正向解析 dig @192.168.1.10 www.example.com # 测试反向解析 dig x 192.168.1.100 @192.168.1.10
使用nslookup
交互测试
# 进入交互模式 nslookup example.com 192.168.1.10 > server 192.168.1.10 # 指定DNS服务器 > www.example.com # 查询记录
常见问题处理
现象 | 解决方法 |
---|---|
服务无法启动 | 检查named.conf 语法错误,使用namedcheckconf /etc/named.conf 检测 |
域名解析失败 | 确认区域文件中的NS记录与实际服务器IP匹配,检查SOA记录中的序列号 |
客户端无法访问DNS服务器 | 检查防火墙规则,确认53端口已开放,SELinux策略正确 |
递归查询功能异常 | 在options 中设置forwarders 指向上游DNS,或保持recursion yes; 配置 |
相关问题与解答
Q1:如何将DNS服务器设置为缓存服务器?
A:需修改named.conf
配置文件,在options
段添加forwarders
指令指向上游DNS,并关闭递归查询:
options { forwarders { 8.8.8.8; 8.8.4.4; }; # Google公共DNS recursion no; # 关闭递归查询 };
此时DNS服务器将作为转发缓存服务器,不直接提供域名解析。
Q2:如何实现DNS主从架构?
A:需在主服务器配置中添加allowtransfer
指令,并在从服务器配置zone
类型为slave
:
主服务器配置:
zone "example.com" IN { type master; file "example.com.zone"; allowtransfer { 192.168.1.11; }; # 允许从服务器IP同步数据 };
从服务器配置:
zone "example.com" IN { type slave; file "slaves/example.com.zone"; # 数据文件路径 masters { 192.168.1.10; }; #
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/202925.html