AWS VPCのパブリックサブネットのBastionインスタンスにOpenVPNサーバーを設定しました。現在、OpenVPNクライアントでそのインスタンスのプライベートIPアドレスにアクセスしていますが、他のプライベートサブネットで実行されているEC2インスタンスにアクセスするVPC 内。
これが私の server.conf ファイルです:
port 1194
# TCP or UDP server?
;proto tcp
proto udp
;dev tap
dev tun
;dev-node MyTap
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/server.crt
key /etc/openvpn/easy-rsa/pki/private/server.key
dh /etc/openvpn/easy-rsa/pki/dh.pem
;topology subnet
server 10.8.0.0 255.255.255.0
;client-config-dir ccd
route 10.10.0.0 255.255.0.0
route 10.10.12.0 255.255.255.0
route 10.10.52.0 255.255.255.0
route 10.10.51.0 255.255.255.0
push "route 10.10.0.0 255.255.0.0"
push "route 10.10.12.0 255.255.255.0"
push "route 10.10.11.0 255.255.255.0"
push "route 10.10.51.0 255.255.255.0"
push "route 10.10.52.0 255.255.255.0"
;learn-address ./script
;push "redirect-gateway def1 bypass-dhcp"
;push "dhcp-option DNS 208.67.222.222"
;push "dhcp-option DNS 208.67.220.220"
client-to-client
#keepalive 10 120
tls-auth ta.key 0 # This file is secret
cipher AES-256-CBC
user nobody
group nobody
status openvpn-status.log
verb 3
私のネットワーク知識は適切なレベルではないので、この問題を解決するアイデアをお持ちの方がいらっしゃいましたら、大変ありがたく思います。
ありがとう
答え1
私の VPC には OpenVPN サーバーとして Mikrotik Cloud RouterOS がいくつかあり、動作させるのにもしばらく時間がかかりました。
あなたのインフラや現在の問題が何なのかはよく分かりませんが、クライアントはすでに OpenVPN サーバーに接続できるが、他のプライベート EC2 サーバーにはアクセスできないと想定しています。
クライアント IP プール (10.8.0.0/24) が OpenVPN サーバーの内部 IP (10.10.0.0/16) と異なることに気付きました。VPC ルート テーブルでは 10.8.0.0/24 がどのサブネットであるか、また対応するトラフィックをどこにルーティングするかがわからないため、VPC ルーティングが複雑になります。
私がこの問題を解決した方法は、NAT を適用して、パケットが OpenVPN サーバーから送信されるときに、クライアント トラフィック (IP 10.8.0.100 とします) が OpenVPN サーバー (IP 10.10.0.100 とします) としてマスカレードされるようにすることでした。この方法では、プライベート EC2 サーバーは常に OpenVPN サーバーを経由してルーティングされます。
確認する必要がある事項もいくつかあります。
EC2セキュリティグループはトラフィックを許可しています
VPCサブネットはルートテーブルに関連付けられています
VPCルートテーブルには対応するルート設定があります
NAT が発生している場合は、EC2 の送信元/宛先チェックは無効になります。
別の解決策としては、すべての 10.8.0.0/24 トラフィックが OpenVPN サーバーに送信されるようにルート テーブルを設定することが考えられますが、私はこれをうまく機能させたことがないので、この方法を採用する場合は幸運を祈ります。