如何使用 $GENERATE 指令在 BIND 中为 /16 IP 块添加 PTR 记录?

如何使用 $GENERATE 指令在 BIND 中为 /16 IP 块添加 PTR 记录?

我正在尝试使用 PTR 记录将一段 IP 反向映射到某个特殊名称,以便通过简单的 nslookup 轻松反映它们的使用情况。

例如,这里有一个 nslookup 结果:

# nslookup 172.17.201.101
Server:         10.253.33.1
Address:        10.253.33.1#53

101.201.17.172.in-addr.arpa     name = for.internal.use.only.

我了解到我可以使用$GENERATE指令为 /24 块添加 PTR 记录

$GENERATE 0-254    $.201.17.172    PTR    for.internal.use.only.

问题是:

  1. 我通过添加 PTR 记录来公开 IP 地址信息的做法正确吗?还有更好的主意吗?
  2. 如果上述问题为是,那么如何为 /16 IP 范围添加 PTR 记录?我知道我可以写 255 行$GENTERATE指令,但有没有更好的解决方案?

答案1

如果所有条目都相同,则可能可以使用一个区域文件,其中每个区域文件$GENERATE对应所有区域。

命名的.conf:

zone "1.168.192.in-addr.arpa" IN { type master; file "for-internal-use-ptr.zone"; };
zone "2.168.192.in-addr.arpa" IN { type master; file "for-internal-use-ptr.zone"; };
...

供内部使用-ptr.zone:

$TTL 1D
@       IN      SOA     ns.your-domain. root.ns.your-domain.  (
                                      1          ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
              IN      NS      ns1.your-domain.
              IN      NS      ns2.your-domain.

$GENERATE 0-254 $ PTR    for.internal.use.only.

答案2

您可以在 ptr 区域文件中使用 $ORIGIN 变量。以下是示例。

$ORIGIN 1.168.192.in-addr.arpa.
$GENERATE 0-254 $ PTR    for.internal.use.only.

$ORIGIN 2.168.192.in-addr.arpa.
$GENERATE 0-254 $ PTR    for.internal.use.only.

相关内容