Können Firewall-Regeln auf interne GCLB angewendet werden?

0

Es treten Probleme mit Diensten hinter dem internen Google Cloud Load Balancer auf, die nicht beantwortet werden können, wenn die Antwort eine bestimmte Größe überschreitet. Nach einigem "tcpdump" und "wireshark" kann unsere Site-to-Site-IPSec-VPN-Instanz anscheinend kein ICMP-Paket "Fragmentierung erforderlich" an GCLB zurücksenden, sodass die Antwort in einer TCP-Neuübertragungsschleife hängen bleibt.

Einzelheiten

Wir haben einen Site-to-Site-IPSec-Tunnel für eine GCP-VPC und unser Onsite-Gateway eingerichtet. Wir haben einige VM-Instanzen in dieser VPC und haben eine interne GCLB (Google Cloud Load Balancer) erstellt, um diese Dienste zu nutzen. Wir haben jedoch festgestellt, dass die curlAnforderung an die GCLB (von unserem internen Netzwerk) stecken bleibt und schließlich eine Zeitüberschreitung auftritt , wenn die Antwort des Dienstes eine bestimmte Größe überschreitet.

Ich habe einen tcpdump auf unserer VPN-Instanz (der Instanz, die ipsec ausführt) in GCP durchgeführt und den Trace erfasst, wenn die Antwort "groß" ist. Es stellt sich heraus, dass das VPN versucht, ein für die ICMP-Fragmentierung erforderliches Paket an die interne GCLB zurückzusenden, aber "keine Route zum Host" erhält. Ich habe überprüft, ob von der VPN-Instanz eine Route zu GCLB besteht, und ich kann die GCLB-Instanz sogar an der VPN-Instanz einrollen. Ich hatte den Verdacht, dass die Firewall das ICMP-Paket blockiert.

Sehen Sie hier den Screenshot von wireshark

Da ich jedoch mit den Firewall-Regeln von GCP herumgespielt habe, war es mir nicht möglich, Firewall-Regeln für GCLB im Netzwerk anzuwenden. Es scheint, dass alle Firewall-Regeln für VM-Instanzen gelten.

Könnte jemand etwas Licht ins Dunkel bringen, wie man das umgehen kann?

kjq07bd
quelle

Antworten:

0

Ausgehend vom Thema scheint Ihre Frage zu lauten: "Können Firewall-Regeln auf interne GCLB angewendet werden?" Die Antwort lautet "Nein". Firewall-Regeln werden direkt auf VMs angewendet, nicht auf Load Balancer. Der interne Load Balancer ist ein Passthrough-Load Balancer. Um den Datenverkehr zu steuern, können Sie Firewall-Regeln auf die VMs selbst anwenden. Sie können sie jedoch nicht "auf den Load Balancer" anwenden. Sie können diese Dokumentation für weitere Informationen überprüfen .

Nachdem Sie Ihre Daten überprüft haben, scheint es so, als hätten Sie möglicherweise eine VM für die Ausführung der IPSec-Software konfiguriert, wie von Ihnen erwähnt stattdessen, damit Sie sicherstellen können, dass Dinge wie MTUs richtig eingestellt sind. Es gibt so viele Stellen, an denen für die Instanz Dinge wie eine fehlerhafte MTU-Konfiguration möglich sind.

Beachten Sie, dass die maximale MTU in GCP 1460 Byte beträgt, die MTU für den VPN-Verkehr jedoch geringer sein sollte als für die Paketkapselung. Sie können sich die Empfehlungen für lokale Gateways ansehen, wenn Sie Cloud VPN verwenden.

Das andere, was sie tun sollten, ist, den Verkehr vorab zu fragmentieren, bevor er über den Tunnel gesendet wird. Der Datenverkehr muss vor der Kapselung vorfragmentiert werden. Dies ist eine Konfiguration, die für das mit Cloud VPN verbundene Peer-Gerät erforderlich ist. Hier ist die Dokumentation Link dafür. Da Sie anscheinend ein VM-basiertes VPN verwenden, müssen Sie die Vorfragmentierung auf der VM und dem Peer-Gateway durchführen.

Ich möchte an dieser Stelle erwähnen, dass Cloud VPN für Sie die Vorfragmentierung durchführt, sodass die einzige Überlegung dort das Peer-Gerät ist.

Mohibul Mahmud
quelle