IPv4-zu-IPv6-NAT auf AWS

IPv4-zu-IPv6-NAT auf AWS

AWS unterstützt die Verbindung zu externen Nur-IPv4-Diensten von einem Nur-IPv6-Knoten aus über NAT64. Gibt es ein Äquivalent für den umgekehrten Fall?

Zum Kontext: Ich habe einen EKS-Cluster, der derzeit nur IPv4 unterstützt, alles in privaten Subnetzen. Die Kommunikation mit externen IPs erfolgt über ein NAT-Gateway (normalerweise für Webhooks oder ähnliche ausgehende Anfragen). Jetzt wechseln einige externe Dienste nur noch zu IPv6. Gibt es eine Möglichkeit, eine Verbindung zu diesen herzustellen, ohne den gesamten Cluster auf IPv6 umzustellen? Da EKS keine Dual-Stack-Netzwerke unterstützt, könnte die Migration ein ziemlich großes und riskantes Projekt sein.

Antwort1

Nein, von der IPv4-Quelle zum IPv6-Ziel ist es bei weitem nicht so einfach. Im Vergleich zum umgekehrten Weg oder zu nativem IPv6.

DNS64 + NAT64, ein Übergangsmechanismus, der in reinen IPv6-Netzwerken zur Verbindung mit v4 verwendet wird, ist einfach. Ein winziges v6-Präfix kann den gesamten v4-Adressraum enthalten. Fancy DNS generiert AAAA-Einträge in diesem Präfix, wenn das Ergebnis nur einen A-Eintrag hat. Und das Dual-Stack-NAT muss eine einfache zustandslose 1:1-Konvertierung durchführen, die schnell ist und keine Konfiguration erfordert.

Anders als in die andere Richtung. Nehmen wir an, die Adresse des Remote-Dienstes lautet: 2001:db8:114:6614:240e:6d9d:8a1d:59d3 Der gesamte 32-Bit-IPv4-Adressraum könnte nur die letzten beiden Zifferngruppen enthalten, den 8a1d:59d3Teil. Ausgefallene DNS-Tricks und unveränderte Anwendungen funktionieren also nicht. Theoretisch könnte ein Dual-Stack-Proxy die v4-Verbindungen beenden und v6-Verbindungen herstellen. Aber wie bringen Sie die v6-Adressen durch, analysieren den Anwendungsverkehr nach Namen in DNS oder TLS? Und wie halten Sie die Flüsse aufrecht, Stateful NAT?

Kubernetes hat jedoch seine eigenen Vorstellungen von Netzwerken, und EKS ist keine Ausnahme. Es geht nicht nur darum, ein NAT64 einzubauen,EKS verfügt über Dual-Stack-Designs.Pods zugewiesene Version 6, aber auch ein Host-Only-Version 4, der im Fall von Version 4 zum Internet einige Male per NAT kontaktiert wird.

Beachten Sie, wie einfach die Verbindung von v6 in der Anwendung zu v6 im Internet ist, über das ausgehende Internet-Gateway ohne NAT. Diese Konnektivität mit externen v6-Ressourcen zu erreichen, ist ein Grund dafür, dass Ihre Organisation dies tut. Außerdem werden dadurch Bedenken hinsichtlich der Dimensionierung von Subnetzen für die Anzahl der Pods ausgeräumt.

Dies umzusetzen und im modernen Internet zu nutzen, ist ein Projekt, ja. Das allererste, was ineine Checkliste für IPv6 auf EKSist, dass der Cluster mit v6 erstellt werden muss.

Sie können dieses Projekt durchführen. Erstellen Sie einen zweiten Cluster mit diesem neuen Design. Starten Sie neue Anwendungen darauf und migrieren Sie andere, wenn sich eine Wartungsmöglichkeit ergibt. Halten Sie einen Wiederherstellungsplan bereit, falls ein Problem auftritt, um zum vorherigen Zustand zurückzukehren. Im schlimmsten Fall könnte der alte Cluster so wiederhergestellt werden, wie er war. Dies ist schließlich Infrastruktur als Code.

Antwort2

Die Option ist in den Dokumenten ziemlich versteckt, aber es ist möglich, IPv6-Egress von einem IPv4-EKS-Cluster aus durchzuführen. Dies kann mithilfe desV6_EGRESS AKTIVIERENOption im VPC-CNI-Add-on.

Dadurch wird jeder Pod mit einer knotenprivaten Adresse im Bereich „fd00::ac:00/118“ konfiguriert. Für externe Endpunkte führt der Pod dann NAT über den Knoten durch.

Technisch gesehen ist dies kein „IPv4-zu-IPv6-NAT“, aber es erreicht das Ziel des IPv6-Ausgangs auf einem IPv4-EKS-Cluster.

Erforderliche Schritte:

  1. Weisen Sie IPv6-Blöcke auf der VPC und den Subnetzen zu und aktivieren Sie „IPv6-Adresse automatisch zuweisen“ auf den Subnetzen. Fügen Sie ein Internet-Gateway nur für ausgehenden Datenverkehr hinzu und konfigurieren Sie die Routing-Tabellen entsprechend.
  2. Rotieren Sie alle Knoten, um jedem eine IPv6-Adresse zuzuweisen.
  3. Stellen Sie sicher, dass das VPC-CNI-Add-on die Version 1.13 oder höher hat.
  4. Aktualisieren Sie das VPC-CNI-Add-On mit der folgenden Konfiguration: {"env":{"ENABLE_V6_EGRESS":"true"},"init":{"env":{"ENABLE_V6_EGRESS":"true"}}}. Tun Sie dies erst, nachdem Sie alle Knoten rotiert haben, da sonst die Einführung fehlschlägt.

verwandte Informationen