我在 BIND 上运行了一个“隐藏的主要主机”DNS 设置,因此只有次要主机对外界可见。防火墙当前允许从 Internet 到辅助节点上的 udp/53 和 tcp/53 的流量,一切似乎都正常。
然而,每天,我都会看到大量来自与我无关的外部地址的“拒绝来自非主服务器的通知”日志条目。我明白那里的日志条目告诉我什么,但我不想在我的日志中包含所有这些“噪音”。
由于只有辅助设备面向 Internet,我是否可以安全地拒绝来自 Internet 的 tcp/53 流量以防止“拒绝来自非主设备的通知”条目,或者是否有充分的理由允许 tcp/53 流量流向辅助设备?master 在同一防火墙后面,不会受到此防火墙更改的影响。
如果应答超过 512 字节,也使用 TCP,不仅用于区域传输。
我不会在您的防火墙上阻止它。
标准机制是 dns 服务器截断大于 512 字节的响应。DNS 客户端应使用 TCP 重新发送查询以获得完整响应。IPv6 AAAA 和 DNSSEC 查询响应很容易超出 512 字节的限制。具有长主机名的 CNAME 查询也可以超过此限制。
如果您确定您的 CNAME 不太长并且您不打算使用 DNSSEC 和 IPv6 解析,您可以在防火墙上阻止 tcp/53 端口。
您还应该检查为什么会收到来自外部的通知。这意味着您的 IP 在某些域的 NS 记录中列出。嗅探这个通知,如果可能 - 它可能表明您的 dns 配置与您的想法不同。
我假设您在这种情况下应用的(未说明的)逻辑是假设 DNS 仅使用 TCP 进行区域传输,并且由于您没有对 Internet 进行区域传输,您认为切断它应该是安全的从 Internet 到您的辅助设备的 TCP 端口 53 流量。
要给出答案,您首先需要了解为什么 DNS 同时使用 UDP 和 TCP,以及它何时使用其中之一。
原始 DNS 规范指出 UDP DNS 数据包的最大大小为 512 字节。如果答案超出此范围,服务器会要求客户端使用 TCP 重新发送请求,并且服务器会通过 TCP 提供答案。请注意,这不仅适用于区域传输,还适用于任何大的答案。一个典型的 DNS 应答数据包通常足够小以适应限制,但底线是您也必须允许 TCP 到您的 DNS 服务器,即使您没有对 Internet 进行区域传输。
请参阅 RFC 5966。严格来说,RFC 适用于 DNS 软件实施者,但它解释了为什么DNS 服务器的运营商也应该允许 TCP。