目录

简介

影响

根本原因

分辨率

简介

本文档介绍基于Microsoft Universal Windows Platform(UWP)构建的VPN应用的利用率。 这些应用程序通常在Windows 8或更高版本的Metro/Modern GUI中显示为应用程序。桌面应用程序和传统的Windows风格程序不使用UWP，也不会受到影响。

如果您看到非应用样式的Windows VPN或始终在VPN上出现问题，请参阅我们的在Umbrella漫游客户端的Windows VPN上的说明：软件和VPN兼容性指南。

AnyConnect Umbrella漫游模块不会导致相同的互操作性问题。

影响

当漫游客户端处于活动状态时，UWP VPN应用用户在尝试启动VPN会话时收到“No such host is known”或类似错误消息。这会阻止用户成功连接到VPN。如果漫游客户端停止或使用VPN客户端的桌面版本，则不会出现此错误。

例如，这些命令不起作用：

- Pulse Secure App +漫游客户端

- SonicWall MobileConnect +漫游客户端

对于这些设备，连接到同一VPN头端会正常工作：

- Pulse Secure桌面应用+漫游客户端

- SonicWall NetExtender或SonicWall Desktop应用程序+漫游客户端

- Pulse Secure App + AnyConnect Umbrella漫游模块*

- SonicWall MobileConnect + AnyConnect伞状漫游模块*

*AnyConnect Umbrella模块不会将127.0.0.1（另一个接口）设置为DNS设置，而是使用内核驱动程序将DNS重定向到127.0.0.1。UWP应用不知道它们使用的是不同的DNS适配器，目前不受影响。

根本原因

根据设计，微软在Windows 8+中构建了“现代”应用，使其更加沙盒。其中一项限制适用于VPN应用。基于UWP（应用）构建的VPN仅限于使用生成查询的接口。由于Umbrella漫游客户端正在侦听127.0.0.1（不同的接口l0），因此查询不会到达漫游客户端（或运行在127.0.0.1上的任何其他DNS转发）。

以下调用允许将套接字创建限制为一个接口。下面是已知UWP VPN应用将DNS限制在其接口上的情况：

ConnectAsync（主机名、字符串、SocketProtectionLevel、NetworkAdapter）

"ConnectAsync(Hostname， String， SocketProtectionLevel， NetworkAdapter)方法使用的名称解析机制仅限于域名系统(DNS)命名空间的指定接口。" https://learn.microsoft.com/en-us/uwp/api/windows.networking.sockets.streamsocket

Windows VPN API会使用此连接机制或类似的连接机制，导致UWP“应用”式VPN无法与漫游客户端配合工作，因为它将127.0.0.1用于DNS。因此，VPN连接失败，因为DNS被发送到127.0.0.1;但是，由于呼叫的限制，漫游客户端从未收到或应答该呼叫。因此，VPN连接由于DNS故障而失败。

根本原因与Windows NCSI连接指示器的设计限制类似，在该指示器中永远不查询127.0.0.1以确认DNS连接（由Microsoft解决）。

分辨率

目前，对于独立漫游客户端，没有可更改此Windows行为的漫游客户端更新，因为将127.0.0.1设置为本地DNS服务器。这是一个核心

漫游客户端正常运行的要求。在Microsoft允许UWP VPN应用将127.0.0.1用于DNS之前，唯一的选择是切换到VPN客户端的桌面版本，或者使用AnyConnect漫游模块，该模块使用内核驱动程序来引导DNS。