Introdução
Este documento descreve a utilização de aplicativos VPN criados na Plataforma Universal do Windows da Microsoft (UWP). Esses aplicativos normalmente aparecem como aplicativos na GUI Metro/Modern do Windows 8 ou superior. Os aplicativos de desktop e os programas de estilo Windows tradicionais não usam o UWP e não são afetados.
Se você estiver tendo problemas com a VPN do Windows de estilo não App ou sempre na VPN, consulte nossa observação sobre a VPN do Windows no Umbrella Roaming Client: Guia de compatibilidade para software e VPNs .
O módulo de roaming do AnyConnect Umbrella não resulta no mesmo problema de interoperabilidade.
Impacto
Quando o cliente de roaming está ativo, os usuários do aplicativo de VPN UWP recebem uma mensagem de erro "No such host is known" ou semelhante ao tentarem iniciar uma sessão VPN. Isso impede que o usuário se conecte com êxito à VPN. Esse erro não aparece se o cliente móvel for interrompido ou se a edição de desktop do cliente VPN for utilizada.
Por exemplo, eles não funcionam:
- Pulse Secure App + cliente de roaming
- SonicWall MobileConnect + cliente móvel
Para esses, a conexão com o mesmo head end de VPN funciona:
- Aplicativo de desktop Pulse Secure + cliente de roaming
- Aplicativo SonicWall NetExtender ou SonicWall Desktop + cliente de roaming
- Módulo de roaming Pulse Secure App + AnyConnect Umbrella*
- Módulo de roaming SonicWall MobileConnect + AnyConnect Umbrella*
*O módulo do AnyConnect Umbrella não define 127.0.0.1 (outra interface) como a configuração DNS, mas redireciona o DNS para 127.0.0.1 usando um driver kernel. Os aplicativos UWP não estão cientes de que estão usando um adaptador diferente para DNS e não são afetados no momento.
Causa raiz
Por design, a Microsoft construiu aplicativos "modernos" no Windows 8+ para serem mais "sandbox". Uma dessas limitações aplica-se a aplicações VPN. As VPNs criadas no UWP (aplicativos) são restritas para usar a interface que gera a consulta. Como o cliente de roaming Umbrella ouve 127.0.0.1 - uma interface l0 diferente - a consulta, portanto, nunca atinge o cliente de roaming (ou qualquer outro encaminhamento DNS executado em 127.0.0.1).
A chamada a seguir permite que a criação de um soquete seja restrita a apenas uma interface. Esse é o caso de aplicativos UWP VPN conhecidos que restringem o DNS à sua interface:
ConnectAsync(NomeHost, Cadeia de Caracteres, NívelProteçãoSoquete, AdaptadorRede)
"O mecanismo de resolução de nomes usado pelo método ConnectAsync(Hostname, String, SocketProtectionLevel, NetworkAdapter) está limitado à interface especificada para o namespace do sistema de nomes de domínio (DNS)." https://learn.microsoft.com/en-us/uwp/api/windows.networking.sockets.streamsocket
Pensa-se que a API da VPN do Windows utiliza este ou um mecanismo de conexão similar que resulta em VPNs de estilo de "aplicativo" UWP para não funcionar com o cliente de roaming devido ao uso de 127.0.0.1 para DNS. Como resultado, as conexões VPN falham quando o DNS é enviado para 127.0.0.1; no entanto, devido às limitações da chamada, ela nunca é recebida nem respondida pelo cliente de roaming. Como resultado, a conexão VPN falha devido à falha do DNS.
A causa raiz é semelhante em sua origem como uma limitação de design para o indicador de conectividade do Windows NCSI, onde 127.0.0.1 nunca é consultado para confirmar a conectividade DNS (resolvido pela Microsoft).
Resolução
No momento, para o cliente de roaming autônomo, não há nenhuma atualização para o cliente de roaming que possa alterar esse comportamento do Windows resultante do fato de 127.0.0.1 estar sendo definido como o servidor DNS local. Este é um núcleo
requisito para que o cliente de roaming funcione. Até que a Microsoft permita que 127.0.0.1 seja usado para DNS por um aplicativo UWP VPN, a única opção é alternar para a edição de desktop do cliente VPN ou utilizar o módulo de roaming do AnyConnect, que utiliza um driver de kernel para direcionar o DNS.