![BIND9 使用公共 IP 进行本地反向查找 - 是设置损坏了还是设置有故障?](https://linux22.com/image/781002/BIND9%20%E4%BD%BF%E7%94%A8%E5%85%AC%E5%85%B1%20IP%20%E8%BF%9B%E8%A1%8C%E6%9C%AC%E5%9C%B0%E5%8F%8D%E5%90%91%E6%9F%A5%E6%89%BE%20-%20%E6%98%AF%E8%AE%BE%E7%BD%AE%E6%8D%9F%E5%9D%8F%E4%BA%86%E8%BF%98%E6%98%AF%E8%AE%BE%E7%BD%AE%E6%9C%89%E6%95%85%E9%9A%9C%EF%BC%9F.png)
在正式发布之前,我们有一个预发布网站来测试 DNS(和其他服务)。我以前从未在这里使用过公共 IP,它可能无法按我的意图工作。我们的 ISP 有一个 /29 网络,它是公共 IP。121.24.124.144/29。为了测试我们 DNS 的不同“视图”,我们设置了路由器的 LAN 端来模拟这个网络;路由器作为我们 ISP 的网关。除了无法从外部实际连接(当然可以通过端口转发完成)之外,这不是这里的意图。)
拓扑:
连接到我们 ISP 的路由器通过 DHCP 连接到我们的网络,并通过 NAT 连接到我们的网络。LAN IP 设置为 121.24.124.145/29(这是我们自己的 IP 网络,因此此时不应从外部连接)它应该(并且确实)在本地区域中充当囚徒。暂时如此。
我们的 DNS 连接的路由器 (shelby) 的 WAN IP 为 121.24.124.146,LAN 为 192.168.13.1。DNS 服务器 (emma) 位于 192.168.13.2。
> dig -x 121.24.124.146 @192.168.13.2
结果是:
;; ANSWER SECTION:
146.124.24.121.in-addr.arpa. 86400 IN PTR static-121-24-124-146.cust.com.
;; AUTHORITY SECTION:
124.24.121.in-addr.arpa. 77013 IN NS o.dns.cust.com.
124.24.121.in-addr.arpa. 77013 IN NS f.dns.cust.com.
;; ADDITIONAL SECTION:
f.dns.cust.com. 76895 IN A 19.71.22.3
o.dns.cust.com. 77013 IN A 19.71.18.5
(这是此时 IP 地址的当前所有者 (ISP))
我以为我们的 DNS 会回复
;; ANSWER SECTION:
146.124.24.121.in-addr.arpa. 86400 IN PTR fw-shelby.energia.com.
任何其他本地主机在进行反向查找时均可按预期工作,且 IP/FQDN 正确。转发地址工作正常。
> dig fw-shelby.energia.com
;; ANSWER SECTION:
fw-shelby.energia.com. 10800 IN CNAME shelby.energia.com.
shelby.energia.com. 10800 IN A 121.24.124.146
;; AUTHORITY SECTION:
energia.com. 10800 IN NS emma.energia.com.
;; ADDITIONAL SECTION:
emma.energia.com. 10800 IN A 192.168.13.1
这个结果引发了一些问题。
- BIND 是否能够识别公共 IP 而非内部 IP(192.168. 等)?[这样反向查找将导致外部查找,而不是我们的本地 fqdn]
- 我们的反向文件是根据网络为 /29 的事实配置的,这意味着它从 .144 开始,这表明反向查找文件也从 144.124.24.121.in-addr.arpa 开始。我找不到任何信息或小型网络和反向查找文件从 0....in-addr.arpa 以外的任何地方开始的示例。这是一种限制、一种不寻常的解决方案还是一种错误?
- 如果这没有损坏也不正确 - 那么如何设置才能使其工作呢?
受影响的文件:
/etc/bind/zonefiles/public/named.reverse.zone.conf
zone "144.124.24.121.in-addr.arpa"
{
type master;
file "/etc/bind/zonefiles/public/reverse-144.124.24.121.zone";
allow-update { none; };
};
; /etc/bind/zonefiles/public/reverse-144.124.24.121.zone
; 121.24.124.144 (-121.24.124.151)
$ORIGIN 144.124.24.121.in-addr.arpa.
$TTL 345600
@ IN SOA emma.energia.com. root.emma.energia.com. (
2022101102 ;Serial
86400 ;Refresh 24 hours
7200 ;Retry 2 hours
2592000 ;Expire 30 days
345600 ) ;Minimum 4 days
IN NS emma.energia.com.
145 IN PTR gw-isp.energia.com.
146 IN PTR shelby.energia.com.
147 IN PTR shelley.energia.com.
148 IN PTR mailis.energia.com.
149 IN PTR ava.energia.com.
150 IN PTR www.energia.com.
我检查了将区域设置为 $ORIGIN 124.24.121.in-addr.arpa。只是为了排除反向区域可能不允许这么“小”。但是没有,没有区别。
作为参考:
; Bind reverse hosts
$ORIGIN 13.168.192.in-addr.arpa.
$TTL 345600
@ IN SOA emma.energia.com. root.emma.energia.com. (
1998030900 ;Serial
86400 ;Refresh 24 hours
7200 ;Retry 2 hours
2592000 ;Expire 30 days
345600 ) ;Minimum 4 days
IN NS emma.energia.com.
1 IN PTR gw-shelby.energia.com.
2 IN PTR emma.energia.com.
3 IN PTR gw-rivendale-link-br.energia.com.
4 IN PTR unused-ip-rd4.energia.com.
正向和反向均可正常工作。我没有提交任何其他命名配置文件,因为其余文件均可正常工作,并且日志确认区域已加载。但如果需要,请询问!
获得我们自己的反向名称不会那么令人沮丧。ISP 的反向名称只会让人困惑。
答案1
您对提供商分配给您的公共 IP 地址的反向 DNS 记录的内部处理由您决定,但互联网的其余部分只能看到您的 ISP 为您提供/支持/设置的内容。
就我个人而言,我会与他们保持一致,而不是在本地覆盖他们对 121.24.124.144/29 的反向 DNS 记录是否设置。
通常 ISP 会:
- 不提供设置自定义 PTR 记录的任何支持
- 提供一个控制面板来调整分配给您的几个 IP 地址的 PTR 记录,然后将其输入到其 DNS 中,位于 121.24.124.0/24 范围内的其他 IP PTR 记录之间。
- 他们跟随RFC 2317并在其 DNS 中设置 CNAME 记录以将 PTR 记录委托给您管理的区域。
您当前配置中的问题:
/etc/bind/zonefiles/public/named.reverse.zone.conf
zone "144.124.24.121.in-addr.arpa"
{
type master;
file "/etc/bind/zonefiles/public/reverse-144.124.24.121.zone";
allow-update { none; };
};
这仅为 1 个 IP 地址设置反向 DNS 区域,121.24.124.144
而不是为子网设置。
dig -x 121.24.124.14
6
失败,因为它不是121.24.124.14
4
。
确实没有一个很好的解决方案:
在您的 named.conf 中使用
zone "124.24.121.in-addr.arpa"
,然后本地覆盖整个 121.24.124.0/24 范围内所有 IP 的 PTR 记录。
您可以(定期/一次性)使用 PTR 记录的当前值(所有未分配给您的 IP)填充区域文件以缓解这种情况。您为分配给您的每个单独的 IP 地址设置一个节:
zone "144.124.24.121.in-addr.arpa" { type master; file "/etc/bind/zonefiles/public/reverse-124.24.121.zone"; allow-update { none; }; }; zone "145.124.24.121.in-addr.arpa" { type master; file "/etc/bind/zonefiles/public/reverse-124.24.121.zone"; allow-update { none; }; }; ... zone "150.124.24.121.in-addr.arpa" { type master; file "/etc/bind/zonefiles/public/reverse-124.24.121.zone"; allow-update { none; }; };
然后设置一个(单个)区域文件(使用一些$ORIGIN
技巧允许您使用简写和单个区域文件,而不是为每个 IP 创建一个唯一的区域文件):
; /etc/bind/zonefiles/public/reverse-124.24.121.zone
; used for the 121.24.124.144-121.24.124.151 range
$TTL 345600
@ IN SOA emma.energia.com. root.emma.energia.com. (
2022101102 ;Serial
86400 ;Refresh 24 hours
7200 ;Retry 2 hours
2592000 ;Expire 30 days
345600 ) ;Minimum 4 days
IN NS emma.energia.com.
$ORIGIN 124.24.121.in-addr.arpa.
145 IN PTR gw-isp.energia.com.
146 IN PTR shelby.energia.com.
147 IN PTR shelley.energia.com.
148 IN PTR mailis.energia.com.
149 IN PTR ava.energia.com.
150 IN PTR www.energia.com.