Dieses Dokument enthält Anleitungen zur Fehlerbehebung bei Problemen mit Ihrer Verbindung zu Google.
Network Connectivity Gateway
Dieser Abschnitt enthält Tipps zur Fehlerbehebung im Zusammenhang mit Network Connectivity Gateway.
Wenn Sie weitere Unterstützung benötigen, wenden Sie sich an den Cloud Customer Care.Prüfen, ob die Controller- und Gateway-Pods ausgeführt werden
Listen Sie die Network Connectivity Gateway-Pods auf:
kubectl --kubeconfig CLUSTER_KUBECONFIG get pods \ --namespace kube-system | grep ncg
Ersetzen Sie
CLUSTER_KUBECONFIG
durch den Pfad der kubeconfig-Datei des Clusters.Prüfen Sie in der Ausgabe, ob ein Controller-Pod und ein Gateway-Pod angezeigt werden. Der Name des Controller-Pods beginnt mit
ncg-controller
und der Name des Gateway-Pods mitncgd
. Beispiel:ncg-controller-5f5d489b68-r87pp 1/1 Running ncgd-gvl76 1/1 Running
Notieren Sie sich den Namen des Gateway-Pods. Sie benötigen ihn für verschiedene Befehle zur Fehlerbehebung.
Gateway-Pod-Logs prüfen
Prüfen Sie, ob die Logs des Gateway-Pods Fehler enthalten:
kubectl --kubeconfig CLUSTER_KUBECONFIG logs GATEWAY_POD \ --namespace kube-system
Ersetzen Sie
GATEWAY_POD
durch den Namen des Gateway-Pods.
ncgcli
im Gateway-Pod ausführen
Der Gateway-Pod hat ein Befehlszeilentool namens ncgcli
, mit dem Sie Informationen über das Gateway und den Traffic in den Tunneln abrufen können.
Verwenden Sie den folgenden Befehl, um
ncgcli
im Gateway-Pod auszuführen:kubectl --kubeconfig CLUSTER_KUBECONFIG exec -it GATEWAY_POD \ --namespace kube-system -- ncgCLI_COMMAND
Ersetzen Sie
ncgCLI_COMMAND
durch einenncgcli
-Befehl.Beispiel:
kubectl --kubeconfig my-kubeconfig exec ncgd-6hkk2 --namespace kube-system \ -- ncgcli --help
In den folgenden Abschnitten finden Sie weitere Beispiele zu ncgcli
-Befehlen.
IPsec-Tunnel konnte nicht gestartet werden
Prüfen Sie den Status der benutzerdefinierten
NetworkConnectivityGateway
-Ressource:kubectl --kubeconfig CLUSTER_KUBECONFIG get NetworkConnectivityGateway \ --namespace kube-system --output yaml
Prüfen Sie in der Ausgabe, ob
Status: Healthy
angezeigt wird. Beispiel: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
Prüfen Sie den Status Ihrer benutzerdefinierten
OverlayVPNTunnel
-Ressourcen:kubectl --kubeconfig CLUSTER_KUBECONFIG get OverlayVPNTunnel \ --namespace kube-system --output yaml
Prüfen Sie den Status Ihrer Tunnel innerhalb des Gateway-Pods:
ncgcli overlay peers show
Weitere Informationen finden Sie unter Cloud VPN-Fehlerbehebung.
Fehler beim Erstellen der BGP-Sitzung
Prüfen Sie, ob Sie Link-Local-IP-Adressen wie 169.254.1.2
und 169.254.2.2
für die BGP-Sitzungen zwischen dem Cloud Router und dem Gateway-Pod in Ihrem Cluster verwendet haben.
Prüfen Sie den Status Ihrer BGP-Sitzungen:
kubectl --kubeconfig CLUSTER_KUBECONFIG get OverlayBGPPeer \ --namespace kube-system --output yaml
Prüfen Sie den Status Ihrer BGP-Sitzungen innerhalb des Gateway-Pods:
ncgcli overlay routes show
Weitere Informationen zur Fehlerbehebung bei BGP-Sitzungen finden Sie hier:
Probleme mit der Traffic-Weiterleitung auch dann, wenn der Tunnel aktiv ist
Wenn die Traffic-Weiterleitung fehlschlägt, führen Sie ncgcli
im Gateway-Pod aus, um den Status der Tunnel, des Routings und der Programmierung der Datenebene zu prüfen.
Prüfen Sie, ob der IPsec-Tunnel zum Peer eingerichtet ist:
ncgcli overlay peers show
Bestätigen Sie, dass die Overlay-Routen über BGP ausgetauscht und in den entsprechenden IPsec-Tunnel aufgelöst wurden:
ncgcli overlay routes show
Zeigen Sie in der Datenebene programmierte Routen an. Die Ausgabe sollte Overlay-Routen enthalten:
ncgcli fast-path routes show
Maximale Übertragungseinheit anpassen
Die maximale Übertragungseinheit (MTU) gibt die Bytezahl des größten Pakets an, das von einem Netzwerkschichtprotokoll unterstützt wird, einschließlich Header und Daten. Wenn es Probleme mit dem Traffic aufgrund von MTU-Einschränkungen des zugrunde liegenden Netzwerks gibt, können Sie die MTU für die benutzerdefinierte OverlayVPNTunnel
-Ressource konfigurieren. Die Standard-MTU für die Tunnel beträgt 1.380 Byte.
So passen Sie die MTU für Ihre Tunnel an:
Prüfen Sie den Status der Tunnel:
kubectl --kubeconfig CLUSTER_KUBECONFIG get OverlayVPNTunnel \ --namespace kube-system --output yaml
Der Abschnitt
status
sollte wie im folgenden Beispiel aussehen:status: IfName: ipsec2 LastTransition: "2022-06-16T07:13:28Z" SLA: DiscoveredMTU: 1300 Jitter(ms): 1 Latency(ms): 26 Loss(%): "0.00"
Wenn der Wert
status.SLA.DiscoveredMTU
kleiner als der Standardwert von1380
ist, führen Sie die folgenden Schritte aus, um den WertSpec.mtu
in Ihren benutzerdefiniertenOverlayVPNTunel
-Ressourcen entsprechend zu ändern.Öffnen Sie Ihre benutzerdefinierten
OverlayVPNTunnel
-Ressourcen mit dem Befehlkubectl edit
zur Bearbeitung:kubectl --kubeconfig CLUSTER_KUBECONFIG edit OVERLAY_VPN_TUNNEL_NAME --namespace kube-system --output yaml
Konfigurieren Sie zur Vermeidung von Paketverlusten dieselbe MTU für die beiden benutzerdefinierten
OverlayVPNTunnel
-Ressourcen, die von Network Connectivity Gateway verwendet werden.Legen Sie den Wert
mtu
so fest, dass er mit dem WertDiscoveredMTU
aus dem ersten Schritt übereinstimmt: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
Um die Änderungen zu übernehmen, speichern Sie und schließen Sie den Editor.
Weitere Informationen zur MTU und zu ihren Auswirkung auf die Traffic-Leistung finden Sie unter Überlegungen zur MTU.
Traffic-Fluss und Statistiken auf Anwendungsebene ansehen
Führen Sie ncgcli
im Gateway-Pod aus, um den Traffic-Fluss und die Statistiken anzusehen.
Für eine sofortige Ansicht der Abläufe und Trafficanwendungen:
ncgcli forwarding flows top
Für aggregierte Statistiken auf Ablaufebene:
ncgcli forwarding flows aggregates show
Für aggregierte Statistiken auf Schnittstellenebene:
ncgcli interfaces statistics show