Solucionar los problemas de conexión a Google

En este documento, se ofrece una guía de solución de los problemas relacionados con tu conexión a Google.

Network Connectivity Gateway

En esta sección, se proporcionan sugerencias para la solución de problemas relacionados con la puerta de enlace de la conectividad de red.

Verifica que los Pods del controlador y la puerta de enlace estén en ejecución

  • Enumera los Pods de Network Connectivity Gateway:

    kubectl --kubeconfig CLUSTER_KUBECONFIG get pods \
        --namespace kube-system | grep ncg
    

    Reemplaza CLUSTER_KUBECONFIG por la ruta del archivo kubeconfig del clúster de administrador.

    En el resultado, verifica que veas un Pod del controlador y un Pod de la puerta de enlace. El nombre del Pod del controlador comienza con ncg-controller, y el nombre del Pod de la puerta de enlace comienza con ncgd. Por ejemplo:

    ncg-controller-5f5d489b68-r87pp     1/1     Running
    ncgd-gvl76                          1/1     Running
    

    Toma nota del nombre del Pod de la puerta de enlace. La necesitarás para ejecutar varios comandos de solución de problemas.

Verifica los registros del Pod de la puerta de enlace

  • Verifica si hay errores en los registros del Pod de la puerta de enlace:

    kubectl --kubeconfig CLUSTER_KUBECONFIG logs GATEWAY_POD \
        --namespace kube-system
    

    Reemplaza GATEWAY_POD con el nombre del Pod de tu puerta de enlace.

Ejecuta ncgcli dentro del Pod de la puerta de enlace

El Pod de la puerta de enlace tiene una herramienta de línea de comandos llamada ncgcli que puedes usar para obtener información sobre la puerta de enlace y el tráfico en los túneles.

  • Usa el siguiente comando para ejecutar ncgcli dentro del Pod de la puerta de enlace:

    kubectl --kubeconfig CLUSTER_KUBECONFIG exec -it GATEWAY_POD \
        --namespace kube-system -- ncgCLI_COMMAND
    

    Reemplaza ncgCLI_COMMAND por un comando ncgcli.

    Por ejemplo:

    kubectl --kubeconfig my-kubeconfig exec ncgd-6hkk2 --namespace kube-system \
        -- ncgcli --help
    

En las siguientes secciones, se proporcionan más ejemplos de comandos ncgcli.

No se pudo abrir el túnel IPsec

  • Verifica el estado del recurso personalizado NetworkConnectivityGateway:

    kubectl --kubeconfig CLUSTER_KUBECONFIG get NetworkConnectivityGateway \
        --namespace kube-system --output yaml
    

    En el resultado, verifica que veas Status: Healthy. Por ejemplo:

    apiVersion: networking.gke.io/v1alpha1
    kind: NetworkConnectivityGateway
    metadata:
      namespace: kube-system
      name: default
    spec:
    status:
      CurrNode: worker1-node
      CreatedTime: 2021-09-07T03:18:15Z
      LastReportTime: 2021-09-21T23:57:54Z
      Status:  Healthy
    
  • Verifica el estado de tus recursos personalizados de OverlayVPNTunnel:

    kubectl --kubeconfig CLUSTER_KUBECONFIG get OverlayVPNTunnel \
        --namespace kube-system --output yaml
    
  • Comprueba el estado de los túneles dentro del Pod de puerta de enlace:

    ncgcli overlay peers show
    

Para obtener más información, consulta Solución de problemas de Cloud VPN.

No se pudo establecer la sesión de BGP

Verifica si usaste direcciones IP de vínculo local, como 169.254.1.2 y 169.254.2.2, para las sesiones de BGP entre el Cloud Router y el Pod de puerta de enlace en el clúster.

  • Verifica el estado de tus sesiones de BGP:

    kubectl --kubeconfig CLUSTER_KUBECONFIG get OverlayBGPPeer \
        --namespace kube-system --output yaml
    
  • Verifica el estado de las sesiones de BGP desde dentro del Pod de la puerta de enlace:

    ncgcli overlay routes show
    

Para obtener más información sobre cómo solucionar problemas de tus sesiones de BGP, consulta Estados de las sesiones de BGP y Solución de problemas generales.

Problemas de reenvío de tráfico incluso si el túnel está activo

Si el reenvío de tráfico falla, ejecuta ncgcli dentro del Pod de la puerta de enlace para verificar el estado de los túneles, el enrutamiento y la programación del plano de datos.

  • Asegúrate de que se establezca un túnel IPsec al par:

    ncgcli overlay peers show
    
  • Confirma que las rutas de superposición se hayan intercambiado a través de BGP y se hayan resuelto al túnel IPsec adecuado:

    ncgcli overlay routes show
    
  • Se muestran las rutas programadas en el plano de datos y el resultado debe incluir las rutas de superposición:

    ncgcli fast-path routes show
    

Ajusta la unidad de transmisión máxima

La unidad máxima de transferencia (MTU) es el tamaño en bytes del paquete más grande que admite un protocolo de capa de red, incluidos los encabezados y datos. Si hay problemas de tráfico causados por las limitaciones de la MTU de la red subyacente, puedes configurar la MTU en el recurso personalizado OverlayVPNTunnel. La MTU predeterminada de los túneles es de 1,380 bytes.

Para ajustar la MTU de tus túneles, haz lo siguiente:

  1. Comprueba el estado de los túneles:

    kubectl --kubeconfig CLUSTER_KUBECONFIG get OverlayVPNTunnel \
        --namespace kube-system --output yaml
    

    La sección status debería verse como el siguiente ejemplo:

    status:
      IfName: ipsec2
      LastTransition: "2022-06-16T07:13:28Z"
      SLA:
        DiscoveredMTU: 1300
        Jitter(ms): 1
        Latency(ms): 26
        Loss(%): "0.00"
    

    Si el valor status.SLA.DiscoveredMTU es menor que el predeterminado de 1380, sigue estos pasos para cambiar el valor Spec.mtu en tus recursos personalizados de OverlayVPNTunel para que coincidan.

  2. Abre tus recursos personalizados de OverlayVPNTunnel para editarlos con el comando kubectl edit:

    kubectl --kubeconfig CLUSTER_KUBECONFIG edit OVERLAY_VPN_TUNNEL_NAME
        --namespace kube-system --output yaml
    

    A fin de evitar la pérdida de paquetes, configura la misma MTU para los dos recursos personalizados de OverlayVPNTunnel que usa la puerta de enlace de conectividad de red.

  3. Configura el valor mtu para que coincida con el valor DiscoveredMTU del primer paso:

    apiVersion: networking.gke.io/v1alpha1
      kind: OverlayVPNTunnel
      metadata:
        name: vpc2
        namespace: kube-system
      Spec:
        mtu: 1300
        ikeKey:
          name: ike-key
          namespace: kube-system
        localTunnelIP: 169.254.0.2
        peer:
          publicIP: 34.100.10.10
        self:
          publicIP: 70.32.151.5
    
  4. Para aplicar los cambios, guarda el editor y ciérralo.

Para obtener más información sobre la MTU y cómo afecta el rendimiento del tráfico, consulta Consideraciones de la MTU.

Visualiza el flujo de tráfico y las estadísticas a nivel de la aplicación

Para ver el flujo de tráfico y las estadísticas, ejecuta ncgcli dentro del Pod de la puerta de enlace.

  • Para obtener una vista instantánea de los flujos y las aplicaciones de tráfico, sigue estos pasos:

    ncgcli forwarding flows top
    
  • Para las estadísticas agregadas a nivel de flujo, sigue estos pasos:

    ncgcli forwarding flows aggregates show
    
  • Para obtener estadísticas agregadas a nivel de la interfaz, haz lo siguiente:

    ncgcli interfaces statistics show