Google Compute Engine上的VPN连接

我有一个新的Google云端平台设置。 它由一个虚拟机(更多将被添加)和一个VPN到另一个networking,我有3个小型子网(2/24和1/32)。

当我第一次设置VPN时,我只使用/ 32,一切都很好 – Google VPN连接将build立连接,从我的虚拟机我可以ping通/ 32 IP,一切都很好。

本周我们试图把/ 24连接起来。 我回到了Google VPN连接,在远程networkingIP范围中添加了/ 24,这就是一切开始出错的地方。

Google日志显示链接正在尝试build立,但唯一可以调出隧道的方法是让对等networking中的某人ping我的虚拟机,VPN连接显示ESTABLISHED,然后从我的子网中获得对等方框虚拟机 – 其他子网虽然仍然不可用。

有时候我注意到,如果我从其他子网中的其中一个子网中的对等networkingping,那么子网将变为可用并且第一个将会丢弃(这不总是会发生,有时VM到ping的ping仍然失败)。

今天晚上,我已经从虚拟机两台ping到不同的/ 24个对等子网中的IP。 我可以看到/ 24之间的连接翻转。 它不能快速切换(我看到子网A正在工作,直到ping seq 240,停止直到seq 3370,并继续工作,直到3660)。 我没有设置iTerm允许无限制的回滚,所以我不能看到子网B的稳定性,但从子网B已经超过1000线的事实,我会假设它的时间长于子网A.

VPN的两端现在已经重build了几次,每次都是同样的问题。 我在这里错过了一些步骤,还是有真正的问题需要解决?

如果我重buildVPN,只允许其中一个/ 24的问题消失,事情又开始工作。

看起来像是遇到了vpn文档中列出的问题:

安全关联和多个子网

云VPN创build单个子安全关联(SA),通告所有与隧道相关的CIDR块。 一些IKEv2对等设备支持这种行为,有些只支持为每个CIDR块创build一个唯一的子SA。 对于这些后面的设备,具有多个CIDR块的隧道可能无法build立。

这个问题有几个解决方法:

  1. 使用云路由器创buildBGP协商的路由。 使用此configuration,CIDR不在IKE协议中进行协商。
  2. configuration对端设备在同一子SA中拥有多个CIDR。 只有一些设备支持这一点,只有在IKEv2中才有可能。
  3. 如果可能的话,将CIDR聚合成一个更大的CIDR。
  4. 为每个CIDR块创build一个单独的隧道。 如有必要,您可以为此创build多个VPN网关。

我遇到了相同的问题,最近尝试连接到具有远程networking的2个单/ 32个IP地址的对等体。 我能够将2个IP合并到一个单独的/ 31 CIDR块中,并且工作正常。

这就是说,有两个/ 24和一个/ 32我不知道是否合并成一个单一的CIDR块是现实的。 您已经在做select4作为解决方法。 如果您使用的是IKEv1,那么使用云端路由器(最近从Alpha版本转到Beta版本)就可以做到这一点。