VPN 엔드포인트 자체가 원격 네트워크에 접속할 수 있어야 하는 IPSec VPN에 대한 경로를 설정하는 방법

VPN 엔드포인트 자체가 원격 네트워크에 접속할 수 있어야 하는 IPSec VPN에 대한 경로를 설정하는 방법

질문과 동일한 상황이 있습니다.IPSec VPN: 트래픽이 올바르게 라우팅되지 않음(그러나 나는 그 사용자에게 직접 연락할 수 없는 것 같고, 그 질문에 대해 코멘트를 할 수도 없으며, 아무도 대답한 적이 없습니다.)

나 역시 IPSec VPN이 서버에서 직접 끝나는 Windows 2008 R2 서버를 가지고 있습니다.

서버에는 공용 IP 주소(예: 203.10.10.10)가 있는 단일 네트워크 인터페이스가 있습니다.

원격 개인 네트워크(10.16.0.0/255.254.0.0)의 컴퓨터가 IPSec 터널 끝의 개인 IP 주소에서 해당 Windows 서버에 연결할 수 있기를 바랍니다.~에해당 서버(서버 앞의 라우터가 아님).

마찬가지로 중요한 것은(이것이 난제일 수 있음) 원격(10.16.0.0) 네트워크에 있는 장치에 대한 TCP 연결을 시작할 수 있는 서버가 필요하다는 것입니다(예: HTTP를 통해 이미지를 다운로드하기 위해).

그 모습은 다음과 같습니다.

네트워크 다이어그램

서버에 대해 선택한 개인 IP는 192.168.70.1/255.255.255.0이고 원격 개인 네트워크에 대한 터널을 설정하는 IPSec 필터는 소스/대상 192.168.70.0/24 및 10.16.0.0/15에 대한 것입니다.

소스 인수가 설정된 Windows 서버에서 원격 네트워크의 주소를 ping하면 터널을 설정할 수 있고 ping이 작동합니다(예: ping -S 192.168.70.1 10.16.0.1).

그러나 10.16.xx 주소로 전송된 모든 "일반" 트래픽(192.168.70.1로 강제된 소스 주소가 없는 핑 포함)은 기본 경로를 통해 인터넷으로 즐겁게 전송되며 터널을 시작하거나 들어가지 않습니다.

질문

이런 설정도 가능한가요? 아니면 VPN 엔드포인트 자체가 개인 주소 중 하나에서 시작하여 터널 위로 데이터를 보내도록 하는 것이 불가능합니까? (VPN 엔드포인트는 터널을 통해 데이터를 전송하는 장치에 대해 항상 별도의 라우터에 있어야 합니까?)

10.16.0.0 네트워크와의 모든 통신이 개인 IP 주소에서 시작되도록 Windows Server를 설정하려면 어떻게 해야 합니까?

개인 주소는 그렇지 않습니다.가지다192.168.70.1 - 필요한 경우 다른 서브넷을 선택할 수 있습니다. (다른 모든 조건이 동일하다면 Windows Vista 이상에서는 대상과 가장 일치하는 원본 IP를 사용한다는 내용을 읽었기 때문에 이렇게 말합니다. 따라서 아마도 10.서버의 개인 주소에 대한 XXX IP가 도움이 될까요?)

하지만 이 VPN 터널의 다른 쪽 끝은 내 통제하에 있지 않기 때문에 쉽게 테스트할 수 없습니다. 그리고 192.168.70.1 주소를 변경하기로 선택한 경우 다른 쪽 끝에 있는 네트워크 엔지니어에게 구성을 변경하도록 해야 합니다. .

추가 정보: 지금까지 시도한 것

패킷이 올바르게 라우팅되도록 하기 위해 Windows 서버에서 개인 IP 주소를 설정하는 두 가지 방법을 시도했습니다.그리고터널을 설정하는 IPSec 규칙을 충족합니다.

기본 인터페이스의 개인 주소

공용 IP 외에 기본 네트워크 인터페이스에 192.168.70.1 주소를 추가하면 창에서 192.168.70.1을 소스 주소로 사용하게 만드는 10.16.0.0에 대한 경로를 정의하는 것이 불가능해 보입니다. 기본 게이트웨이로 향하는 모든 트래픽은 공용 IP를 소스로 사용하게 됩니다.

Windows에서 내가 모르는 경로별로 사용할 수 있는 마법이 있다면 그것에 대해 듣고 싶습니다! 그러나 명령은 다음과 같습니다.

route add 10.16.0.0 mask 255.254.0.0 192.168.70.1

그러면 경로가 다음과 같이 추가됩니다(소스/온링크 게이트웨이로 사용하기 위해 동일한 인터페이스에서 공용 IP를 선택함).

10.16.0.0 255.254.0.0 On-link 203.10.10.10 11 10.17.255.255 255.255.255.255 On-link 203.10.10.10 266

두 번째 가상 어댑터의 개인 주소

먼저 Microsoft Loopback Adapter 장치를 사용하여 서버에 가상 네트워크 어댑터를 추가해 보았습니다. 루프백 장치는 네트워크 연결 목록에 "미디어 연결 끊김"으로 표시되었습니다. 가상 NIC에 연결이 없음을 확인한 후 Windows는 어쨌든 기본 경로(공개 소스 주소 사용)를 통해 트래픽을 보내는 것으로 대체했습니다.

그런 다음 OpenVPN과 함께 제공되는 TAP 가상 어댑터 드라이버인 다른 가상 장치 드라이버를 사용해 보았습니다. 해당 드라이버를 사용하면 강제로 "항상 연결" 상태로 설정할 수 있습니다. 그러나 첫 번째 핑 후에 Windows는 해당 어댑터에 연결이 없음을 다시 파악하고 기본(공용) 인터페이스의 기본 게이트웨이를 통해 트래픽을 보내는 것으로 돌아갑니다.

그게 다야... 어떤 아이디어라도 있어?

답변1

이 작업을 수행하려고 할 때 소스 IP 주소 선택이 작동하는 방식의 자연스러운 경향에 맞서 싸우고 있는 것입니다. 그렇다면 좀 더 자연스럽게 흐르도록 디자인을 조금 변경해 보는 것은 어떨까요?

문제는 트래픽을 터널 아래로 푸시하기로 결정하기 전에 소스 IP 주소 선택이 완료된다는 것입니다. 이는 터널을 통해 시작되는 모든 트래픽의 소스 IP로 "공용" IP 주소를 사용하도록 선택한다는 의미입니다.

일부 OS에서는 호스트에서 발생한 트래픽에 대한 경로에 소스 주소를 지정하여 라우팅을 통해 재미있는 작업을 수행할 수 있습니다. 하지만 Windows에서는 그런 것을 찾을 수 없습니다.

그러나 네트워크 설계를 고려할 때 이 문제를 해결하는 가장 간단한 방법은 서버 측에서 RFC1918 주소와의 싸움을 중단하고 공개 IP 203.10.10.10과 개인 IP 사이에 SA가 있는 터널을 설정하는 것입니다. 주소 10.16.0.0/15.

그러면 클라이언트는 서버 주소를 192.168.70.1이 아닌 203.10.10.10으로 지정하고 다른 모든 것은 마술처럼 제자리에 놓이게 됩니다. 이렇게 하면 소스 IP 선택이 이미 작동할 적절한 주소를 선택하게 됩니다.

전환 기간 동안 기존 IPsec 정책을 그대로 유지할 수 있으므로 DNS 캐시가 만료되는 동안 클라이언트가 이전 RFC1918 주소 또는 새 공용 주소로 서버에 주소를 지정할 수 있습니다(이를 위해 DNS를 사용한다고 가정). 그렇지 않다면 좋은 생각입니다). 전환 기간이 지나면 주소 192.168.70.1은 더 이상 기능하지 않습니다.

다른 옵션은 서버에서 연결을 시작할 때 소스 IP 주소를 명시적으로 선택하는 것입니다. 이는 직접 작성한 사용자 정의 소프트웨어인 경우 가능할 수 있지만 다소 까다롭습니다.

마지막으로 루프백 어댑터 아이디어는 유망하지만 "미디어 연결 끊김"으로 표시되는 것은 이상합니다. 하지만 아이디어보다는 루프백 어댑터 자체에 문제가 있는 것 같습니다.

관련 정보