我正在尝试使用站点到站点 OpenVPN 合并多个 VPC。我认为它几乎成功了,但我遇到了一个奇怪的行为。
设置如下:
- VPC 1:10.20.0.0/16
- WebServer1:10.20.49.147(10.20.48.0/20 子网内)
- NATInstance1:10.20.29.239(10.20.16.0/20 子网内)
- VPC 2:10.250.0.0/16
- WebServer2:10.250.55.41(10.250.48.0/20 子网内)
- NATInstance2:10.250.250.98(10.250.224.0/20 子网内)
VPC 1 和 VPC 2 位于不同的区域(事实上,我试图连接每个不同区域的 4 个 VPC)
我将 NATInstance2 设置为 OpenVPN 服务器,将 NATInstance1 设置为 OpenVPN 客户端(通过 192.168.xx 虚拟 IP),运行良好。但是,我还想让这个环境像整个 10.0.0.0/8 网络一样工作,因此 WebServer1 必须能够连接 WebServer2,反之亦然。
奇怪的是,NATInstance1 可以通过 SSH 连接到 WebServer2,但反向却不行。NATInstance2 也可以通过 SSH 连接到 WebServer1,但反向却不行。当然,WebServer1 和 WebServer2 之间也不可能建立连接。
因为我想使所有这些连接成为可能,我应该在设置中进行哪些更改?
仅供参考,NATInstances 的路由表设置如下:
NAT实例1:
root@openvpn ~# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.20.16.1 0.0.0.0 UG 0 0 0 eth0 10.20.16.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0 10.250.0.0 192.168.0.13 255.255.0.0 UG 0 0 0 tun0 192.168.0.1 192.168.0.13 255.255.255.255 UGH 0 0 0 tun0 192.168.0.13 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
NAT实例2:
root@openvpn ~# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.250.240.1 0.0.0.0 UG 0 0 0 eth0 10.20.0.0 192.168.0.2 255.255.0.0 UG 0 0 0 tun0 10.250.240.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0 192.168.0.0 192.168.0.2 255.255.0.0 UG 0 0 0 tun0 192.168.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
AWS VPC 设置中的路由表包括:
- WebServer1 的子网(10.20.48.0/20):
- 10.20.0.0/16:本地
- 0.0.0.0/0:NAT实例1
- NATInstance1 的子网(10.20.16.0/20):
- 10.20.0.0/16:本地
- 0.0.0.0/0:IGW
- 10.0.0.0/8:NAT实例1
VPC 2 子网的设置也类似。
答案1
您的环境是否需要使用 OpenVPN?如果不是,您可以尝试VPC 对等连接。
VPC 对等连接是两个 VPC 之间的网络连接,可让您使用私有 IP 地址在它们之间路由流量。任一 VPC 中的实例都可以相互通信,就像它们位于同一网络中一样。您可以在自己的 VPC 之间创建 VPC 对等连接,也可以与单个区域内另一个 AWS 账户中的 VPC 创建 VPC 对等连接。
AWS 使用 VPC 的现有基础设施来创建 VPC 对等连接;它既不是网关也不是 VPN 连接,也不依赖于单独的物理硬件。不存在通信单点故障或带宽瓶颈。
答案2
我通过禁用 EC2 OpenVPN 实例中的 IP 检查解决了这个问题。