是否可以让 Microsoft DNS 服务器向在非标准端口上运行的 BIND DNS 服务器发送区域更新通知?例如5353
?
背景
我继承了一些遗留基础设施,其中 BIND DNS 服务器正在监听两个单独的端口,不同的端口用于不同的区域。
- EXAMPLE.COM 正在监听标准端口 53。
- EXAMPLE.NET 正在监听非标准端口 5353。
有人告诉我这是为了支持不再使用的过滤设备,这种配置的具体原因和理由不再可用,原始管理员也不再可用。
我们想要在这里完成的是将 EXAMPLE.NET 的记录移动到组织中用于其他目的的 Windows DNS 服务器,并尽量减少对其余基础设施的中断和重新配置。此端口 5353 EXAMPLE.NET 存在于各地无数的配置文件中,追踪所有这些文件将需要相当长的时间。
为此,我们将区域数据从 BIND 服务器复制到 Windows 服务器上。现在我想将 BIND 服务器上的 EXAMPLE.NET 设为 Microsoft DNS 服务器的从属服务器。
配置和问题
我已经配置了所有设置,以便 BIND 服务器可以手动从 Microsoft 服务器传输区域,但我想改用通知。DNS 管理单元中的区域属性窗口有一个地方可以添加要在区域更新时收到通知的服务器,但它不允许设置端口The string entered is neither a valid IP address nor a valid DNS name
,当使用host:port
或符号时,会返回一条消息host#port
。
除了在 BIND 服务器上涉及 iptables 的一些可怕的黑客攻击之外,我需要知道是否可以让 Microsoft DNS 服务器将区域更新发送到在非标准端口上运行的 DNS 服务器?
请注意:我对这个特定问题的答案非常感兴趣,而对实现此目标的其他方式不太感兴趣,例如,通过使用视图并在标准端口上运行 DNS
答案1
正如您已经注意到的,Windows DNS 服务器仅允许设置要通知的服务器列表中的 IP 地址。这几乎是死路一条。(坦率地说,这个问题一开始听起来像是一个坏主意,但由于目标是逐步过渡到更好的做法,所以这确实是一个好问题。)
在 BIND 中,您不需要使用任何更复杂的功能,例如您提到的视图。您只需同时在两个端口上启用 BIND53
即可5353
:
options {
listen-on port 53 { any; };
listen-on port 5353 { any; };
}
这将允许旧系统使用端口,5353
而 Windows Server 通过 通知53
。此外,它还使您能够摆脱可怕的 iptables 攻击目前用于更改DNS端口的解决方案。