安装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";