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,例如作为缓存名称服务器。
-
named或named-chroot服务正在运行。
流程
在
/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 地址时才允许区域传送。
-
此服务器作为
验证
/etc/named.conf文件的语法:# named-checkconf如果命令没有显示输出,则语法为正确的。
使用以下内容创建
/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.1和192.0.2.30地址的指针(PTR)记录。
-
将资源记录的默认生存时间 (TTL) 值设置为 8 小时。如果没有时间后缀(例如没有使用
在区域文件上设置安全权限,仅允许
named组读取它:# chown root:named /var/named/2.0.192.in-addr.arpa.zone # chmod 640 /var/named/2.0.192.in-addr.arpa.zone验证
/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重新载入 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接口上的查询。