问题排查

本问题排查指南可帮您监控和解决 Cloud VPN 的常见问题。

如需解释状态消息和 IKE 加密参考,请参阅参考部分。

如需查找日志记录和监控信息,请参阅查看日志和指标

如需查看本页面中使用的术语的定义,请参阅 Cloud VPN 关键术语

错误消息

要查看错误消息,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,转到 VPN 页面。

    转到 VPN

  2. 如果您看到状态图标,请将鼠标悬停在该图标上以查看错误消息

通常,错误消息可帮助您找出问题所在。如果未能查明,请检查日志以获取更多信息。您可以在 Google Cloud 控制台的隧道详情页面上找到详细的状态信息。

VPN 日志

Cloud VPN 日志存储在 Cloud Logging 中。Logging 会自动运行,因此您无需启用该功能。

如需了解如何查看连接的对等网关端的日志,请参阅产品文档。

通常,网关配置正确,但主机与网关之间的对等网络出现问题,或者是对等网关与 Cloud VPN 网关之间的网络出现问题。

如要查看日志,请按以下步骤操作:

  1. 在 Google Cloud Console 中,转到日志浏览器页面。

    转到日志浏览器

  2. 请检查日志以了解以下信息:

    1. 验证 Cloud VPN 网关上配置的远程对等 IP 地址是否正确。
    2. 验证从本地主机流出的流量可到达对等网关。
    3. 验证两个 VPN 网关之间的流量在双向流动。在 VPN 日志中,检查从其他 VPN 网关报告的传入消息。
    4. 检查隧道两端配置的 IKE 版本是否相同。
    5. 检查隧道两端的共享密钥是否相同。
    6. 如果您的对等 VPN 网关位于一对一 NAT 之后,请确保已正确配置 NAT 设备,以将 UDP 流量转发到端口 5004500 上的对等 VPN 网关。
    7. 如果 VPN 日志显示 no-proposal-chosen 错误,则此错误表示 Cloud VPN 和您的对等 VPN 网关无法就一组加密达成一致。对于 IKEv1,这组加密必须完全匹配。 对于 IKEv2,每个网关必须至少提供一个公共加密。请确保使用支持的加密来配置对等 VPN 网关。
    8. 确保您配置对等和 Google Cloud 路由及防火墙规则,以便流量可以穿过隧道。您可能需要联系网络管理员寻求帮助。
  3. 如需查找具体问题,您可以在日志中搜索以下字符串:

    1. 查询构建器窗格中,输入下表中列出的某个高级查询,以搜索特定事件,然后点击运行查询
    2. 根据需要调整直方图窗格中的时间范围,然后点击该窗格中的运行。如需详细了解如何将日志浏览器用于查询,请参阅构建日志查询

      查看 使用此日志记录搜索
      Cloud VPN 启动第 1 阶段 (IKE SA)
      resource.type="vpn_gateway"
      ("initiating IKE_SA" OR "generating IKE_SA_INIT request")
      Cloud VPN 无法联系远程对等体
      resource.type="vpn_gateway"
      "establishing IKE_SA failed, peer not responding"
      IKE(第 1 阶段)身份验证事件
      resource.type="vpn_gateway"
      ("generating IKE_AUTH request" OR "parsed IKE_AUTH response")
      成功的 IKE 身份验证
      resource.type="vpn_gateway"
      ("authentication of" AND "with pre-shared key successful")
      第 1 阶段 (IKE SA) 已建立
      resource.type="vpn_gateway"
      ("IKE_SA" AND "established between")
      所有第 2 阶段(子 SA)事件,包括密钥更新事件
      resource.type="vpn_gateway"
      "CHILD_SA"
      对等体要求进行第 2 阶段密钥更新
      resource.type="vpn_gateway"
      detected rekeying of CHILD_SA
      对等体要求终止第 2 阶段(子 SA)
      resource.type="vpn_gateway"
      received DELETE for ESP CHILD_SA
      Cloud VPN 要求终止第 2 阶段(子 SA)
      resource.type="vpn_gateway"
      sending DELETE for ESP CHILD_SA
      Cloud VPN 关闭第 2 阶段(子 SA),可能是为了响应对等体
      resource.type="vpn_gateway" closing CHILD_SA
      Cloud VPN 自己关闭了第 2 阶段
      resource.type="vpn_gateway" CHILD_SA closed
      如果远程流量选择器不匹配
      resource.type="vpn_gateway"
      Remote traffic selectors narrowed
      如果本地流量选择器不匹配
      resource.type="vpn_gateway"
      Local traffic selectors narrowed

连接

在使用 ping 验证本地系统和 Google Cloud 虚拟机 (VM) 实例之间的连接时,请考虑以下建议:

  • 确保 Google Cloud 网络中的防火墙规则允许传入 ICMP 流量。隐式允许出站规则允许从您的网络传出 ICMP 流量,除非您已将其覆盖。同样,请确保您的本地防火墙规则也配置为允许传入和传出 ICMP 流量。

  • 使用内部 IP 地址来 ping Google Cloud 虚拟机和本地系统。对 VPN 网关的外部 IP 地址执行 ping 操作不会测试通过隧道的连接。

  • 测试从本地到 Google Cloud 的连接时,最好从您网络上的系统发起 ping 操作,而不是从 VPN 网关发起此操作。如果设置了适当的源接口,则可通过网关执行 ping 操作,但从网络上的实例执行 ping 操作还可以测试您的防火墙配置。

  • Ping 测试不会验证 TCP 或 UDP 端口是否处于打开状态。确定系统具有基本连接后,您可以使用 ping 来执行其他测试。

计算网络吞吐量

您可以计算 Google Cloud 中以及传到本地或第三方云位置的网络吞吐量。该资源包括有关如何分析结果的信息、可能影响网络性能的变量说明以及问题排查提示。

常见问题和解决方案

隧道定期关闭几秒钟

默认情况下,Cloud VPN 会在现有安全关联到期之前协商替换安全关联 (SA)(也称为密钥更新)。您的对等 VPN 网关可能不会执行密钥更新。该网关可能只会在删除现有 SA 之后协商新的 SA,从而导致中断。

如需检查对等网关是否执行密钥更新,请查看 Cloud VPN 日志。如果连接断开,然后在出现 Received SA_DELETE 日志消息后立即重新建立,则本地网关未执行密钥更新。

如需验证隧道设置,请参阅支持的 IKE 加密方式文档。尤其要确保第 2 阶段存在期正确,并将 Diffie-Hellman (DH) 组设置为建议的值之一。

如需在 Cloud VPN 隧道中搜索事件,您可以使用 Logging 高级日志过滤条件。例如,以下高级过滤器会搜索 DH 组不匹配的事件:

resource.type="vpn_gateway"
"Peer proposal: DOES NOT HAVE DIFFIE_HELLMAN_GROUP"

NAT 后面的本地网关

Cloud VPN 可与 NAT 后面的本地或对等 VPN 网关结合使用。这可以通过 UDP 封装和 NAT-T 实现,并且仅支持一对一 NAT。

连接检查在某些虚拟机上能操作成功,但在其他虚拟机上不成功

如果通过 pingtraceroute 或其他方法将流量仅从某些虚拟机发送到本地系统,或者仅从某些本地系统发送到某些 Google Cloud 虚拟机,并且您已验证 Google Cloud 和本地防火墙规则均未屏蔽您发送的流量,则您可能使用了排除特定来源或目的地的流量选择器。

流量选择器定义 VPN 隧道的 IP 地址范围。除了路由之外,大多数 VPN 实现仅在同时满足以下两个条件时通过隧道传送数据包:

  • 来源位于本地流量选择器中指定的 IP 范围内。
  • 目的地位于远程流量选择器中指定的 IP 范围内。

使用基于政策的路由或基于路由的 VPN 创建传统 VPN 隧道时,您需要指定流量选择器。您在创建相应的对等隧道时也需要指定流量选择器。

某些供应商将“本地代理”、“本地加密网域”或“左侧网络”等术语用作“本地流量选择器”的同义词。同样,“远程代理”、“远程加密网域”或“右侧网络”是“远程流量选择器”的同义词。

如需更改某传统 VPN 隧道的流量选择器,您必须删除该隧道,然后重新创建。这些是必需的步骤,因为流量选择器是隧道创建过程中不可或缺的一部分,并且隧道在创建之后无法修改。

定义流量选择器时,请遵循以下准则:

  • Cloud VPN 隧道的本地流量选择器应涵盖需要与对等网络共享的 Virtual Private Cloud (VPC) 网络中的所有子网。
  • 对等网络的本地流量选择器应涵盖需要与 VPC 网络共享的所有本地子网。
  • 对于指定的 VPN 隧道,流量选择器具有以下关系:
    • Cloud VPN 本地流量选择器应与对等 VPN 网关上隧道的远程流量选择器相匹配。
    • Cloud VPN 远程流量选择器应与对等 VPN 网关上隧道的本地流量选择器相匹配。

不同区域中的虚拟机之间的网络延迟时间问题

如需确定是否存在任何延迟时间或丢包问题,请监控整个 Google Cloud 网络的性能。在 Google Cloud 性能视图中,性能信息中心显示所有 Google Cloud 中的丢包和延迟时间指标。这些指标可帮助您了解项目性能视图中发现的问题是否是您的项目所独有的。如需了解详情,请参阅使用性能信息中心

无法将高可用性 VPN 网关连接到非高可用性 VPN 网关

Google Cloud 不支持在高可用性 VPN 网关与 Google Cloud 中托管的任何非高可用性 VPN 网关之间创建隧道连接。此限制适用于在 Compute Engine 虚拟机上运行的传统 VPN 网关和第三方 VPN 网关。

如果您尝试执行此操作,Google Cloud 会返回以下错误消息:

  You cannot provide an interface with an IP address owned by Google Cloud.
  You can only create tunnels from an HA gateway to an HA gateway
  or create tunnels from an HA gateway to an ExternalVpnGateway.

如需避免此错误,请创建一个将高可用性 VPN 网关连接到以下网关之一的 VPN 隧道:

  • 其他高可用性 VPN 网关
  • 未托管在 Google Cloud 中的外部 VPN 网关
  • Compute Engine 虚拟机 (VM) 实例

无法通过高可用性 VPN 连接到外部目标

使用高可用性 VPN 网关时,Google Cloud 资源会使用 VPN 隧道仅连接到对等路由器通告的目的地。

如果您无法连接到远程目的地,请确保对等路由器通告目的地的 IP 范围。

IPv6 流量未路由

如果您在连接到 IPv6 主机时遇到问题,请执行以下操作:

  1. 验证 IPv4 路由是否已正确通告。如果未通告 IPv4 路由,请参阅排查 BGP 路由和路由选择问题
  2. 检查防火墙规则,确保允许 IPv6 流量。
  3. 验证您的 VPC 网络和本地网络中没有重叠的 IPv6 子网范围。请参阅检查重叠子网范围
  4. 确定您是否超出了 Cloud Router 路由器中已知路由的任何配额和限制。如果您已超出已知路由的配额,则系统会先丢弃 IPv6 前缀,之后才会丢弃 IPv4 前缀。请参阅检查配额和限制
  5. 验证所有需要 IPv6 配置的组件都已正确配置。
    • VPC 网络通过 --enable-ula-internal-ipv6 标志允许使用内部 IPv6 地址。
    • VPC 子网配置为使用 IPV4_IPV6 堆栈类型。
    • VPC 子网将 --ipv6-access-type 设置为 INTERNAL
    • 子网上的 Compute Engine 虚拟机配置了 IPv6 地址。
    • 高可用性 VPN 网关配置为使用 IPV4_IPV6 堆栈类型。
    • BGP 对等端已启用 IPv6,并且您为 BGP 会话配置了正确的 IPv6 下一个跃点地址。

问题排查参考信息

本部分包含状态图标、状态消息和支持的 IKE 加密方式的信息。

状态图标

Cloud VPN 在 Google Cloud 控制台中使用以下状态图标。

图标图片 颜色 说明 应用的消息
绿色成功图标
绿色 成功 已建立
黄色警告图标
黄色 警告 正在分配资源、首次握手、正在等待完整配置、正在预配
红色错误图标
红色 错误 其余所有消息

状态消息

Cloud VPN 使用以下状态消息来指示 VPN 网关和隧道状态。VPN 隧道按指示的状态收取费用

消息 说明 是否对此状态的隧道收取费用?
正在分配资源 正在分配用于设置隧道的资源。
正在预配 正在等待接收用于设置隧道的所有配置。
正在等待完整配置 已收到完整配置,但尚未建立隧道。
首次握手 正在建立隧道。
已建立 成功建立了安全通信会话。
网络连接错误
(替换为“没有传入数据包”)
IPsec 授权错误。
授权错误 握手失败。
协商失败 隧道配置被拒绝;可能是由于被添加到拒绝名单中。
正在取消预配 隧道即将关闭。
没有传入数据包 网关未收到来自本地 VPN 的任何数据包。
已拒绝 隧道配置被拒绝,请与支持团队联系
已停止 隧道已停止且处于非活动状态;可能是因为删除了 VPN 隧道的一个或多个必需的转发规则。

IKE 加密方式参考文档

Cloud VPN 支持对等 VPN 设备或 VPN 服务的加密和配置参数。只要对等端使用支持的 IKE 加密设置,Cloud VPN 就会自动协商连接。

如需查看完整的 IKE 加密参考,请参阅支持的 IKE 加密方式

后续步骤

  • 要了解 Cloud VPN 的基本概念,请参阅 Cloud VPN 概览
  • 如要查找高可用性、高吞吐量场景或多子网场景,请参阅高级配置