Zusammenfassung

  • Spiro Stathakis stellte die Bestellplattform von isp6 auf EKS mit ipFamily: ipv6 um und plante für den verbliebenen IPv4-Bedarf zunächst /28-Subnetze ein.
  • Primäre Knotenschnittstellen und die Schnittstellen von Dual-Stack-Endpunkten brauchten mehr Platz. Öffentliche Subnetze wurden auf /27, private auf /26 erweitert.

Das kleinste erlaubte IPv4-Subnetz ist eine verlockende Fußnote in einer IPv6-Architektur. Spiro Stathakis beschreibt auf RIPE Labs, wie isp6 seine Bestellplattform auf EKS mit IPv6-Pods und Adressen aus eigener Zuteilung betreibt. Für den alten Protokollpfad sollten /28-Subnetze genügen. Dann meldete sich die Plattform selbst als Adressverbraucher.

Ein /28 hat 16 Adressen, aber AWS hält in jedem IPv4-Subnetz fünf davon zurück: die ersten vier und die letzte. Elf bleiben nutzbar. Nach Stathakis' Bericht füllten die primären Netzwerkschnittstellen der Knoten und die Schnittstellen der Dual-Stack-Service-Endpunkte diesen Rest. isp6 vergrößerte die öffentlichen Subnetze auf /27 und die privaten auf /26. Eine datierte Liste der tatsächlichen ENIs pro Subnetz veröffentlicht der Bericht nicht; der heutige freie Bestand lässt sich daraus nicht ablesen.

EKS erklärt selbst, was die Einstellung IPv6 bewirkt. Pods und Dienste bekommen IPv6-Adressen. Wenn ein Pod ein Ziel erreicht, das nur IPv4 versteht, nutzt er zusätzlich eine lokale IPv4-Adresse auf dem Knoten; die VPC-CNI setzt die Quelladresse auf die primäre IPv4 des Knotens um. Die Anwendung funktioniert weiter, während die alte Verbindung unter der Oberfläche lebt. Die IP-Familie des Clusters wird bei der Erstellung gewählt und kann später nicht geändert werden.

Stathakis hielt ein NAT-Gateway für die verbliebenen IPv4-Ziele vor. Bei bestimmten AWS-Endpunkten mit beiden Adressfamilien erlaubte sein Team auf Port 443 nur IPv6. Wählte ein Client den A-Record, schlug die Verbindung fehl, statt unbemerkt den IPv4-Weg zu nehmen. NAT-Flow-Logs zeigten, welche Abhängigkeiten noch über diesen Weg liefen. Eine aktuelle Schnittstellenliste und ein datierter Auszug dieser Logs würden den verbliebenen Bedarf genauer beziffern.

Die Pointe ist nicht, dass IPv6-Pods scheiterten. Sie liefen. Gerade deshalb war die separate IPv4-Rechnung leicht zu übersehen: Knoten, Endpunkte und alte Ziele bestellen weiter Adressen. Das /28 war die Absichtserklärung; die benötigten Schnittstellen machten daraus eine Kapazitätsfrage.