在CentOS 7上部署BIND 9.16.41作为DNS服务器
本文介绍如何在CentOS 7系统中安装和配置BIND 9.16.41(或9.18.15版本),偶数版本号(如9.16、9.18)代表稳定发行版。
安装步骤
1. 配置EPEL源
首先,清理系统默认仓库并添加阿里云镜像源以及ISC提供的BIND EPEL源:
cd /etc/yum.repos.d
rm -rf /etc/yum.repos.d/*.repo
wget http://mirrors.aliyun.com/repo/Centos-7.repo
wget https://copr.fedorainfracloud.org/coprs/isc/bind-esv/repo/epel-7/isc-bind-esv-epel-7.repo
yum clean all
yum makecache
yum repolist
2. 安装BIND
yum install isc-bind
3. 启动并验证服务
systemctl start isc-bind-named
systemctl status isc-bind-named
systemctl enable isc-bind-named
4. 配置防火墙
允许DNS服务通过防火墙:
systemctl start firewalld.service
firewall-cmd --permanent --add-service=dns
firewall-cmd --reload
firewall-cmd --list-all
5. 配置网络接口
编辑网卡配置文件,将DNS1设置为本地IP地址:
vim /etc/sysconfig/network-scripts/ifcfg-ens192
修改后重启网络服务:
systemctl restart network
6. 编辑主配置文件
BIND 9.16.41的主配置文件位于:
/etc/opt/isc/isc-bind/named.conf
编辑该文件进行自定义配置。保存后需要刷新配置才能生效:
rndc flush # 清空所有缓存
rndc flushname example.com # 清空指定域名缓存
7. 验证安装
检查BIND软件包版本:
rpm -qa | grep bind
查看详细版本信息:
rpm -qi bind
高级配置示例
TTL设置
在区域配置中设置TTL值:
zone "example.com" {
type stub;
masters { 1.2.3.4; };
TTL 1800; // 缓存时间1800秒
};
全局TTL设置:
options {
max-cache-ttl 300; // 本地缓存最大TTL为300秒
max-ncache-ttl 300; // 负面缓存最大TTL为300秒
};
Stub区域与转发配置
配置stub区域并指定转发器:
zone "example.com" {
type stub;
masters { 192.168.1.100; };
forwarders { 8.8.8.8; 8.8.4.4; };
};
上述配置解释:定义了一个名为example.com的stub区域,指定主服务器为192.168.1.100;当无法从主服务器获取解析结果时,会向8.8.8.8和8.8.4.4转发请求并缓存结果。
注意事项:
- BIND守护进程的命令行选项可在 /etc/opt/isc/isc-bind/sysconfig/named 中指定
- 配置修改后需执行 rndc flush 确保刷新
- 官方参考文档:https://bind9.readthedocs.io/en/v9_16_19/reference.html