本页面介绍如何添加从一个 VPN 网关到另一个 VPN 网关的 VPN 隧道。
VPN 隧道是组织网络与远程网络之间的加密 IPsec 隧道。它将 VPNGateway 接口连接到 PeerGateway 接口,并使用 VPNBGPPeer 资源通过隧道交换路由信息。
准备工作
如需创建 VPN 隧道,您必须具备以下条件:
- 现有的 VPN 网关和 VPN 对等网关资源。如需了解详情,请参阅创建 VPN 网关和对等网关。
- 现有的 VPN BGP 对等方对象。如需了解详情,请参阅创建 VPN BGP 会话。
- 现有密钥。如需了解详情,请参阅使用 PSK 创建 Secret。
必要的身份和访问权限角色:
- VPN 管理员:拥有对所有 VPN 相关资源的读写权限。请让您的组织 IAM 管理员向您授予 VPN 管理员 (
vpn-admin) 角色。 - VPN Viewer:拥有对所有 VPN 相关资源的读取权限。请让您的组织 IAM 管理员向您授予 VPN Viewer (
vpn-viewer) 角色。 - 如需了解详情,请参阅角色定义。
- VPN 管理员:拥有对所有 VPN 相关资源的读写权限。请让您的组织 IAM 管理员向您授予 VPN 管理员 (
创建 VPN 隧道
引用上一步中创建的 VPNGateway、PeerGateway、VPNBGPPeer 和 Secret 资源来创建隧道。
如需创建 VPN 隧道,请按以下步骤操作:
创建
VPNTunnel对象:kubectl --kubeconfig MANAGEMENT_API_SERVER create -n platform -f - <<EOF apiVersion: networking.gdc.goog/v1 kind: VPNTunnel metadata: name: VPN_TUNNEL_NAME spec: vpnInterface: name: VPN_GW_NAME namespace: platform interface: VPN_INTERFACE_NAME peerInterface: name: PEER_GW_NAME namespace: platform interface: PEER_INTERFACE_NAME vpnBGPPeer: name: VPN_BGP_PEER_NAME namespace: platform ikeKey: name: PSK_NAME namespace: platform EOF替换以下内容:
MANAGEMENT_API_SERVER:区域 API 服务器的 kubeconfig 路径。如果您尚未为目标地区中的 API 服务器生成 kubeconfig 文件,请参阅登录了解详情。VPN_TUNNEL_NAME:所用 VPN 隧道的名称。VPN_GW_NAME:VPN 网关的名称。VPN_INTERFACE_NAME:VPN 接口的名称。PEER_GW_NAME:对等 VPN 网关的名称。PEER_INTERFACE_NAME:对等 VPN 网关接口的名称。VPN_BGP_PEER_NAME:VPN BGP 对等端的名称。如需了解详情,请参阅创建 VPN BGP 会话。PSK_NAME:您在创建包含 PSK 的 Secret 中创建的 PSK 的名称。
通过检查
Status字段,验证VPN_TUNNEL_NAME对象是否已正确协调。获取 VPN 隧道的详细信息:kubectl --kubeconfig MANAGEMENT_API_SERVER describe -n platform vpntunnel VPN_TUNNEL_NAME检查输出,它必须类似于以下示例:
Status: Conditions: Last Transition Time: 2024-05-10T00:33:31Z Message: Ready Observed Generation: 1 Reason: Ready Status: True Type: Reconciled Last Transition Time: 2024-05-10T00:33:31Z Message: Ready Observed Generation: 1 Reason: Ready Status: True Type: Ready Last Transition Time: 2024-05-10T00:33:31Z Message: Tunnel is established. Observed Generation: 1 Reason: Ready Status: True Type: TunnelEstablished State: EstablishedVPNGateway、PeerGateway和VPNBGPPeer对象在被VPNTunnel引用后必须具有更新后的状态。例如,如果您验证VPNBGPPeer是否已正确对账,则会看到更新后的状态值。获取VPNBGPPeer对象的详细信息:kubectl --kubeconfig MANAGEMENT_API_SERVER describe -n platform vpnbgppeer VPN_BGP_PEER_NAME检查输出,状态值现已更新:
Status: Advertised: Prefix: 10.0.0.16/28 Prefix: 10.0.1.32/27 Prefix: 172.16.0.0/14 Prefix: 172.20.0.0/17 Prefix: 172.20.128.0/17 Prefix: 2002:4860:100e:fa00::/58 Conditions: Last Transition Time: 2024-05-10T00:36:38Z Message: Ready Observed Generation: 1 Reason: Ready Status: True Type: ValidIPs Last Transition Time: 2024-05-10T00:36:38Z Message: Ready Observed Generation: 1 Reason: Ready Status: True Type: TunnelsAttached Last Transition Time: 2024-05-10T00:36:38Z Message: Ready Observed Generation: 1 Reason: Ready Status: True Type: Reconciled Last Transition Time: 2024-05-10T00:36:38Z Message: Ready Observed Generation: 1 Reason: Ready Status: True Type: AdvertisedRoutesReady Last Transition Time: 2024-05-10T00:36:38Z Message: Ready Observed Generation: 1 Reason: Ready Status: True Type: ReceivedRoutesValid Last Transition Time: 2024-05-10T00:36:38Z Message: Ready Observed Generation: 1 Reason: Ready Status: True Type: ReceivedRoutesReady Last Transition Time: 2024-05-10T00:36:38Z Message: Ready Observed Generation: 1 Reason: Ready Status: True Type: Ready Received: Prefix: 192.168.100.0/24 Prefix: 193.188.200.0/24 State: Established