问题排查

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

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

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

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

错误消息

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

  1. 在 Google Cloud Console 中,转到 VPN 页面。

    转到 VPN

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

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

VPN 日志

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

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

在很多情况下,网关都是配置正确的,往往是主机和网关之间的对等网络出现问题,或者是对等网关与 Cloud VPN 网关之间的网络出现问题。

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

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

    转到日志浏览器

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

    1. 验证 Cloud VPN 网关上配置的远程对等 IP 地址是正确的。
    2. 验证从本地主机流出的流量可到达对等网关。
    3. 验证两个 VPN 网关之间的流量在双向流动。在 VPN 日志中,检查从其他 VPN 网关报告的传入消息。
    4. 检查隧道两端配置的 IKE 版本是否相同。
    5. 检查隧道两端的共享密钥是否相同。
    6. 如果您的对等 VPN 网关位于一对一 NAT 之后,请确保已正确配置 NAT 设备,以将 UDP 流量转发到端口 5004500 上的对等 VPN 网关。将对等网关配置为使用 NAT 设备的外部 IP 地址来标识自己。如需了解详情,请参阅 NAT 后面的本地网关
    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。

在身份验证过程中,Cloud VPN 会检查对等网关的身份。Cloud VPN 要求每个对等网关采用以下方式标识自己:使用 RFC 7815 中指定的 ID_IPV4_ADDR 标识类型,并使用为 Cloud VPN 隧道配置的外部 IP(对等网关)地址。

以下日志消息表明对等 VPN 网关使用内部 IP 地址错误地标识自己。在本示例中,PEER_GATEWAY_INTERNAL_IP 是内部 IP 地址,PEER_GATEWAY_EXTERNAL_IP 是对等 VPN 网关与互联网之间的 NAT 设备的外部 IP 地址。

authentication of PEER_GATEWAY_INTERNAL_IP with pre-shared key successful
constraint check failed: identity PEER_GATEWAY_EXTERNAL_IP required
selected peer config 'vpn_PEER_GATEWAY_EXTERNAL_IP' inacceptable: constraint checking failed

使用一对一 NAT 时,您的本地 VPN 网关必须使用 NAT 设备的相同外部 IP 地址来标识自己:

  • 标识类型必须是 ID_IPV4_ADDR (RFC 7815)。

  • 并非所有 Cisco 设备都支持将设备标识设置为与设备所用 IP 地址(其内部 IP 地址)不同的 IP 地址。例如,Cisco ASA 设备不支持为其身份分配不同的(外部)IP 地址。因此,Cisco ASA 设备无法配置为将一对一 NAT 与 Cloud VPN 结合使用。

  • 对于 Juniper 设备,您可以使用 set security ike gateway NAME local-identity inet EXTERNAL_IP 设置设备标识,其中 NAME 是您的 VPN 网关名称,EXTERNAL_IP 是您的外部 IP 地址。如需了解详情,请参阅此篇 Juniper TechLibrary 文章

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

如果通过 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 网关上隧道的本地流量选择器相匹配。

连接传统 VPN 和高可用性 VPN 网关

Google Cloud 不支持通过连接到传统 VPN 网关的高可用性 VPN 网关创建隧道。如果您尝试创建具有传统 VPN 网关的外部 IP 地址的 externalVpnGateway 资源,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 网关。

问题排查参考信息

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

状态图标

Cloud VPN 使用 Cloud Console 中的以下状态图标。

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

状态消息

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

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

IKE 加密方式参考文档

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

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

后续步骤

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