openvpn 터널(각 tun 장치)을 통해 연결하려는 두 개의 네트워크가 있습니다.
서버 측 네트워크는 10.10.7.0/24이고,
VPN 게이트웨이는 IP가 10.10.7.12인 VM에서 실행되고 있으며,
VPN 게이트웨이 측의 VPN 터널 IP는 10.10.9.1(tun0)
이고 라우터는 유선 라우터입니다. IP는 10.10.7.1입니다.
라우터에는 10.10.10.0/24에서 10.10.7.12까지의 라우팅 항목이 있습니다.
라우터는 1194에서 10.10.7.12:1194로 포트 전달을 수행합니다.
클라이언트 네트워크는 10.10.10.0/24입니다.
클라이언트 라우터는 IP 10.10.10.1의 데비안 라즈베리입니다.
풀(192.168.0.xx)의 IP를 사용하여 외부 wlan(wlan0)에 연결합니다.
클라이언트는 (아직)
이더넷(eth0)을 통해 VPN에 연결합니다. 터널의 IP는 10.10.9.2입니다.
VPN 연결을 설정했으며 이제 네트워크 간 라우팅을 원합니다.
클라이언트 측에서는 "route add -net 10.10.7.0/24 tun0"을 통해 경로를 추가했습니다. 서버
측에서는 "route add -net 10.10.10.0/24 tun0"을 통해 경로를 추가했습니다.
서버 측이 수락하도록 설정되었습니다.
저는 매스커레이딩이나 snat을 구성하지 않았는데, TCP 패킷의 발신자 IP가 페이로드에 있는 발신자 IP와 다를 때 제가 실행 중인 서비스가 혼란스러워지기 때문에 그렇게 하고 싶지 않습니다.
다른 인터넷 연결은 터널을 통해 라우팅되어서는 안 됩니다.
이제 클라이언트 게이트웨이에서 서버 및 다른 네트워크로 ping을 실행할 수 있습니다. http도 작동합니다. 그러나 서버에서 클라이언트 게이트웨이로 ping을 보낼 수 없고 어떤 서비스에도 액세스할 수 없습니다(예:[이메일 보호됨]). 내가 무엇을 놓치고 있나요?
당신의 도움을 주셔서 감사합니다.
답변1
"route add -net 10.10.10.0/24 tun0"은 openvpn으로 트래픽을 전송하지만, 어떤 클라이언트로 트래픽을 보낼지 openvpn 서버에 알려주지 않았습니다.
이를 위해서는 iroute 지시문을 사용해야 합니다.
iroute 10.10.10.0 255.255.255.0
이는 서버의 /etc/openvpn/ccd/<cn>에 있어야 합니다(<cn>을 클라이언트 인증서의 일반 이름으로 교체).