답변:
OpenVPN 네트워크 인터페이스에 대한 기본 게이트웨이를 추가해야합니다.
내가 찾은 방법은 OpenVPN을 사용하는 네트워크 인터페이스를 통해 대상 주소 0.0.0.0에 경로를 추가하는 것입니다.
이 예제에는 네트워크 10.20.20.0/24에 IP 주소가 10.20.20.20 인 물리적 인터페이스가있는 컴퓨터와 네트워크 10.1.1.0/24에 IP 주소가 10.1.1.10/24 인 OpenVPN TAP 인터페이스가있는 컴퓨터가 있습니다 (서버의 IP 주소) VPN 네트워크는 10.1.1.1입니다.
1) 네트워크 인터페이스 및 0.0.0.0으로의 현재 경로에 대한 정보를 찾으십시오.
C:\>route print -4
===========================================================================
Interface List
15...00 ff 6c 3f 5b 0c ......TAP-Win32 Adapter V9
11...00 0e 0c d9 b5 c8 ......Intel(R) PRO/1000 GT Desktop Adapter
===========================================================================
IPv4 Route table
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 10.20.20.1 10.20.20.20 10
10.20.20.0 255.255.255.0 On-link 10.20.20.20 266
...
현재 OpenVPN 네트워크 인터페이스 번호는 15임을 알고 있습니다. 또 다른 중요한 정보는 0.0.0.0으로의 현재 경로 메트릭입니다. OpenVPN 네트워크의 0.0.0.0으로의 새 경로는 실제 네트워크 대신 전체 네트워크 트래픽을 OpenVPN 연결로 리디렉션하지 않기 위해 현재보다 높은 메트릭 값을 가져야합니다 (같은 경로를 가진 두 경로의 경우 메트릭이 낮은 경로가 선택됨) .
2) OpenVPN 인터페이스를 통해 0.0.0.0으로 경로 추가 :
route -p add 0.0.0.0 mask 0.0.0.0 10.1.1.1 metric 50 if 15
이 명령은 메트릭이 50 이상이고 게이트웨이 10.1.1.1이있는 인터페이스 15를 통해 0.0.0.0에 경로를 추가합니다. 게이트웨이를 사용자 고유의 것으로 교체하십시오 (VPN 네트워크에있는 서버의 IP 주소). 물론 인터페이스 번호를 자신의 것으로 바꾸십시오.
-p 인수는 route를 영구적으로 추가하므로 시스템 재부트 후에도 유지됩니다.
3) VPN 서버에 (다시) 연결하고 라우팅 테이블을 다시 살펴보십시오.
C:\>route print -4
...
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 10.20.20.1 10.20.20.20 10
0.0.0.0 0.0.0.0 10.1.1.1 10.1.1.10 80
...
이제 네트워크가 공유 센터에서 식별되므로 '위치 설정 ...'창이 나타납니다. ;-)
위의 솔루션이 왜 그렇게 복잡한 지 모르겠습니다 (예 :
route add -p commands
또는 OpenVPN server.conf 파일에 추가
route 0.0.0.0 vpn_subnet_mask default_gateway
오류는 다음으로 이동하여 간단히 해결할 수 있습니다.
Control Panel\Network and Internet\Network Connections
(1) OpenVPN tun / tap 인터페이스를 마우스 오른쪽 단추로 클릭하고 상태> 세부 사항 선택> IPv4 DHCP 서버 항목을 기록하십시오. (2)의 기본 게이트웨이로 이것을 입력해야합니다.
(2) OpenVPN tun / tap 인터페이스를 마우스 오른쪽 버튼으로 클릭하고 속성> TCP / IPv4 속성 열기> 고급을 클릭하십시오. 기본 게이트웨이에서 추가를 클릭하고 DHCP 서버와 동일한 메트릭 인 '자동'항목을 입력하십시오. 이제 어댑터가 마술처럼 개인용으로 나타날 때까지 기다리십시오.
영구 경로를 추가하는 위의 두 솔루션과 똑같은 작업을 수행했지만 더 나은 방법은 Windows에 구성되어 있기 때문에 다시 시작해도 유지됩니다. 실제로 'route print'를 입력하여 cmd를 체크인하면 라우팅 테이블에 1 개의 항목이 추가되고 영구 경로 아래에 1 개의 항목이 추가됩니다. 새 경로의 메트릭이 실제 어댑터의 메트릭보다 작 으면 (2) 다시 실행하고 메트릭을 '자동'에서 물리적 어댑터보다 높은 값으로 변경하십시오.
게이트웨이 (openvpn 서버 IP)가 고정 된 경우 게이트웨이를 추가하면 (2) 작업이 수행됩니다.
이것은 일부 VPN 연결에서 잘 작동하지만 VPN의 기본 게이트웨이가 지속적으로 변경된다고 말할 수 있습니다. 즉, 컴퓨터를 재설정 할 때마다 'route add'명령을 반복해서 사용해야합니다. 용납 할 수 없습니다.
Windows 7에서 VMware의 문제를 조사하는 동안 * NdisDeviceType이라는 레지스트리 dword를 발견했습니다. 이 작업은 Windows에서 특정 가상 네트워크 어댑터를 식별하지 않도록 지시합니다. 레지스트리로 이동하여로 이동하기 만하면됩니다 HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318
.
일단 거기 DriverDesc
에 'Tap-win' 이라는 값으로 불리는 문자열을 키에서 찾으 십시오. OpenVPN이 사용하는 가상 어댑터를 다루는 키입니다. 그런 다음 * NdisDeviceType이라는 dword를 작성하고 값을 1로 지정하십시오.
마지막으로 컴퓨터를 다시 시작하십시오. 이제 알 수없는 네트워크가 보이지 않아야합니다. 이 수정을 시도하기 전에 레지스트리를 백업하십시오. OpenVPN을 사용하고 있는데 편한 느낌이 들지 않으면이를 수행 할 스크립트 를 다운로드 할 수 있습니다.
이 문제를 해결하는 가장 간단하고 가장 좋은 방법은 다음과 같습니다.
route 0.0.0.0 0.0.0.0 vpn_gateway 50
(vpn_gateway를 변경하지 마십시오. 환경 변수입니다).secpol.msc
'네트워크 목록 관리자 정책'으로 이동하십시오.이렇게하면 VPN 게이트웨이 IP를 신경 쓸 필요가 없으며 동적 VPN 게이트웨이와도 작동합니다.
이것은 작동하지만 TAP 어댑터의 IP 설정을 수동으로 변경하여 한 단계 더 나아가면 더 좋습니다. 사용하여 ipconfig
적절한 설정에서 그림을 그리고 DNS 서버의 게이트웨이를 사용합니다.
업데이트 :이 단계를 무시하십시오. 그렇게하면 IP 주소가 마스킹되지 않습니다. 그 이유를 모르겠지만 되돌릴 수있는 모든 작업을 수행했지만이 단계에서 수행 한 작업을 취소하고 컴퓨터를 재부팅하는 것이 유일한 방법입니다.
업데이트 : 이것으로 문제는 Windows를 부팅 할 때 연결을 시작하도록 Windows 7을 구성했다는 것입니다. 때때로 컴퓨터를 재부팅하거나 종료하면 네트워크가 알 수없는 상태로 돌아갑니다. 경로는 여전히 테이블에 있습니다. 이에 대한 해결 방법은 내가 연결 한 VPN 클라이언트에 대한 구성 파일을 수정하는 것입니다. 내가 추가 한 명령은 다음과 같습니다.
#Dummy default gateway to work around Windows 'unidentified network'/'unknown network' (put a "#" in front of this)
route-metric 30
route 0.0.0.0 0.0.0.0 10.0.0.1.
다음과 함께 표시되는 라우팅 테이블을 읽어 메트릭을 검색합니다.
route print -4
10.0.0.1은 VPN이 연결되는 게이트웨이입니다. 예를 들어 VPN에 연결되면 라우팅 테이블은 다음과 같습니다.
-------------------------------------------------------------------------
IPv4 Route Table
-------------------------------------------------------------------------
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.100 25
0.0.0.0 128.0.0.0 10.0.0.1 10.0.7.102 30
첫 번째 항목은 내 라우터로가는 경로입니다. 두 번째는 VPN 연결입니다. 이제 VPN 연결 파일 (내 경우에는 vpn.ovpn)을 수정하면 네트워크 대상을 사용하고 넷 마스크를 0.0.0.0으로 만들고 10.0.0.1을 게이트웨이로 사용합니다. 그런 다음 구성 파일에서 메트릭이 30으로 설정되고 30으로 설정됩니다.
명령 또는 Windows GUI를 통해 기본 게이트웨이 추가를 완료 한 경우 여전히 개인 또는 도메인 지정을 네트워크에 적용 할 것을 Windows에 표시하는 방법이 필요할 수 있습니다. 아마도 실수로 네트워크를 공용으로 레이블을 지정했거나 어떤 이유로 든 "위치 설정 ..."프롬프트로 선택할 기회가 없었던 것 같습니다. Windows 10 에서이 시나리오를 만났습니다.
레지스트리를 통해이를 설정하려면 에서 네트워크 프로파일 키로 이동하십시오 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles
. 여기 Profiles
에서이 키에는 컴퓨터가 저장 한 모든 네트워크에 해당하는 GUID가있는 키 목록이 포함되어 있습니다. 이 GUID 키를 살펴보고 키의 ProfileName
값 을 일치시켜 네트워크를 찾을 수 있습니다 . 키 에서 올바른 네트워크를 찾으면 네트워크 키 Profiles
의 Category
값 을 변경하려고합니다 .
에서 값 Category
의 값은 0
공용 네트워크를 나타냅니다. 이 값을 변경 1
하여 네트워크에 개인으로 레이블 2
을 지정하거나 네트워크를 도메인 네트워크로 지정할 수 있습니다. 이 변경 사항을 적용하려면 네트워크 연결을 다시 초기화해야 할 수도 있습니다.