소개
이 문서에서는 Microsoft의 UWP(Universal Windows Platform)에 구축된 VPN 애플리케이션의 사용률에 대해 설명합니다. 이러한 애플리케이션은 일반적으로 Windows 8 이상의 Metro/Modern GUI에서 앱으로 나타납니다. 데스크톱 응용 프로그램과 기존 Windows 스타일 프로그램은 UWP를 사용하지 않으며 영향을 받지 않습니다.
비 앱 스타일 windows VPN 또는 항상 VPN에서 문제가 발생하는 경우 Umbrella Roaming Client의 Windows VPN에서 참고 사항을 참조하십시오. 소프트웨어 및 VPN에 대한 호환성 가이드.
AnyConnect Umbrella 로밍 모듈에서 동일한 상호 운용성 문제가 발생하지 않습니다.
영향
로밍 클라이언트가 활성 상태일 때 UWP VPN 애플리케이션 사용자는 VPN 세션을 시작하려고 할 때 "해당 호스트를 알 수 없음" 또는 유사한 오류 메시지를 받습니다. 이렇게 하면 사용자가 VPN에 정상적으로 연결할 수 없습니다. 이 오류는 로밍 클라이언트가 중지되거나 VPN 클라이언트의 데스크톱 버전이 사용되는 경우에는 나타나지 않습니다.
예를 들어, 다음과 같은 기능은 작동하지 않습니다.
- Pulse Secure App + 로밍 클라이언트
- SonicWall MobileConnect + 로밍 클라이언트
이를 위해 동일한 VPN 헤드 엔드에 연결하면 다음과 같은 효과가 있습니다.
- Pulse Secure Desktop 애플리케이션 + 로밍 클라이언트
- 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에 대해 다른 어댑터를 사용하고 있음을 인식하지 못하므로 현재 영향을 받지 않습니다.
근본 원인
Microsoft는 Windows 8+에 더 많은 샌드박싱이 가능하도록 "최신" 앱을 구축했습니다. 이러한 제한 사항 중 하나가 VPN 애플리케이션에 적용됩니다. UWP(앱)에 구축된 VPN은 쿼리를 생성하는 인터페이스를 사용하도록 제한됩니다. Umbrella 로밍 클라이언트가 127.0.0.1(다른 인터페이스 l0)에서 수신 대기 중이므로 쿼리가 로밍 클라이언트(또는 127.0.0.1에서 실행되는 다른 DNS 포워딩)에 도달하지 않습니다.
다음 호출에서는 소켓 생성을 하나의 인터페이스로 제한할 수 있습니다. 이는 DNS를 해당 인터페이스로 제한하는 알려진 UWP VPN 앱의 경우입니다.
ConnectAsync(HostName, String, SocketProtectionLevel, NetworkAdapter)
"ConnectAsync(Hostname, String, SocketProtectionLevel, NetworkAdapter) 메서드에서 사용하는 이름 확인 메커니즘이 DNS(Domain Name System) 네임스페이스에 대해 지정된 인터페이스로 제한됩니다." https://learn.microsoft.com/en-us/uwp/api/windows.networking.sockets.streamsocket
Windows VPN API는 UWP "앱" 스타일 VPN이 DNS에 127.0.0.1을 사용하여 로밍 클라이언트와 작동하지 않도록 하는 이 또는 유사한 연결 메커니즘을 사용하는 것으로 간주됩니다. 따라서 DNS가 127.0.0.1로 전송되면서 VPN 연결이 실패합니다. 그러나 통화의 제한으로 인해 로밍 클라이언트에서 수신하거나 응답하지 않습니다. 그 결과 DNS 실패로 인해 VPN 연결이 실패합니다.
근본 원인은 Windows NCSI 연결 표시기의 디자인 제한과 비슷합니다. 여기서 127.0.0.1은 DNS 연결을 확인하기 위해 쿼리되지 않습니다(Microsoft에서 해결됨).
해결
현재 독립형 로밍 클라이언트의 경우 127.0.0.1을 로컬 DNS 서버로 설정하면 이 Windows 동작을 변경할 수 있는 로밍 클라이언트에 대한 업데이트가 없습니다. 이는 핵심
로밍 클라이언트가 작동하기 위한 요구 사항입니다. Microsoft에서 UWP VPN 앱에서 DNS에 127.0.0.1을 사용하도록 허용할 때까지 유일한 옵션은 VPN 클라이언트의 데스크톱 버전으로 전환하거나 커널 드라이버를 사용하여 DNS를 다이렉션하는 AnyConnect 로밍 모듈을 사용하는 것입니다.