在企业网络架构中,内网DNS服务器的部署是提升内部服务访问效率和安全性的关键环节,对于使用centos系统的运维人员而言,通过Bind搭建一套稳定的内网DNS服务,不仅能够简化资源定位流程,还能有效隔离外部风险,以下为详细实施方案。
一、准备工作
1、系统环境确认

确保服务器已安装CentOS 7或8,并更新至最新版本:
- sudo yum update -y
检查网络配置,确认服务器具备静态IP地址,避免因DHCP分配导致服务中断。
2、防火墙与SELinux配置
开放DNS服务的53端口(TCP/UDP):
- sudo firewall-cmd --permanent --add-port=53/tcp
- sudo firewall-cmd --permanent --add-port=53/udp
- sudo firewall-cmd --reload
若启用SELinux,需调整策略以允许Bind运行:
- sudo setsebool -P named_write_master_zones 1
二、安装Bind服务
1、通过Yum安装软件包

Bind及其工具集的安装命令如下:
- sudo yum install bind bind-utils -y
验证安装是否成功:
- named -v
2、启动服务并设置开机自启
- sudo systemctl start named
- sudo systemctl enable named
三、配置主DNS服务器
1、编辑主配置文件
打开/etc/named.conf
,修改以下段落:
- options {
- listen-on port 53 { 127.0.0.1; 192.168.1.10; }; # 替换为服务器内网IP
- allow-query { localhost; 192.168.1.0/24; }; # 允许查询的网段
- recursion yes; # 启用递归查询
- };
在文件末尾添加区域声明:

- zone "internal.company" IN { # 替换为自定义内网域名
- type master;
- file "internal.company.zone";
- allow-update { none; };
- };
2、创建区域文件
在/var/named/
目录下新建internal.company.zone
:
- $TTL 86400
- @ IN SOA ns1.internal.company. admin.internal.company. (
- 2023081501 ; 序列号
- 3600 ; 刷新时间
- 1800 ; 重试间隔
- 604800 ; 过期时间
- 86400 ; 最小TTL
- )
- NS ns1.internal.company.
- ns1 A 192.168.1.10
- webserver A 192.168.1.20
- database A 192.168.1.30
修改文件权限:
- sudo chown named:named /var/named/internal.company.zone
3、检查配置并重启服务
- sudo named-checkconf
- sudo named-checkzone internal.company /var/named/internal.company.zone
- sudo systemctl restart named
四、客户端测试与验证
1、配置客户端DNS指向
在Linux客户端修改/etc/resolv.conf
:
- nameserver 192.168.1.10
Windows客户端需在网络适配器设置中手动指定DNS服务器地址。
2、执行解析测试
- nslookup webserver.internal.company
- dig database.internal.company +short
若返回对应的IP地址,则表明服务运行正常。
五、高可用与安全建议
1、部署从DNS服务器
在另一台CentOS服务器配置从节点,通过修改主DNS的区域声明实现数据同步:
- zone "internal.company" IN {
- type slave;
- masters { 192.168.1.10; };
- file "slaves/internal.company.zone";
- };
2、启用TSIG密钥认证
使用dnssec-keygen
生成密钥对,并在主从配置中添加认证指令,防止未经授权的区域传输。
3、日志监控与定期维护
通过tail -f /var/log/messages
实时查看DNS查询日志,建议每周检查区域文件的序列号及解析记录准确性。
观点
内网DNS的部署绝非一次性任务,而是持续优化的过程,在实际运维中,发现部分企业因忽视TTL设置导致缓存更新延迟,或因未限制递归查询引发安全风险,建议结合监控工具(如Zabbix)对DNS响应时间进行跟踪,同时定期审计解析记录,清除冗余条目,对于中小型网络,可采用容器化部署(如Docker+Bind)以提高灵活性;而大型企业则可考虑集成LDAP实现权限统一管理。