Crie um túnel de VPN

Esta página descreve como adicionar um túnel de VPN de um gateway de VPN para outro.

Um túnel VPN é um túnel IPsec encriptado entre uma rede de organização e uma rede remota. Liga uma interface VPNGateway a uma interface PeerGateway e usa o recurso VPNBGPPeer para trocar informações de encaminhamento através do túnel.

Antes de começar

Para criar um túnel de VPN, tem de ter o seguinte:

  • Um gateway de VPN e um recurso de gateway de VPN de intercâmbio existentes. Para mais informações, consulte o artigo Crie um gateway de VPN e um gateway de intercâmbio.
  • Um objeto de par BGP de VPN existente. Para mais informações, consulte o artigo Crie uma sessão BGP de VPN.
  • Um segredo existente. Para mais informações, consulte Crie o segredo com uma PSK.
  • As funções de identidade e acesso necessárias:

    • Administrador de VPN: tem autorizações de leitura e escrita em todos os recursos relacionados com a VPN. Peça ao administrador de IAM da organização para lhe conceder a função de administrador de VPN (vpn-admin).
    • Visualizador de VPN: tem autorizações de leitura em todos os recursos relacionados com VPN. Peça ao administrador de IAM da organização para lhe conceder a função de leitor de VPN (vpn-viewer).
    • Para mais informações, consulte o artigo Definições de funções.

Crie um túnel de VPN

Consulte os recursos VPNGateway, PeerGateway, VPNBGPPeer e Secret criados nos passos anteriores para criar o túnel.

Para criar um túnel de VPN, siga estes passos:

  1. Crie o 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
    

    Substitua o seguinte:

    • MANAGEMENT_API_SERVER: o caminho kubeconfig do servidor da API zonal. Se ainda não gerou um ficheiro kubeconfig para o servidor da API na sua zona segmentada, consulte Iniciar sessão para ver detalhes.
    • VPN_TUNNEL_NAME: o nome do túnel de VPN que está a ser usado.
    • VPN_GW_NAME: o nome do gateway de VPN.
    • VPN_INTERFACE_NAME: o nome da interface da VPN.
    • PEER_GW_NAME: o nome do gateway de VPN de intercâmbio.
    • PEER_INTERFACE_NAME: o nome da interface do gateway de VPN de intercâmbio.
    • VPN_BGP_PEER_NAME: o nome do par BGP da VPN. Para mais informações, consulte Crie uma sessão BGP de VPN.
    • PSK_NAME: o nome da PSK que criou em Crie o segredo com uma PSK.
  2. Verifique se o objeto VPN_TUNNEL_NAME foi reconciliado corretamente examinando o campo Status. Obtenha os detalhes do túnel VPN:

    kubectl --kubeconfig MANAGEMENT_API_SERVER describe -n platform vpntunnel VPN_TUNNEL_NAME
    

    Examine o resultado. Tem de ser semelhante ao seguinte exemplo:

    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. Os objetos VPNGateway, PeerGateway e VPNBGPPeer têm de ter estados atualizados depois de serem referenciados por um VPNTunnel. Por exemplo, se verificar que o VPNBGPPeer foi reconciliado corretamente, vê os valores de estado atualizados. Obtenha os detalhes do objeto VPNBGPPeer:

    kubectl --kubeconfig MANAGEMENT_API_SERVER describe -n platform vpnbgppeer VPN_BGP_PEER_NAME
    

    Examine a saída. Os valores de estado estão agora atualizados:

    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
    

O que se segue?