NAT는 VPN을 로컬 네트워크로 라우팅했습니다.

NAT는 VPN을 로컬 네트워크로 라우팅했습니다.

이더넷 연결이 가능한 Raspberry Pi가 있습니다. 이 이더넷은 장치를 인터넷 및 로컬 네트워크에 연결합니다. 로컬 네트워크 자체는 공용 고정 IP를 가질 수 없기 때문에 로컬 네트워크 외부에서 OpenVPN을 통해 로컬 네트워크에 있는 컴퓨터에 액세스하도록 허용하려고 합니다.

OpenVPN 서버를 성공적으로 설정했으며 VPN 연결을 통해 다른 컴퓨터에서 Pi에 연결할 수 있지만 OpenVPN에서 연결을 라우팅하여 Pi가 있는 나머지 로컬 네트워크에 대한 네트워크 액세스를 허용하는 방법을 잘 모르겠습니다. 로컬 네트워크에.

많은 온라인 튜토리얼에서는 각각 인터넷과 로컬 네트워크에 연결된 두 개의 서로 다른 인터페이스가 있다고 가정하지만, 이 경우에는 두 가지 모두를 수행하는 하나의 인터페이스가 있습니다. NAT를 사용하여 OpenVPN 연결을 로컬 네트워크로 라우팅하여 로컬 네트워크와의 양방향 연결 및 고정 로컬 IP를 통한 OpenVPN 연결로 연결을 설정할 수 있는 방법이 있습니까?

답변1

(L3 VPN을 사용하고 있다고 가정합니다.)

이를 수행하는 깔끔한(NAT 프리) 방법은 LAN의 IP를 OpenVPN 클라이언트에 제공하는 것입니다. LAN이 192.168.0.0/24라고 가정하면 OpenVPN 클라이언트에 해당 범위의 IP를 정적으로 할당할 수 있습니다.

OpenVPN 클라이언트에 192.168.0.42를 제공한다고 가정합니다. 192.168.0.42에 액세스하려는 LAN의 노드는 IP 주소와 연관된 MAC 주소를 찾기 위해 LAN에서 ARP 요청을 발행합니다. 그러나 OpenVPN은 LAN에 있지 않으며 ARP 요청에 응답할 수 없습니다. 따라서 원격 LAN의 노드는 OpenVPN 클라이언트에 연결할 수 없습니다.

서버의 IP 구성:

ip address add 192.168.0.33 peer 192.168.0.42 dev tun0

클라이언트 IP 구성:

ip address add 192.168.0.42 peer 192.168.0.33 dev tun0

먼저 OpenVPN 서버에 클라이언트를 대신하여 ARP 요청에 응답하도록 요청해야 합니다. 이를 ARP 프록시라고 합니다.

ip neigh proxy 192.168.0.42 dev eth0

이제 192.168.0.42에 액세스하려는 LAN의 노드는 OpenVPN 서버로부터 ARP 응답을 받고 패킷을 보냅니다.

다음 단계는 OpenVPN 서버에서 IP 전달을 활성화하는 것입니다.

sysctl -w net.ipv4.ip_forward=1

192.168.0.42에 대한 패킷이 수신되면 OpenVPN 서버는 이제 이를 클라이언트로 라우팅합니다.

관련 정보