目录

简介

背景信息

范围

症状

问题

解决方案

第 1 项

第 2 项

简介

本文档介绍如何解决新版MacOS Big Sur影响DNS解析的问题。

背景信息

范围

- 网络上的AnyConnect漫游安全模块或Umbrella（例如VA或转发）

- Umbrella独立漫游客户端不受影响。存在单DNS环境，其中所有DNS都被127.0.0.1覆盖。

- 发生在具有多个网络接口的环境中，但只有一个接口可以解析内部地址。例如：

- VPN和非VPN

- 多个NIC — 一个公司网卡和一个非公司网卡

症状

- 无法（或间歇性）访问本地域，同时保留访问公共域的能力

- nslookup未具体受到影响并继续运行

- ping、traceroute等解析错误或找不到内部域

问题

此问题是由MacOS中的代码引起的，该代码处理多个DNS服务器存在时管理DNS解析的方式。这些解析器可以是单个网络适配器上的多个解析器，也可以是跨不同网络适配器的多个解析器。以REFUSED做出响应的DNS服务器将被“处罚”60秒。发生这种情况时，将在未受处罚的备用DNS服务器上尝试在此时间段内发生的任何其他DNS查询。

例如，如果DHCP为网络A和B通告两个DNS服务器，A以REFUSED响应，那么B优先于A60秒，只要B不受惩罚。

如果所有DNS服务器都受到处罚，则MacOS偏向于最近受到处罚程度最低的服务器。例如，如果B受到处罚，而A已经受到处罚，则MacOS偏向A，而不是B。

MacOS 11和更高版本尝试主张DoH（通过HTTPS的DNS）的方式更加剧了这一点。 MacOS被编程为尽可能首选用户设置DoH提供程序。这将规避Umbrella DNS安全，这意味着当MacOS发起DoH请求时，我们将返回REFUSED响应（根据RFC）。由于DNS惩罚，可能导致内部域无法正确解析。有关此问题的详细信息，请参阅以下文章：在iOS 14和macOS 11中配置DNS解析器选择。

解决方案

我们尚不清楚苹果是否计划改变这种行为，或者Umbrella能否改变他们的行为来解决这个问题。就目前而言，有两个选项可以用作工作方法：

第 1 项

在组策略中启用拆分DNS，并特别将内部域添加到拆分DNS配置中，以便它们只能通过隧道进行解析。这可确保这些域只能通过本地操作系统解析程序通过隧道进行解析，而任何其他域只能通过隧道外部进行解析。

第 2 项

在组策略中启用tunnel-all-DNS，以阻止任何DNS流量进入隧道外部。