我有一个全新的 VPC (10.0.0.0/16),其中有 3 个公共子网(指向 IGW)和 3 个私有子网(每个子网都有一个 NAT GW)。我在公共子网中部署了一个 OpenVPN 设备,并将其配置为使用 NAT 模式(Yes, using NAT
在路由配置中)。我在其中一个私有子网中还有一个测试实例。OpenVPN 实例和测试实例都具有“慷慨”灵活性的 SG 组(即,出于测试目的,允许一切进出)。在 OpenVPN 上,我已经10.0.0.0/16
在现场进行了配置Specify the private subnets to which all clients should be given access (one per line):
。
我可以从我的 Mac(在家庭网络 192.168.178.0/24 上)建立隧道,并且可以轻松访问测试实例。一切顺利。
现在我想切换到路线模式。
- 我将路由模式更改为
Yes, using Routing
。我禁用了 OpenVPN 实例上的源/目标检查。 - 我向 VPC 中的所有 4 个路由表(3 个私有子网和 1 个公共子网)添加了静态路由,以表明指向
192.168.178.0/24
(我的家庭网络)的流量应该转到 OpenVPN 实例(公共子网可能不需要这样做)。 - 除了 之外,我还添加了
192.168.178.0/24
该Specify the private subnets to which all clients should be given access (one per line):
字段(不确定这是否是必需的)10.0.0.0/16
。 - 我已经重新配置了用于登录的用户的用户权限
Use Routing
,并再次指定了上述两个子网(10. 和 192.)。
我仍然可以建立隧道。我可以访问 OpenVPN 实例的内部 IP:
$ traceroute 10.0.4.223
traceroute to 10.0.4.223 (10.0.4.223), 64 hops max, 52 byte packets
1 10.0.4.223 (10.0.4.223) 178.345 ms 174.470 ms 173.680 ms
$
但我无法访问私有子网中的测试实例:
$ traceroute 10.0.165.139
traceroute to 10.0.165.139 (10.0.165.139), 64 hops max, 52 byte packets
1 172.27.232.1 (172.27.232.1) 194.976 ms 177.014 ms 174.402 ms
2 * * *
3 * * *
4 * * *
^C
$
有趣的是,如果我通过 ssh 进入我的 OpenVPN 服务器并尝试在启动隧道的本地工作站上 curl NGINX,我无法访问它。看起来工作站可以访问 OpenVPN 服务器(参见上面的跟踪10.0.4.223
),但 OpenVPN 服务器无法访问工作站(出于某些原因)。
看起来从工作站发起的流程能够找到到 OpenVPN 实例的路由(并返回)。但是,从工作站到测试实例(并返回)的路由在某处中断,并且从 OpenVPN 实例发起到工作站的路由似乎也中断了(参见 curl)。