저는 최근 GCP의 Docker 컨테이너에 openvpn 서버를 설치했습니다.https://github.com/kylemanna/docker-openvpn.
docker-host에는 패킷 전달이 활성화되어 있습니다.
이제 구성에 어려움을 겪고 있습니다. openvpn 클라이언트를 사용하여 서버에 연결할 수 있지만 VPN을 통해 모든 트래픽을 라우팅하거나 전혀 라우팅할 수 없습니다.
내 구성은 다음과 같습니다.
server 172.21.208.0 255.255.248.0
verb 3
key /etc/openvpn/pki/private/mycompany.key
ca /etc/openvpn/pki/ca.crt
cert /etc/openvpn/pki/issued/mycompany.net.crt
dh /etc/openvpn/pki/dh.pem
tls-auth /etc/openvpn/pki/ta.key
key-direction 0
keepalive 10 60
persist-key
persist-tun
proto udp
# Rely on Docker to do port mapping, internally always 1194
port 1194
dev tun
status /tmp/openvpn-status.log
user nobody
group nogroup
### Route Configurations Below
route 10.250.0.0 255.255.255.0
### Push Configurations Below
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
push "route 10.250.0.0 255.255.255.0"
여기에 두 가지 질문이 있습니다.
- 푸시하기 전 하단 로컬 루트에 뭘 넣어야 할지 모르겠네요.
- "redirect-gateway def1"이 client.ovpn에 추가되었지만 tat 동작을 제어하는 구성이 표시되지 않습니다. client.ovpn에서 이를 제거하지 않으면 모든 트래픽이 VPN을 통해 라우팅되지만 10.250.0.0/24만 라우팅하고 다른 모든 주소는 로컬 게이트웨이를 통해 직접 액세스하면 됩니다.
openvpn 서버와 동일한 서브넷에 있는 컴퓨터에 연결하려면 VPN 연결이 필요합니다. 그게 전부입니다. GCP에서 로컬 네트워크에 액세스할 필요는 없지만 패킷을 클라이언트로 다시 보내기 위한 경로가 필요하다는 것을 알고 있습니다(따라서 이 라우팅 지시어에 대한 혼란이 있습니다).
내 로컬 네트워크에는 클래스 C 개인 주소(192.168.xx)가 있습니다. 원격 서브넷에는 cidr 10.250.0.0/24가 있습니다. VPN 클라이언트와 서버는 클래스 B 주소(172.21.208.0/21)를 얻습니다.
답변1
마지막으로 dockerized openvpn에는 대부분의 구성을 처리할 수 있는 유용한 도우미 스크립트가 많이 있습니다. 나는 이 스크립트의 문서를 주의 깊게 읽어 해결책을 찾았습니다.