私は最近、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"
ここに2つの質問があります。
- プッシュする前に下のローカルルートに何を入れるべきかわかりません。
- "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には、ほとんどの設定を処理できる便利なヘルパースクリプトがたくさんあります。私はこのスクリプトのドキュメントを注意深く読んで解決策を見つけました。