Google Compute Engine의 OpenVPN - 어떤 경로를 놓치고 있나요?

Google Compute Engine의 OpenVPN - 어떤 경로를 놓치고 있나요?

다른 VPS 제공업체에 OpenVPN을 설치했고 Google의 서비스를 사용해 보고 싶었습니다. 저는 Google의 가격 대비 성능이 마음에 들며, 특히 매번 로그인하지 않고도 휴대폰에서 시스템을 가동할 수 있다는 점에서 더욱 그렇습니다.

클라이언트가 연결되지만 인터넷에 접속할 수 없는 지점까지 도달했습니다.

OpenVPN 포트에 방화벽을 열었습니다.
가상 머신에서 IP 전달을 활성화했습니다.
클라이언트는 연결될 때 IP, 게이트웨이, DNS 등 모든 올바른 항목을 얻습니다.

OpenVPN 인스턴스에서 전 세계로 패킷을 전달하려면 라우터 및/또는 경로를 구축해야 할 것 같습니다. 문서를 잘 읽었지만 막혔습니다. 저는 아직 네트워크 전문가가 아니고 계속해서 배우고 있습니다. 이 책을 읽으면 네트워크를 소위 "레거시" 구조로 변형할 수 있을 것 같지만, 이 문제를 극복하고 무슨 일이 일어나고 있는지 이해할 수 있었으면 좋겠습니다. 제 생각에는 네트워크가 여러 개의 서로 다른 서브넷으로 나누어져 있기 때문인 것 같습니다. 방화벽 뒤에 단 하나의 네트워크(예: 레거시)가 있는 것과 비교됩니다.

마음속으로 지도를 보면 OpenVPN이 해당 서브넷의 게이트웨이로 데이터를 보내고 있지만 거기에서 패킷이 삭제되는 것 같습니다. 서브넷 게이트웨이에서 인터넷으로의 경로가 필요합니까? 아니면 서브넷과 인터넷 사이에 완전한 라우터가 있습니까?

제가 말했듯이, 저는 이전에 OpenVPN 가상 머신을 사용해 본 적이 있습니다. 문제 없습니다. 따라서 문제는 Google Cloud 네트워크 구성에 있다고 확신합니다.

어떤 팁이라도 주셔서 감사합니다.

답변1

이로 인해 문제가 해결되었습니다.

iptables -t nat -I POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

왜 그렇게 해야 했는지 아직도 잘 모르겠습니다. 어쩌면 Google의 Debian 이미지가 표준 Diebian 인스턴스보다 더 잠겨 있을 수도 있습니다.

다른 Google Cloud 네트워크 변경은 필요하지 않았습니다.

답변2

몇 가지 사항을 체크아웃해야 합니다.

  1. /etc/sysctl.conf에 다음 지시어가 있는지 확인하세요.

    net.ipv4.ip_forward = 1

  2. 방화벽이 VPN 인터페이스의 클라이언트로부터 수신된 트래픽을 전달하고 있는지 확인하세요.

    #OpenVPN interface=tun0 iptables -A FORWARD -i tun0 -j ACCEPT

  3. 나가는 트래픽을 가장하고 있는지 확인하십시오.

#WAN Interface on OpenVPN server is eth1 iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

관련 정보