问题
如果在同一防火墙后面的内部 DNS 服务器上使用 Azure 防火墙的 DNS 代理,那么对外部 DNS 记录的请求会发生什么(即,这是否会导致无限循环,其中 DNS 服务器从公共 DNS 服务器请求记录,但此请求被 FW 捕获并发送回内部 DNS 服务器)?
语境
我们在 Azure 中有一个安全的集线器/vwan,其中所有 vnet 间流量都通过防火墙,我们网络的所有进出流量也都通过防火墙。
我们希望能够DNS 代理在防火墙上允许我们在规则中使用 FQDN。
我们也在 FW 上指定了自定义 DNS 服务器(根据以下屏幕截图,这似乎是可以接受的微软文档。在屏幕截图中,他们使用的是内部 IP 和 MS 的特殊168.63.129.16
IP。对于我们来说,我们有 2 个域控制器的内部 IP,并且这些 IP 设置了条件转发,168.63.129.16
以用于我们拥有私有端点和私有 DNS 区域的域。
我担心的是,启用 DNS 代理后,由于从我们的 DC 到互联网的流量要经过这个防火墙,它是否会拦截对公共 DNS 的查询并导致无限循环,从而导致任何对外部 DNS 信息的请求都失败(一旦任何先前缓存的条目过期)?
类似地,对 168.63.129.16 的请求(通过条件转发器)是否也会被视为进入互联网并因此被拦截?
文档中的屏幕截图意味着我们可以168.63.129.16
在防火墙上添加 DNS 服务器...但是这会被视为与其他 DNS 服务器的循环吗(即,由于168.63.129.16
不知道 Azure 私有 DNS 区域之外的内部区域,因此对内部区域的请求有时会失败,但有时在访问我们的内部 DNS 服务器时会返回预期的响应),或者是否存在某种优先顺序,168.63.129.16
仅当我们的内部 DNS 服务器没有记录时才会联系?
如果这种无限循环是可能的,那么正确的解决方法是什么?我们是否只是将来自 DC 的出站流量路由为下一跳0.0.0.0/0
(这会影响所有流量,而不仅仅是端口 53),还是有更好的解决方案?
答案1
防火墙代理通过 2 个配置工作:1)在 fw 上启用;2)客户端配置为使用它,即在客户端上它必须指向 fw 地址作为其 DNS 服务器。
您的 DC(它们同时也是 DNS)拥有自己的互联网/公共域名转发器。DC 将外部查询直接转发到外部 DNS 服务器,这意味着此类查询不会经过 fw。
答案2
将 Azure 防火墙用作部署在中心虚拟网络中的自定义 DNS 转发器虚拟机的 DNS 代理,或直接用作 Azure 提供的默认 DNS。DNS 代理是客户端虚拟机向 DNS 服务器发送 DNS 请求的中介。如果您配置了自定义 DNS 服务器,然后启用 DNS 代理以避免 DNS 解析不匹配,并在网络规则中启用 FQDN(完全限定域名)筛选。此功能是网络规则中可靠的 FQDN 筛选所必需的。如果不启用 DNS 代理,则来自客户端的 DNS 请求可能会在不同时间传输到 DNS 服务器或返回与防火墙不同的响应。DNS 代理将 Azure 防火墙置于客户端请求的路径中以避免不一致。你可以在 Azure 防火墙和防火墙策略设置中启用 DNS 代理。有关详细信息,请参阅 Azure 防火墙 DNS 代理。若要了解有关 DNS 代理日志的详细信息,请参阅 Azure 防火墙日志和指标文档。
因此它只是将 DNS 查询转发到您的内部 DNS 服务器。