Inleiding
Dit document beschrijft het gebruik van VPN-toepassingen die zijn gebouwd op Microsoft's Universal Windows Platform (UWP). Deze toepassingen worden meestal weergegeven als apps in de Metro / Modern GUI van Windows 8 of hoger. Desktoptoepassingen en traditionele Windows-stijlprogramma's maken geen gebruik van het UWP en worden niet beïnvloed.
Als u problemen ondervindt met de niet-app-stijl Windows VPN of altijd op VPN, raadpleegt u onze opmerking over Windows VPN op Umbrella Roaming Client: Compatibility Guide for Software and VPNs.
De AnyConnect Umbrella-roamingmodule leidt niet tot hetzelfde interoperabiliteitsprobleem.
Impact
Wanneer de zwervende client actief is, ontvangen gebruikers van de UWP VPN-toepassing een foutbericht "Geen dergelijke host is bekend" of een soortgelijke foutmelding wanneer ze proberen een VPN-sessie te starten. Dit voorkomt dat de gebruiker succesvol verbinding maakt met de VPN. Deze fout wordt niet weergegeven als de roamingclient wordt gestopt of als de desktop-editie van de VPN-client wordt gebruikt.
Deze werken bijvoorbeeld niet:
- Pulse Secure App + zwervende client
- SonicWall MobileConnect + roaming-client
Voor deze werkt het verbinden met dezelfde VPN-head-end:
- Pulse Secure-desktoptoepassing + zwervende client
- SonicWall NetExtender of SonicWall Desktop-toepassing + roamingclient
- Pulse Secure App + AnyConnect-paraplu-roamingmodule*
- SonicWall MobileConnect + AnyConnect Paraplu-roamingmodule*
*AnyConnect Umbrella Module stelt geen 127.0.0.1 (een andere interface) in als de DNS-instelling, maar stuurt DNS door naar 127.0.0.1 met behulp van een kernelstuurprogramma. De UWP-apps weten niet dat ze een andere adapter voor DNS gebruiken en worden op dit moment niet beïnvloed.
Hoofdoorzaak
Door het ontwerp, Microsoft geconstrueerd "moderne" apps in Windows 8+ meer sandbox zijn. Een van deze beperkingen is van toepassing op VPN-toepassingen. VPN's die zijn gebouwd op het UWP (apps) zijn beperkt tot het gebruik van de interface die de query genereert. Aangezien de Umbrella-roamingclient luistert op 127.0.0.1 - een andere interface l0 - raakt de query daarom nooit de roamingclient (of een andere DNS-forwardingrun op 127.0.0.1).
De volgende oproep maakt het mogelijk om het maken van een socket te beperken tot slechts één interface. Dit is het geval voor bekende UWP VPN-apps die DNS beperken tot hun interface:
ConnectAsync(HostName, String, SocketProtectionLevel, NetworkAdapter)
"Het naamoplossingsmechanisme dat wordt gebruikt door de methode ConnectAsync(Hostname, String, SocketProtectionLevel, NetworkAdapter) is beperkt tot de opgegeven interface voor de naamruimte van het domeinnaamsysteem (DNS)." https://learn.microsoft.com/en-us/uwp/api/windows.networking.sockets.streamsocket
De Windows VPN API wordt verondersteld dit of een vergelijkbaar verbindingsmechanisme te gebruiken, wat resulteert in VPN's in de stijl van de UWP-app om niet te functioneren met de roamingclient vanwege het gebruik van 127.0.0.1 voor DNS. Als gevolg hiervan mislukken VPN-verbindingen omdat DNS wordt verzonden naar 127.0.0.1; vanwege de beperkingen van het gesprek wordt het echter nooit ontvangen of beantwoord door de roamende client. Als gevolg hiervan mislukt de VPN-verbinding als gevolg van een DNS-fout.
De hoofdoorzaak is vergelijkbaar in zijn oorsprong als een ontwerpbeperking voor de Windows NCSI-connectiviteitsindicator waarbij 127.0.0.1 nooit wordt gevraagd om de DNS-connectiviteit te bevestigen (opgelost door Microsoft).
resolutie
Op dit moment is er voor de zelfstandige roamingclient geen update voor de roamingclient die dit Windows-gedrag kan wijzigen omdat 127.0.0.1 is ingesteld als de lokale DNS-server. Dit is een kern
vereiste voor het functioneren van de roamende cliënt. Totdat Microsoft toestaat dat 127.0.0.1 wordt gebruikt voor DNS door een UWP VPN-app, is de enige mogelijkheid om naar de desktopeditie van de VPN-client te switches of de AnyConnect-roamingmodule te gebruiken die een kernelstuurprogramma gebruikt om DNS te sturen.