내 시나리오에서는 어떤 종류의 VPN도 사용하지 않으며 RRAS도 사용하지 않습니다.
서로 다른 Nat 장치 뒤에 있는 두 개의 Windows 10 시스템(모두 1709가 완전히 패치됨) 간에 IPsec 연결을 설정하려고 합니다.
Windows 방화벽을 통해 두 컴퓨터 모두에 두 개의 전송 규칙을 만들었는데, 이 규칙은 Smb 프로토콜과 관련되어 있습니다.
머신은 둘 다 Nat 뒤에 있으며 두 개의 Nat 장치는 인터넷을 통해 연결됩니다.
두 컴퓨터 모두에서 "AssumeUDPEncapsulationContextOnSendRule" 레지스트리 키를 생성하고 두 PC 모두에서 해당 값을 "2"로 설정했습니다.
연결하려는 서버 앞의 Nat 장치에서 Udp 포트 500 및 4500과 모든 Smb 관련 포트를 서버 자체에 전달했습니다.
두 PC 모두 Windows 방화벽을 통해 인바운드 및 아웃바운드 Udp 포트 500, 4500을 허용했으며 서버 PC에 연결된 SMB에 대한 "Edge Traversal"도 허용했습니다.
서버에 원격으로 액세스하려고 하면 빠른 모드 보안 연결이 생성되지만 연결이 작동하지 않습니다. (Get-NetIpsecQuickmodeSa 명령의 출력은 괜찮은 것 같습니다. 즉, Udp 캡슐화가 올바르게 생성되었음을 나타냅니다.)
클라이언트가 Nat 뒤에 있고 서버에 공용 IP가 있으면 연결이 작동하지만 클라이언트에 공용 IP가 있고 서버가 Nat 뒤에 있거나 클라이언트와 서버가 모두 Nat 뒤에 있으면 연결이 작동하지 않습니다.
내가 무시하고 있는 설정이 있을 것입니다.
이 문제를 해결하도록 도와주세요.
정말 감사합니다
답변1
나는 내가 무시하고 있는 몇 가지 설정이 있다고 확신했는데 그것은 다음과 같습니다.
Set-NetFirewallSetting -AllowIPsecThroughNAT 모두
레지스트리 설정 "AssumeUDPEncapsulationContextOnSendRule"은 이전 Windows IPsec 정책 에이전트 서비스와 관련되어 있습니다.
위의 Powershell 명령은 Windows 방화벽에 대해 동일한 동작을 허용합니다. 특히 레지스트리 값 "IPsecThroughNAT"를 "2"로 설정합니다.
이제 모든 것이 예상대로 작동하고 있으며 처음부터 그랬듯이 이것이 기본 설정이어야 합니다.
답변2
Windows는 NAT 장치 뒤에 있는 서버를 지원하지 않을 수 있습니다. 서버에 공용 IP 주소가 있어야 합니다. 다음 레지스트리 키를 추가하면 해결 방법이 있습니다.
레지스트리 하위 키 위치: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent DWORD 값 이름: AssumeUDPEncapsulationContextOnSendRule DWORD 값 데이터: 2
원천: