我有一个带有两个Compute实例的VPC。其中之一,vpn-server,是一个虚拟专用网的集群内计算机.另一个名为test-instance,配置了一个实例标记route-through-vpn,如果它要发送到10.10.0.0/19,则将流量路由到vpn-server。
还有一个具有AppEngine实例标记的route-through-vpn实例。在它中运行的webapp可以直接连接到我们的现场集群。
这个设置已经运作了一年多了。然后昨天,一小部分IP地址突然停止工作。
我所说的“停止工作”是指:
vpn-server中,仍然可以将SSH登录到不工作的IP地址中。test-instance的流量不能到达这些IP。失败的IP之一是10.10.0.8。一个仍然有效的IP是10.10.0.47。据我所知,所有地址都与地址范围10.10.0.0/19正确匹配。
为了进行调试,我登录了vpn-server和test-instance,并尝试将ICMP数据包从test-instance发送到集群中的各种IP地址。我还在tcpdump上运行了vpn-server,这样我就可以看到经过的流量。
对于仍在工作的IP地址,我看到了tcpdump输出中的ICMP数据包,就像预期的那样。但是对于不再工作的IP地址,我在tcpdump中什么也没有看到,这表明Gcloud的路由层甚至没有将流量发送到我的vpn-server。
为了进行进一步的测试,我关闭了一台正在正常传输的现场机器,我试着点击它。ICMP回送请求数据包出现在tcpdump的输出中,没有任何答复,与预期完全相同。
谷歌云的路线没有太多的选择,也没有任何信息可以帮助我进一步调查,所以现在取决于某个碰巧知道为什么会发生这种情况的人。
有没有人解决过这样的问题,或者知道原因是什么?
发布于 2019-10-17 22:24:35
这似乎更像是一个实例配置或路由表问题,如果我正确理解的话,IP地址10.10.x.x/19来自on。我们可以放弃防火墙规则,因为我假设您有一条类似于“允许从源/目的地10.10.0.0 /19输入/出口流量”的规则,如果您看到IP地址10.10.0.47仍然有效,意味着防火墙规则正在工作,似乎更像是路由行为,您是否尝试过清理实例中的路由表?它可以帮助刷新路由表。我知道GCP有一个选项,您可以使用实例作为网关,听起来类似于您正在做的事情。
https://serverfault.com/questions/986850
复制相似问题