问题
在 macOS Ventura 和 iOS 设备上,用户在连接到 Cato 时无法访问内部资源
环境
macOS Ventura 13.0 或更高版本
iPhone iOS 16 或更高版本
无论版本如何,Cato SDP 客户端
为内部域配置的 DNS 转发
原因
如果应用于SDP 用户的Cato DNS 设置为默认(空字段),Cato将向客户端推送以下DNS 信息:
主DNS服务器 10.254.254.1
备用DNS服务器 8.8.8.8
根据Cato的测试,当账户配置如上所述或使用已知公共DNS服务器(如8.8.8.8或1.1.1.1)时,macOS/iOS可能倾向于对配置的公共DNS服务器使用DoH(通过HTTPS的DNS)或DoT(通过TLS的DNS)进行名称解析。 Cato目前不支持DoH/DoT。
一旦macOS/iOS看到一个符合DoH/DoT标准的DNS服务器,它将忽略任何其他DNS服务器,包括Cato的DNS服务器IP。 更多信息可以在此Apple讨论中找到。
由于Cato PoPs 不支持DNS转发用于DoH/DoT数据包,DNS转发失败,用户无法访问内部资源,或获取的DNS结果不是预期的。
可以通过在终端中运行scutil --dns 命令来识别机器上的首选DNS服务器。 以下输出显示macOS偏向选择8.8.8.8作为主要DNS服务器。
MacBook-Air-2:~ xx$ scutil --dns
DNS 配置
解析器 #1
nameserver[0] : 8.8.8.8
nameserver[1] : 10.254.254.1
if_index : 24 (utun8)
标志 : 补充,请求A记录
到达 : 0x00000003 (可达, 瞬时连接)
顺序 : 101200请注意,当实体之间的DNS设置发生冲突时,最接近主机的实体(从主机>站点>分组>账户)具有优先级。 有关更多信息,请参阅配置DNS设置。
解决方案
这是 Apple 正在积极解决的已知问题。 可以在 Cato 实施以下解决方法:
在防火墙规则中阻止DoH(DNS 通过 HTTPS)和DNS 通过 TLS,以防止这些协议通过Cato。 这将迫使macOS/iOS切换到Cato的默认DNS服务器10.254.254.1,通过基于UDP的DNS,允许DNS转发。

将10.254.254.1 明确地设置为CMA中的唯一DNS服务器。 这将防止8.8.8.8(或任何其他支持DoH/DoT的DNS服务器)被设为机器的主DNS,并将强制所有DNS查询由Cato处理。 期间Always-On和防篡改被禁用多久。
DNS 服务器可以全局或按组设置,最好是预先配置的'所有SDP 用户' 用户组。 有关更多信息,请参阅SDP用户DNS设置的集中管理。
