AWS上OpenVPN NAT模式正常但路由模式无法访问私有子网及本地网络的问题求助
AWS上OpenVPN NAT模式正常但路由模式无法访问私有子网及本地网络的问题求助
大家好,我最近在AWS环境下调整OpenVPN的路由模式时遇到了麻烦,想请各位帮忙分析下问题所在:
背景配置(NAT模式下一切正常)
- 我有一个全新的VPC(网段
10.0.0.0/16),包含3个关联互联网网关(IGW)的公有子网,以及3个各自配有NAT网关的私有子网。 - 在公有子网部署了OpenVPN设备,最初配置为NAT模式(路由配置里启用了NAT),私有子网中部署了一台测试实例。
- 两者的安全组都设置得非常宽松(测试用途,允许所有进出流量),OpenVPN后台也指定了客户端可访问的私有子网为
10.0.0.0/16。 - 用家里的Mac(所在网段
192.168.178.0/24)能正常建立隧道,也能顺畅访问测试实例,没有任何问题。
切换到路由模式后的操作
为了切换到路由模式,我做了这些配置修改:
- 将OpenVPN的路由模式改为Yes, using Routing,同时关闭了OpenVPN实例的源/目标检查。
- 在VPC的4个路由表(3个私有子网路由表 + 1个公有子网路由表)中添加了静态路由:目标网段
192.168.178.0/24,下一跳指向OpenVPN实例(公有子网的路由表可能没必要,但还是一并配置了)。 - 在OpenVPN后台的「指定客户端可访问的私有子网」字段中,除了保留
10.0.0.0/16,还新增了192.168.178.0/24(不确定这个操作是否必要)。 - 重新配置了登录用户的权限,启用「Use Routing」选项,并再次指定了
10.0.0.0/16和192.168.178.0/24两个网段。
出现的问题
隧道能正常建立,但出现了两个关键问题:
- 无法访问私有子网的测试实例
执行 traceroute 命令的结果如下:
对比之下,访问OpenVPN实例的内网IP是正常的:$ 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 $$ 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 $ - OpenVPN服务器无法反向访问本地工作站
我ssh到OpenVPN服务器后,尝试curl本地Mac上运行的NGINX服务,完全访问不通。看起来工作站能正常到达OpenVPN实例,但反向流量走不通;同时工作站到测试实例的双向路由也断裂了。
有没有大佬能帮我分析下哪里配置错了?
备注:内容来源于stack exchange,提问作者mreferre
相关产品推荐
相关产品推荐

