1.5.3. 在 BIND 主服务器中设置反向区


反向区域将 IP 地址映射到名称。例如,如果您负责 IP 范围 192.0.2.0/24,您可以在 BIND 中设置反向区域,以将 IP 地址从这个范围内的 IP 地址解析为主机名。

注意

如果您为整个类网络创建一个反向区域,请相应地命名区域。例如,对于 C network 192.0.2.0/24,区域的名称是 2.0.192.in-addr.arpa。如果要为不同的网络大小创建反向区域,如 192.0.2.0/28,区域的名称为 28-2.0.192.in-addr.arpa

先决条件

  • 已配置了 BIND,例如作为缓存名称服务器。
  • namednamed-chroot 服务正在运行。

流程

  1. /etc/named.conf 文件中添加区定义:

    zone "2.0.192.in-addr.arpa" {
        type master;
        file "2.0.192.in-addr.arpa.zone";
        allow-query { any; };
        allow-transfer { none; };
    };

    这些设置定义:

    • 此服务器作为 2.0.192.in-addr.arpa 反向区域的主服务器(type master)。
    • /var/named/2.0.192.in-addr.arpa.zone 文件是区域文件。如果您设置了相对路径,如本例中所示,这个路径相对于您在 options 语句中的目录中创建的 directory 相对。
    • 任何主机都可以查询此区域。另外,还可指定 IP 范围或 BIND 访问控制列表 (ACL) 别名来限制访问。
    • 没有主机可以传输区域。仅在设置次要服务器并且仅为次要服务器的 IP 地址时才允许区域传送。
  2. 验证 /etc/named.conf 文件的语法:

    # named-checkconf

    如果命令没有显示输出,则语法为正确的。

  3. 使用以下内容创建 /var/named/2.0.192.in-addr.arpa.zone 文件:

    $TTL 8h
    @ IN SOA ns1.example.com. hostmaster.example.com. (
                              2022070601 ; serial number
                              1d         ; refresh period
                              3h         ; retry period
                              3d         ; expire time
                              3h )       ; minimum TTL
    
                      IN NS   ns1.example.com.
    
    1                 IN PTR  ns1.example.com.
    30                IN PTR  www.example.com.

    这个区域文件:

    • 将资源记录的默认生存时间 (TTL) 值设置为 8 小时。如果没有时间后缀(例如没有使用 h 指定小时),BIND 会将该值解析为秒。
    • 包含所需的 SOA 资源记录,以及有关该区域的详细信息。
    • ns1.example.com 设置为此反向区域的权威 DNS 服务器。要正常工作,区域需要至少一个域名服务器 (NS) 记录。但是,若要与 RFC 1912 兼容,您需要至少有两个域名服务器。
    • 设置 192.0.2.1192.0.2.30 地址的指针(PTR)记录。
  4. 在区域文件上设置安全权限,仅允许 named 组读取它:

    # chown root:named /var/named/2.0.192.in-addr.arpa.zone
    # chmod 640 /var/named/2.0.192.in-addr.arpa.zone
  5. 验证 /var/named/2.0.192.in-addr.arpa.zone 文件的语法:

    # named-checkzone 2.0.192.in-addr.arpa /var/named/2.0.192.in-addr.arpa.zone
    zone 2.0.192.in-addr.arpa/IN: loaded serial 2022070601
    OK
  6. 重新载入 BIND:

    # systemctl reload named

    如果在 change-root 环境中运行 BIND,请使用 systemctl reload named-chroot 命令来重新加载该服务。

验证

  • 从反向区查询不同的记录,并验证输出是否与您在区域文件中配置的记录匹配:

    # dig +short @localhost -x 192.0.2.1
    ns1.example.com.
    
    # dig +short @localhost -x 192.0.2.30
    www.example.com.

    本例假定 BIND 在同一主机上运行并响应 localhost 接口上的查询。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部