Criar um túnel VPN

Nesta página, descrevemos como adicionar um túnel de VPN de um gateway de VPN a outro.

Um túnel VPN é um túnel IPsec criptografado entre uma rede de organização e uma rede remota. Ele conecta uma interface VPNGateway a uma interface PeerGateway e usa o recurso VPNBGPPeer para trocar informações de roteamento pelo túnel.

Antes de começar

Para criar um túnel VPN, você precisa do seguinte:

  • Um recurso de gateway de VPN e de gateway de VPN de peering. Para mais informações, consulte Criar um gateway de VPN e um gateway de peering.
  • Um objeto de peer BGP de VPN. Para mais informações, consulte Criar uma sessão BGP de VPN.
  • Um secret atual. Para mais informações, consulte Criar o secret com uma PSK.
  • Os papéis necessários de identidade e acesso:

    • Administrador da VPN: tem permissões de leitura e gravação em todos os recursos relacionados à VPN. Peça ao administrador do IAM da organização para conceder a você o papel de administrador de VPN (vpn-admin).
    • Leitor de VPN: tem permissões de leitura em todos os recursos relacionados à VPN. Peça ao administrador do IAM da organização para conceder a você o papel de leitor de VPN (vpn-viewer).
    • Para mais informações, consulte Definições de papéis.

Criar um túnel VPN

Faça referência aos recursos VPNGateway, PeerGateway, VPNBGPPeer e Secret criados nas etapas anteriores para criar o túnel.

Para criar um túnel de VPN, siga estas etapas:

  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:

    • MANAGEMENT_API_SERVER: o caminho do kubeconfig do servidor de API zonal. Se você ainda não gerou um arquivo kubeconfig para o servidor da API na zona de destino, consulte Fazer login para mais detalhes.
    • VPN_TUNNEL_NAME: o nome do túnel da VPN em uso.
    • 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 mesmo nível.
    • PEER_INTERFACE_NAME: o nome da interface do gateway de VPN de mesmo nível.
    • VPN_BGP_PEER_NAME: o nome do peering do BGP da VPN. Para mais informações, consulte Criar uma sessão do BGP de VPN.
    • PSK_NAME: o nome da PSK que você criou em Criar o secret com uma PSK.
  2. Verifique se o objeto VPN_TUNNEL_NAME foi reconciliado corretamente examinando o campo Status. Acesse os detalhes do túnel VPN:

    kubectl --kubeconfig MANAGEMENT_API_SERVER describe -n platform vpntunnel VPN_TUNNEL_NAME
    

    Examine a saída. Ela precisa ser semelhante ao exemplo a seguir:

    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 precisam ter status atualizados depois de serem referenciados por um VPNTunnel. Por exemplo, se você verificar que o VPNBGPPeer foi conciliado corretamente, os valores de status atualizados vão aparecer. Confira 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 status agora estão 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
    

A seguir