Computer >> 컴퓨터 >  >> 시스템 >> Windows Server

Windows 10에서 VPN 연결 시 고정 경로(Static Route) 자동 추가하는 방법

최신 Windows 10 빌드에서는 VPN 연결을 설정할 때 고정 경로(static route)를 자동으로 추가할 수 있습니다. VPN 연결이 종료되면 해당 경로는 Windows 라우팅 테이블에서 자동으로 제거됩니다. VPN 연결에 IPv4 또는 IPv6 경로를 추가하려면 Add-VpnConnectionRoute PowerShell cmdlet을 사용합니다.

수동 경로 추가의 한계

물론 명령 프롬프트를 통해 VPN 연결에 대한 경로를 수동으로 추가할 수도 있습니다. 하지만 이렇게 추가한 경로는 VPN 연결을 끊는 순간 사라지기 때문에, 다음에 VPN에 접속할 때마다 경로를 다시 입력해야 하는 번거로움이 있습니다.

예를 들어, 두 개의 서브넷(192.168.11.0/2410.1.0.0/16)으로 향하는 트래픽만 VPN 연결을 통해 라우팅하고, 나머지 트래픽은 인터넷 서비스 공급자(ISP)를 통해 전송되도록 설정한다고 가정해 보겠습니다.

VPN 연결 확인 및 분할 터널링(Split Tunneling) 설정

PowerShell 콘솔을 열고 Windows에 구성된 VPN 연결 목록을 확인합니다.

Get-VpnConnection

먼저 '원격 네트워크에서 기본 게이트웨이 사용(Use default gateway in the remote network)' 옵션을 해제해야 합니다. 제어판의 VPN 연결 속성에서 직접 설정하거나, 아래 명령어로 간편하게 처리할 수 있습니다.

Set-VpnConnection –Name workVPN -SplitTunneling $True

SplitTunneling 옵션과 관련된 자세한 내용은 'VPN 연결 후 인터넷이 되지 않는 문제'를 다룬 문서를 참고하시기 바랍니다.

Add-VpnConnectionRoute로 정적 경로 추가하기

이제 VPN 연결에 두 개의 정적 경로를 추가합니다.

Add-VpnConnectionRoute -ConnectionName workVPN -DestinationPrefix 192.168.11.0/24 –PassThru
Add-VpnConnectionRoute -ConnectionName workVPN -DestinationPrefix 10.1.0.0/16 –PassThru

DestinationPrefix 옵션에는 VPN을 통해 라우팅할 서브넷 또는 호스트 IP 주소를 지정합니다. 특정 단일 호스트만 추가하고 싶다면 10.1.1.26/32와 같은 형식을 사용하면 됩니다.

DestinationPrefix : 192.168.11.0/24
InterfaceIndex :
InterfaceAlias : workVPN
AddressFamily : IPv4
NextHop : 0.0.0.0
Publish : 0
RouteMetric : 1

참고로 VPN 연결이 이미 활성화되어 있는 상태라면, 새로 추가한 경로가 라우팅 테이블에 반영되도록 VPN에 다시 연결해야 합니다.

경로 자동 추가 및 자동 삭제 확인

새로 추가된 경로는 VPN 연결에 바인딩되며, 오직 연결이 설정될 때만 라우팅 테이블에 등록됩니다. VPN 서버와의 연결을 끊으면 해당 경로는 자동으로 제거됩니다.

실제로 VPN 연결을 해제한 뒤 라우팅 테이블을 확인해 보면 원격 네트워크로의 경로가 자동으로 삭제되었음을 알 수 있으며, Get-NetRoute 명령은 더 이상 해당 경로를 찾을 수 없다고 반환합니다.

Get-NetRoute : No MSFT_NetRoute objects found with property 'DestinationPrefix' equal to '192.168.11.0/24'. Verify the value of the property and retry. CmdletizationQuery_NotFound_DestinationPrefix,Get-NetRoute

VPN 연결에 등록된 정적 경로를 완전히 삭제하려면 다음 명령을 사용합니다.

Remove-VpnConnectionRoute -ConnectionName workVPN -DestinationPrefix 192.168.111.0/24 -PassThru

VPN 연결 활성화 중 DNS 이름 확인 순서를 변경하고 싶다면 관련 문서를 참고하세요.

구버전 Windows에서의 대안 (Windows 7 / Server 2008 R2)

이전 버전의 Windows(Windows 7/Windows Server 2008 R2)에서는 VPN 연결 설정 후 경로를 동적으로 추가하려면 CMAK(Connection Manager Administration Kit)와 route add 명령이 포함된 각종 스크립트를 활용해야 했습니다.

예를 들어, 여러 정적 경로를 한 번에 추가하는 배치 파일 vpn_route.netsh를 만들 수 있습니다.

interface ipv4
add route prefix=192.168.11.24 interface="workVPN" store=active
add route prefix=10.1.0.0/16 interface="workVPN" store=active
exit

이 파일은 작업 스케줄러(Task Scheduler)를 통해 VPN 연결이 설정될 때 자동으로 실행되도록 구성할 수 있습니다. 트리거 조건은 이벤트 뷰어의 RasMan 20225 이벤트를 사용합니다.

schtasks /create /F /TN "Add VPN routes" /TR "netsh -f C:\PS\vpn_route.netsh" /SC ONEVENT /EC Application /RL HIGHEST /MO "*[System[(Level=4 or Level=0) and (EventID=20225)]] and *[EventData[Data='My VPN']]"