目錄

簡介

影響

根本原因

解析

簡介

本文檔介紹基於Microsoft的通用Windows平台(UWP)構建的VPN應用程式。 這些應用程式通常在Windows 8或更高版本的Metro/Modern GUI中顯示為應用程式。案頭應用程式和傳統的Windows風格程式不使用UWP，也不會受到影響。

如果您看到非應用樣式的Windows VPN或始終在VPN上遇到問題，請參閱Umbrella Roaming Client上有關Windows VPN的說明：軟體和VPN相容性指南。

AnyConnect Umbrella漫遊模組不會導致相同的互操作性問題。

影響

當漫遊客戶端處於活動狀態時，UWP VPN應用程式使用者在嘗試啟動VPN會話時收到「No this 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 Umbrella漫遊模組*

*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轉發）。

以下呼叫允許將套接字建立限製為一個介面。對於將DNS限制到其介面的已知UWP VPN應用來說，情況就是這樣：

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;但是，由於該呼叫的限制，漫遊客戶端從未收到或應答該呼叫。因此，由於DNS故障，VPN連線失敗。

根本原因與Windows NCSI連線指示器的設計限制類似，在該指示器中從未查詢127.0.0.1以確認DNS連線（由Microsoft解析）。

解析

目前，對於獨立漫遊客戶端，沒有可更改此Windows行為的漫遊客戶端更新，因為將127.0.0.1設定為本地DNS伺服器。這是一個核心

要求漫遊客戶端正常工作。在Microsoft允許將127.0.0.1用於UWP VPN應用的DNS之前，唯一的選擇是切換到VPN客戶端的案頭版本，或使用AnyConnect漫遊模塊，該模組利用核心驅動程式來引導DNS。