https://learn.microsoft.com/zh-cn/troubleshoot/windows-client/networking/firewall-profile-not-switch-to-domain
本文解决了使用第三方 VPN 客户端连接到域网络时,Windows 防火墙配置文件无法从“公共”或“专用”切换到“域”的问题。
适用于:Windows 10 - 所有版本
原始 KB 数: 4550028
症状
使用第三方虚拟专用网络 (VPN) 客户端连接到域网络。 在这种情况下,Windows 防火墙并不总是按预期从公共或专用配置文件切换到域配置文件。
原因
某些第三方 VPN 客户端中的时差有时会导致此问题。 当客户端将必要的路由添加到域网络时,会出现延迟。
解决方案
若要解决此问题,我们建议你联系 VPN 提供商以获取解决方案,以减少添加域路由导致的时差。
对于 VPN 提供程序,可以使用回调 API 在 VPN 适配器到达 Windows 后立即添加路由。 例如:
NotifyUnicastIpAddressChange:提醒调用方任何 IP 地址发生任何更改,包括 DAD 状态的更改。
NotifyIpInterfaceChange:注册回调,以通知所有 IP 接口的更改。
在用户模式下,存在 IpHelper API。 例如:
NotifyAddrChanget:通知用户地址更改。
解决方法
重要
请仔细遵循本部分中的步骤进行操作。 对注册表修改不当可能会导致严重问题。 修改之前,备份注册表以便在发生问题时进行还原。
若要解决此问题,请禁用负缓存,以帮助网络位置感知 (NLA) 服务重试域检测。 为此,请使用以下方法。
首先,通过将 NegativeCachePeriod 注册表项添加到以下子项来禁用域发现负缓存:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetLogon\Parameters
名称: NegativeCachePeriod
类型: REG_DWORD
值 数据: 0 (默认值: 45 秒;设置为 0 以禁用缓存)如果问题未解决,请通过将 MaxNegativeCacheTtl 注册表项添加到以下子项来进一步禁用 DNS 负缓存:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters
名称: MaxNegativeCacheTtl
类型: REG_DWORD
值 数据: 0 (默认值: 5 秒;设置为 0 以禁用缓存)
更多信息
发生此问题时,事件流如下所示:
用户连接到 VPN。
在 VPN 隧道设置期间,会创建 VPN 接口并为其分配 IP 地址,并将必要的路由添加到接口。 以下情况适用:
该地址属于特定类型,例如 DHCP、IPv6 链路本地和 IPv6 临时。
为该地址启用乐观重复地址检测 (DAD) 。
TCP/IP 在以下任一情况下会立即添加主机路由和链路上子网路由:
否则,TCP/IP 会在 DAD 成功完成后添加这些路由。
VPN 客户端负责 VPN 网络的必要路由,例如使 VPN 接口可路由到 VPN DNS 服务器。
第一个路由更改触发网络连接状态指示器 (NCSI) 检测。 网络位置感知 (NLA) 服务尝试向域控制器进行身份验证,以将正确的配置文件分配给防火墙。
身份验证首先让 NLA 服务调用 DsGetDcName 函数来检索 DC 名称。 它通过名称的 DNS 名称解析完成,例如 as_ldap._tcp。CNNDC._sites.dc._msdcs。<domainname>。
如果在将指向 VPN DNS 服务器的必要 VPN 路由添加到 VPN 接口之前发生此名称解析,则此 DNS 名称解析将失败。 它返回“DsGetDcName 函数失败,ERROR_NO_SUCH_DOMAIN”。然后,缓存此结果。
DNS 名称解析失败也可能创建负 DNS 缓存。 当 NLA 服务重试域检测时,负缓存会导致其他故障。
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/6822.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~