你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
可以为 Azure 防火墙配置自定义 DNS 服务器并启用 DNS 代理。 可以在部署防火墙时配置这些设置,或者以后从“DNS 设置”页进行配置。 默认情况下,Azure 防火墙使用 Azure DNS,而 DNS 代理已禁用。
DNS 服务器
DNS 服务器维护域名并将它解析为 IP 地址。 默认情况下,Azure 防火墙将 Azure DNS 用于名称解析。 通过“DNS 服务器”设置,你可以配置自己的 DNS 服务器来用于 Azure 防火墙名称解析。 你可以配置一台服务器或多台服务器。 如果配置多个 DNS 服务器,则会随机选择所使用的服务器。 最多可在“自定义 DNS”中配置 15 个 DNS 服务器。
注意
对于使用 Azure 防火墙管理器管理的 Azure 防火墙实例,DNS 设置是在关联的 Azure 防火墙策略中配置的。
配置自定义 DNS 服务器
- 在 Azure 防火墙的“设置”下,选择“DNS 设置” 。
- 在“DNS 服务器”下,可以键入或添加之前在虚拟网络中指定的现有 DNS 服务器。
- 选择“应用”。
防火墙现在将 DNS 流量定向到指定的 DNS 服务器以进行名称解析。
DNS 代理
可以对 Azure 防火墙进行配置来充当 DNS 代理。 DNS 代理是从客户端虚拟机到 DNS 服务器的 DNS 请求的中介。
如果要在网络规则中启用 FQDN(完全限定的域名)筛选,请启用 DNS 代理并更新虚拟机配置,以将防火墙用作 DNS 代理。
如果在网络规则中启用 FQDN 筛选,但未将客户端虚拟机配置为使用 Azure 防火墙作为其 DNS 代理,则来自这些客户端的 DNS 请求可能会在不同的时间解析或返回与 Azure 防火墙看到的 DNS 请求不同的结果。 若要确保 DNS 解析和 FQDN 筛选一致,请将客户端虚拟机配置为使用 Azure 防火墙作为其 DNS 代理。 此设置可确保所有 DNS 请求都通过防火墙,防止不一致。
当 Azure 防火墙是 DNS 代理时,可以使用两种缓存函数类型:
积极缓存:DNS 解析成功。 防火墙会根据响应中的 TTL(生存时间)将这些响应缓存最长 1 小时。
消极缓存:DNS 解析不返回响应,或者不进行解析。 防火墙会根据响应中的 TTL 将这些响应缓存最长 30 分钟。
DNS 代理将存储网络规则中的 FQDN 的所有已解析的 IP 地址。 最佳做法是使用可解析为一个 IP 地址的 FQDN。
策略继承
应用于独立防火墙的策略 DNS 设置替代独立防火墙的 DNS 设置。 子策略继承所有父策略 DNS 设置,但可以替代父策略。
例如,若要在网络规则中使用 FQDN,应启用 DNS 代理。 但是,如果父策略 未 启用 DNS 代理,则子策略不支持网络规则中的 FQDN,除非你在本地重写此设置。
DNS 代理配置
配置 DNS 代理需要三个步骤:
- 在 Azure 防火墙 DNS 设置中启用 DNS 代理。
- (可选)配置自定义 DNS 服务器或使用提供的默认设置。
- 在虚拟网络 DNS 服务器设置中将 Azure 防火墙的专用 IP 地址配置为自定义 DNS 地址,以将 DNS 流量定向到 Azure 防火墙。
注意
如果使用自定义 DNS 服务器,请从虚拟网络中选择不属于 Azure 防火墙子网的 IP 地址。
若要配置 DNS 代理,必须将你的虚拟网络 DNS 服务器设置配置为使用防火墙专用 IP 地址。 然后在 Azure 防火墙的“DNS 设置”中启用 DNS 代理。
配置虚拟网络 DNS 服务器
- 选择 DNS 流量将通过 Azure 防火墙实例路由到的虚拟网络。
- 在“设置”下,选择“DNS 服务器”。
- 在“DNS 服务器”下,选择“自定义”。
- 输入防火墙的专用 IP 地址。
- 选择“保存” 。
- 重启已连接到虚拟网络的 VM,以便为其分配新的 DNS 服务器设置。 VM 在重启之前,将继续使用其当前 DNS 设置。
启用 DNS 代理
- 选择你的 Azure 防火墙实例。
- 在“设置”下,选择“DNS 设置” 。
- 默认情况下,“DNS 代理”已禁用。 启用此设置后,防火墙会在端口 53 上进行侦听,并将 DNS 请求转发到配置的 DNS 服务器。
- 查看“DNS 服务器”配置以确保设置适用于你的环境。
- 选择“保存” 。
高可用性故障转移
DNS 代理具有一种故障转移机制,该机制停止使用检测到的不正常的服务器,并使用另一个可用的 DNS 服务器。
如果所有 DNS 服务器都不可用,则不会回退到另一个 DNS 服务器。
运行状况检查
只要上游服务器报告运行不正常,DNS 代理就会执行五秒钟的运行状况检查循环。 运行状况检查是对根名称服务器进行递归 DNS 查询。 上游服务器被视为正常后,防火墙将停止运行状况检查,直至出现下一个错误。 当正常代理返回错误时,防火墙会在列表中选择另一个 DNS 服务器。
具有 Azure 专用 DNS 区域的 Azure 防火墙
Azure 防火墙支持与 Azure 专用 DNS 区域集成,允许它解析专用域名。 将专用 DNS 区域与部署 Azure 防火墙的虚拟网络相关联时,防火墙可以解析该区域中定义的名称。
重要
避免在专用 DNS 区域中创建会覆盖 Microsoft 拥有的默认域的 DNS 记录。 重写这些域可以防止 Azure 防火墙解析关键终结点,这可能会中断管理流量,并导致日志记录、监视和更新等功能失败。
以下是不应替代的 Microsoft 拥有的域的非详尽列表,因为 Azure 防火墙管理流量可能需要访问这些域:
azclient.ms
azure.com
cloudapp.net
core.windows.net
login.microsoftonline.com
microsoft.com
msidentity.com
trafficmanager.net
vault.azure.net
windows.net
management.azure.com
table.core.windows.net
store.core.windows.net
azure-api.net
microsoftmetrics.com
time.windows.com
servicebus.windows.net
blob.storage.azure.net
blob.core.windows.net
arm-msedge.net
cloudapp.azure.com
monitoring.core.windows.net
例如,Azure 防火墙管理流量需要使用域 blob.core.windows.net
访问存储帐户。 如果为其 *.blob.core.windows.net
创建专用 DNS 区域并将其与防火墙的虚拟网络相关联,则会替代默认 DNS 解析并中断必要的防火墙作。 若要避免此问题,请不要替代默认域。 而是为唯一的子域创建专用 DNS 区域,例如 *.<unique-___domain-name>.blob.core.windows.net
。
或者,若要防止专用 DNS 区域影响 Azure 防火墙,请在单独的虚拟网络中部署需要专用 DNS 区域的服务。 这样,专用 DNS 区域仅与服务虚拟网络相关联,不会影响 Azure 防火墙的 DNS 解析。