Ich habe ja schon einige Berichte und auch einige GitHub-Kommentare zum Thema Docker und IPv6 verfasst. Die meisten davon waren durch die Enttäuschung geprägt, dass eine eigentlich sehr moderne Virtualisierungslösung seit mehr als zehn Jahren in Sachen moderner Netzwerk-Protokolle und Verwaltung nur sehr langsam zu Potte kam. Die Unterstützung von IPv6 war lange Zeit rudimentär bis stiefmütterlich.
Zur kurzen Einordnung: Per default setzt Docker (noch immer) auf das IPv4-Protokoll, dessen Grenzen hinsichtlich der weltweit verfügbaren Adressen mittlerweile erreicht bzw. sogar überschritten sind. Angesichts der Tatsache, dass Docker im Jahr 2013 gegründet wurde und um 2015 herum langsam an Popularität gewonnen hat, war es doch sehr verwunderlich, dass von Haus aus erst einmal nur das alte IPv4 unterstützt wurde. Immerhin automatisierte Docker an dieser Stelle bereits einiges an Firewall und Forwarding-Regeln. Aber auch automatisierte Workarounds sind und bleiben Workarounds: In die Presche hinein gesprungen sind dann unter anderem Reverse Proxies wie z.B. Traefik, um das Problem zu lösen dass man einen Port (für HTTP 80, für HTTPS 443) pro IP-Adresse immer nur einmal verwenden kann. HTTP an dieser Stelle schon seit Jahrzehnten Virtual Hosts, eingesetzt habe ich das bereits zu Schulzeiten für den Schulserver (damals noch ein Apache 2.2.x) – mit SNI kam für HTTPS dann auch ca. 2009 verbreitet auf, mittlerweile ist es erprobt und stabil.
Aber wie gesagt, all die Workarounds sind mit IPv6 nicht mehr notwendig, das neue Protokoll bietet IP-Adressen in einer Fülle die wohl wahrlich bis ins nächste Jahrhundert ausreichen sollte – bis dahin hat man dann hoffentlich aus der schleppenden Umstellung gelernt und es wird mit IPv7 (oder dann doch gleich IPv8) dann einfacher mit der Umstellung. Selbst in der Standard-Ausführung bekommt man in der Regel 64 Bit Adressraum zur freien Verfügung, ggf. auch noch etwas mehr. Continue reading