我有一个 OpenVPN AS 实例 (AWS)。我正尝试将流量从我的 VPC (172.31.10.0/20) 路由到家庭 (192.168.5.0/24)。
什么有效:我可以将所有流量从家里(192.168.5.0/24)通过 192.168.5.4 路由到 172.31.10.0/20
ROUTE: ANY Source to Dest 172.31.10.0/20 via 192.168.5.4
什么不起作用:我无法将所有流量从 AWS (172.31.10.0/20) 通过 172.31.10.5 路由到 192.168.5.0/24
例如,我无法从 172.31.10.15(Win Server AWS)ping 到 192.168.5.4(RasPi OpenVPN 客户端)。当我从 172.31.10.5(OpenVPN 服务器)执行 tcpdump 来获取 ping 数据包时,什么也没得到。
ROUTE: Dest 192.168.5.0/24 via 172.31.10.5
我已采取哪些措施来解决问题
-OpenVPN 服务器目标检查已禁用
-VPC,路由表,我通过目标 OpenVPn 服务器实例 172.31.10.5 创建了到 192.168.5.0/24 的路由。见截图
来自 AWS OpenVPN 服务器 172.31.10.5 的路由表(无法到达 192.168.5.4):
默认通过 172.31.10.1 dev eth0:172.27.224.0/21 dev as0t0 proto 内核范围链接 src 172.27.224.1
172.27.232.0/21 dev as0t1 proto 内核范围链接 src 172.27.232.1
172.31.10.0/20 dev eth0 proto 内核范围链接 src 172.31.10.5
192.168.5.0/24 dev as0t1 原始静态
来自家庭 OpenVPN 客户端 192.168.5.4 的路由表(可以到达 172.31.10.0/20):
默认通过 192.168.5.254 dev eth0 onlink
13.59.64.181 通过 192.168.5.254 dev eth0
172.27.224.0/20 通过 172.27.232.1 dev tun0 指标 101
172.27.232.0/21 dev tun0 proto 内核范围链接 src 172.27.232.5
172.31.0.0/16 通过 172.27.232.1 dev tun0 指标 101
192.168.5.0/24 dev eth0 proto 内核范围链接 src 192.168.5.4
答案1
答案2
乍一看,你可能忘记了更新 VPN 服务器的安全组以接受来自 VPC 中其他实例的流量为了测试,您可以编辑 AWS VPN 实例所在的安全组并添加一条允许来自 172.31.10.0/20 的所有流量的规则。
我认为这就是问题所在,因为安全组充当了状态防火墙。这意味着当 AWS VPN 实例将流量从家庭发送到其他 AWS 实例时,安全组将自动允许返回流量。但是,当流量由 AWS 中的另一个实例发起并且目的地为您的家庭网络时,AWS VPN 实例的安全组中将没有规则允许流量。这就是为什么来自家庭的流量可以到达 AWS,但反向流量却不起作用的原因。
如果安全组不是问题您可以......
请在您的 VPC 配置中启用 VPC 流日志。这会将类似 netflow 的信息记录到 CloudWatch Logs。我们可以使用它来排除 AWS 端的流量故障。
您可以...吗深入研究哪些情况可行/不可行:
您能从 AWS VPN 实例 ping 通隧道的主端吗?
您能从另一个 AWS 实例 ping 隧道的主端吗?
您能从 AWS VPN 实例 ping 另一台家用机器吗?
您能从另一个 AWS 实例 ping 另一台家用机器吗?
包括从另一个 AWS 实例到另一台家用机器的跟踪路由。
答案3
如果 IP 范围超出其 CIDR 块,VPC 会丢弃数据包。使用 OpenVPN 和 Transit Gateway 中的路由方法设置 VPC 路由。