Crear un túnel VPN

En esta página se describe cómo añadir un túnel VPN de una pasarela VPN a otra.

Un túnel VPN es un túnel IPsec cifrado entre la red de una organización y una red remota. Conecta una interfaz VPNGateway con una interfaz PeerGateway y usa el recurso VPNBGPPeer para intercambiar información de enrutamiento a través del túnel.

Antes de empezar

Para crear un túnel VPN, debes tener lo siguiente:

  • Una pasarela VPN y una pasarela VPN de par. Para obtener más información, consulta Crear una pasarela de VPN y una pasarela de par.
  • Un objeto de par de BGP de VPN. Para obtener más información, consulta Crear una sesión de BGP de VPN.
  • Un secreto ya creado. Para obtener más información, consulta Crear el secreto con una PSK.
  • Los roles de identidad y acceso necesarios:

    • Administrador de VPN: tiene permisos de lectura y escritura en todos los recursos relacionados con VPN. Pídele al administrador de gestión de identidades y accesos de tu organización que te conceda el rol de administrador de VPN (vpn-admin).
    • Lector de VPN: tiene permisos de lectura en todos los recursos relacionados con VPN. Pide al administrador de gestión de identidades y accesos de tu organización que te conceda el rol de lector de VPN (vpn-viewer).
    • Para obtener más información, consulta Definiciones de roles.

Crear un túnel VPN

Haz referencia a los recursos VPNGateway, PeerGateway, VPNBGPPeer y Secret que has creado en los pasos anteriores para crear el túnel.

Para crear un túnel VPN, siga estos pasos:

  1. Crea el objeto 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
    

    Haz los cambios siguientes:

    • MANAGEMENT_API_SERVER: la ruta kubeconfig del servidor de la API zonal. Si aún no has generado un archivo kubeconfig para el servidor de la API en tu zona de destino, consulta Iniciar sesión para obtener más información.
    • VPN_TUNNEL_NAME: el nombre del túnel VPN que se está usando.
    • VPN_GW_NAME: el nombre de la pasarela VPN.
    • VPN_INTERFACE_NAME: el nombre de la interfaz de la VPN.
    • PEER_GW_NAME: el nombre de la pasarela de VPN de par.
    • PEER_INTERFACE_NAME: el nombre de la interfaz de pasarela de VPN de par.
    • VPN_BGP_PEER_NAME: nombre del par de BGP de la VPN. Para obtener más información, consulta el artículo Crear una sesión de BGP de VPN.
    • PSK_NAME: el nombre de la clave precompartida que has creado en Crea el secreto con una clave precompartida.
  2. Comprueba que el objeto VPN_TUNNEL_NAME se haya conciliado correctamente examinando el campo Status. Obtén los detalles del túnel VPN:

    kubectl --kubeconfig MANAGEMENT_API_SERVER describe -n platform vpntunnel VPN_TUNNEL_NAME
    

    Examina la salida. Debe ser similar al siguiente ejemplo:

    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
    
  3. Los objetos VPNGateway, PeerGateway y VPNBGPPeer deben tener estados actualizados después de que un VPNTunnel haga referencia a ellos. Por ejemplo, si verifica que el VPNBGPPeer se ha conciliado correctamente, verá los valores de estado actualizados. Obtén los detalles del objeto VPNBGPPeer:

    kubectl --kubeconfig MANAGEMENT_API_SERVER describe -n platform vpnbgppeer VPN_BGP_PEER_NAME
    

    Examina el resultado. Los valores de estado ahora están actualizados:

    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
    

Siguientes pasos