本页面介绍如何添加从一个 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: Established
VPNGateway
、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