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 conncgd
. 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 comandoncgcli
.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 sesiones de BGP, consulta Estados de las sesiones de BGP y Soluciona 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:
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 de1380
, sigue estos pasos para cambiar el valorSpec.mtu
en tus recursos personalizados deOverlayVPNTunel
para que coincidan.Abre tus recursos personalizados de
OverlayVPNTunnel
para editarlos con el comandokubectl 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.Configura el valor
mtu
para que coincida con el valorDiscoveredMTU
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
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