我有多个 AWS VPC 网络,并希望使用 OpenVPN 按照以下配置进行连接
+---------+ +---------+
| vpc1 | | vpc2 |
+---------+ +---------+
\ /
+---------+
| vpc0 |
+---------+
|
+---------+
| local |
+---------+
以下是每个 VPC 的详细信息
+--------------------------+
| VPC | subnet | region |
+------+---------+---------+
| vpc0 | 10.0/16 | region0 |
| vpc1 | 10.1/16 | region1 |
| vpc2 | 10.2/16 | region0 |
+------+---------+---------+
我能够vpc0
使用简单的 OpenVPN 配置连接到 中的所有实例,并且vpc2
由于处于同一区域,因此我能够与 进行 VPC 对等连接vpc0
并连接到 中的实例vpc2
。尽管我无法访问 中的实例vpc1
。
我的 OpenVPNserver.conf
如下vpc0
所示
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key # This file should be kept secret
dh dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-config-dir ccd
mode server
topology subnet
tls-server
push "route 10.0.0.0 255.255.0.0"
push "route 10.1.0.0 255.255.0.0"
push "route 10.2.0.0 255.255.0.0"
route 10.1.0.0 255.255.0.0
keepalive 10 120
tls-auth ta.key 0 # This file is secret
key-direction 0
vpc1
客户端配置/etc/openvpn/ccd
ifconfig-push 10.8.0.1 255.255.255.0
push "route 10.0.0.0 255.255.0.0"
iroute 10.1.0.0 255.255.0.0
路由表vpc0
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default 10.0.0.1 0.0.0.0 UG 0 0 0 eth0
10.0.0.0 * 255.255.240.0 U 0 0 0 eth0
10.1.0.0 10.8.0.2 255.255.0.0 UG 0 0 0 tun0
10.8.0.0 * 255.255.255.0 U 0 0 0 tun0
为了从 进行连接,vpc1
我创建了一个客户端证书,vpc1.ovpn
然后在vpc1
作为 的机器中启动了一个进程openvpn --config vpc1.ovpn
。启动此进程后,我能够从 访问 中的任何机器,vpc0
但无法从机器或任何实例访问 实例。机器上的路由表是。vpc2
vpc1
vpc1
vpc0
vpc1
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default 10.1.0.1 0.0.0.0 UG 0 0 0 eth0
10.0.0.0 10.8.0.1 255.255.0.0 UG 0 0 0 tun0
10.1.0.0 * 255.255.240.0 U 0 0 0 eth0
10.2.0.0 10.8.0.1 255.255.0.0 UG 0 0 0 tun0
10.8.0.0 * 255.255.255.0 U 0 0 0 tun0
PS我已经关注这进行设置。