다른 클라이언트를 위한 게이트웨이로서의 OpenVPN 클라이언트

다른 클라이언트를 위한 게이트웨이로서의 OpenVPN 클라이언트

하나의 서버와 두 개의 클라이언트로 구성된 OpenVPN 네트워크가 있습니다. S(IP 전달 및 NAT 기능이 활성화되어 있음)를 통과하도록 C1에 기본 경로를 설정하면 모든 것이 예상대로 작동합니다. 문제는 C1 기본 경로를 C2로 지정하면(VPN에서 인터넷으로의 NAT 트래픽에도 적절하게 구성됨) 어쨌든 트래픽이 S에 의해 납치되어 전달된다는 것입니다. C2에서 tcpdump를 수행하면 아무 것도 도착하지 않습니다. OpenVPN에서 클라이언트를 다른 클라이언트의 게이트웨이로 설정할 수 있습니까? 아니면 클라이언트의 경로가 다른 클라이언트를 가리키는 경우 서버 이벤트에 의해 패킷이 라우팅되는 것이 시스템의 속성입니까?

편집하다:

대괄호는 내 가상 네트워크를 나타냅니다(물리적으로 존재하지 않음). C1/C2/S는 네트워크 내에서 문제 없이 서로 핑을 보낼 수 있습니다. C1에서 C2를 거쳐 인터넷으로 트래픽을 라우팅하고 싶습니다. C1(및 아마도 C2)에서 S를 통해 인터넷으로 라우팅할 수 있지만 대신 S에서 패킷을 전달하므로 C2를 통한 라우팅은 작동하지 않습니다. 이는 OpenVPN 서버가 가야 할 곳으로 패킷을 보내기를 원하지 않는 문제인 것 같습니다.

                [C1-S(NAT)] -- 인터넷
인터넷 -- [(NAT)C2/ ]

답변1

설명하려는 네트워크 토폴로지를 모르면 이에 대해 완전히 대답하기가 어렵습니다. 하지만 일반적으로 귀하가 요청한 것을 수행하는 것이 가능하다고 말할 수 있다고 생각합니다.

아래 시나리오를 고려해보세요.

C1 -- R1 --(NAT)-- 인터넷 --(NAT)-- R2 -- C2

여기서 R1과 R2 사이에 (올바르게 구성된) OpenVPN 터널이 생성되면 C1은 C2와 통신할 수 있고 그 반대의 경우도 마찬가지입니다.

이 시나리오는 정확하기가 더 어렵습니다.

C2 -- R1 --(NAT)-- 인터넷 --(NAT)-- R2 -- C3
C1 / \ C4

여기서 C2와 C3은 OpenVPN 엔드포인트이고 C1은 VPN을 사용하여 C4에 도달해야 합니다. 첫 번째 장애물은 UDP 1190의 R1 및 R2에서 각각 C2 및 C3으로 포트 전달을 사용하여 C2와 C3 사이에 OpenVPN 터널을 설정하는 것입니다.

다음은 C1이 C4로 패킷을 가져오는 방법으로 C2를 사용하도록 하는 것입니다. 여기에는 C1 및 C4에 라우팅 테이블을 구성하는 작업이 포함됩니다. C1은 C2를 통해 가는 C4의 네트워크에 대한 경로를 설정하고, C4는 C3을 통해 가는 C1의 네트워크에 대한 경로를 설정합니다. 두 경로 모두 기본값보다 우선해야 합니다. 따라서 아마도 C1에서는: {route add 192.168.3.0 gw 192.168.2.2} 및 C4에서는: {route add 192.168.1.0 gw 192.168.3.2}입니다. 이는 C2 및 C3의 주소가 각각 192.168.2.2 및 192.168.3.2이고 C1 및 C4가 각각 C2 및 C3과 동일한 네트워크에 있다고 가정합니다.

이것이 귀하의 질문에 답하기에 충분하고 클라이언트에서 VPN을 구성하는 것보다 기본 게이트웨이에서 VPN을 구성하는 것이 훨씬 쉽다는 점을 입증하는 데 충분하기를 바랍니다. 하지만 두 가지 모두에 대한 사용 사례가 있습니다.

편집: 이 토폴로지와 문제 설명을 통해 C1과 C2에 라우팅 문제가 있다고 생각합니다. C1의 기본 경로는 C2의 VPN 주소를 라우터로 가리켜야 합니다. 그러면 C1이 VPN을 사용하여 C2에 패킷을 전달하게 되고, C2는 이를 어떻게 처리할지 결정합니다.

표시된 대로 C2가 자체 인터넷 연결을 사용하는 경우 C2의 기본 경로는 자체 인터넷 연결이어야 합니다.

대신 C2가 실제로 인터넷에 대한 자체 경로를 갖고 있지 않고 대신 S를 통과하는 경우 S는 C2의 기본 라우터가 되어야 합니다.

답변2

이전에 이 문제에 직면했는데, VPN 클라이언트가 작동하고 있어서 홈 LAN의 다른 장치에 연결할 수 없었습니다. VPN 클라이언트가 자동으로 기본 경로를 추가하고 모든 트래픽을 서버로 전달하기 때문에 두 번째 시스템에 대한 고정 경로를 구성해야 했습니다.

C1에서 C2로의 트래픽이 서버를 통해 이동하는 것이 괜찮다면 클라이언트가 VPN을 통해 서로 연결할 수 있도록 server.conf에서 클라이언트-클라이언트 지시문을 활성화해야 합니다. 기본적으로 클라이언트는 서버에만 연결할 수 있습니다.

확인하다http://openvpn.net/index.php/open-source/documentation/howto.html"라우팅된 VPN(dev tun)을 사용할 때 클라이언트 측에 여러 시스템 포함"에서.

관련 정보