安装bind
dnf install bind bind-utils
dns转发器配置
vim /etc/named.conf
// 定义一个ACL(访问控制列表),用于分组特定的IP地址或网络范围
acl clients {
// 允许10.20.0.0到10.20.255.255.255这个网段的地址进行查询
10.20.0.0/16;
// 允许本地主机进行查询
localhost;
// 允许本地网络进行查询
localnets;
};
options {
// 设置BIND的工作目录,用于存放区域文件、日志等数据
directory "/var/cache/bind";
// 开启递归查询功能,允许BIND服务器代替客户端去查询其他DNS服务器
recursion yes;
// 定义允许查询本DNS服务器的客户端,这里指向之前定义的acl clients
allow-query { clients; };
// 定义当BIND服务器无法解析某个查询时,将查询转发给的上游DNS服务器
forwarders {
10.16.210.3;
};
// 仅使用forwarders定义的服务器进行查询,不使用自身的根提示
forward only;
// 设置DNSSEC验证为自动模式,BIND会自动尝试验证DNSSEC记录
dnssec-validation auto;
// 关闭权威NXDOMAIN响应,按照RFC1035的规定,不发送否定回答
auth-nxdomain no;
// 允许IPv6地址上的任何接口监听DNS查询
listen-on-v6 { any; };
};
dns解析配置
vim /etc/named.conf
options {
// 设置DNS服务器监听IPv4和IPv6的所有地址上的53号端口
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
// 指定BIND工作目录,用于存放所有BIND相关的文件
directory "/var/named";
// 设置缓存数据转储文件的路径
dump-file "/var/named/data/cache_dump.db";
// 设置统计信息文件的路径
statistics-file "/var/named/data/named_stats.txt";
// 设置内存使用统计文件的路径
memstatistics-file "/var/named/data/named_mem_stats.txt";
// 设置记录递归查询的文件路径
recursing-file "/var/named/data/named.recursing";
// 设置信任锚点文件的路径
secroots-file "/var/named/data/named.secroots";
// 允许所有IP地址进行查询
allow-query { any; };
// 开启递归查询功能
recursion yes;
// 开启DNSSEC功能
dnssec-enable yes;
// 开启DNSSEC验证
dnssec-validation yes;
// 指定ISC DLV(DNSSEC Lookaside Validation)密钥文件的路径
bindkeys-file "/etc/named.root.key";
// 指定动态更新密钥的目录
managed-keys-directory "/var/named/dynamic";
// 设置BIND进程的PID文件路径
pid-file "/run/named/named.pid";
// 设置BIND会话密钥文件的路径
session-keyfile "/run/named/session.key";
};
logging {
// 设置日志记录的通道
channel default_debug {
// 设置日志文件的路径
file "data/named.run";
// 设置日志级别为动态,根据运行时的配置调整
severity dynamic;
};
};
zone "." IN {
// 定义根区域("."代表根),使用"hint"类型,通常用于指定根服务器的地址
type hint;
// 指定根区域文件的路径
file "named.ca";
};
// 包含扩展的区域配置文件,通常包含正向和反向查找区域的定义
include "/etc/named.rfc1912.zones";
// 包含根密钥文件的配置,用于DNSSEC
include "/etc/named.root.key";