/ Server

Root-Server: Mehrere IPv6-Adressen mit einer Schnittstelle

Im Preis Root-Servers ist oft nur eine IPv4-Adresse enthalten. Dafür wird aber nicht selten ein ganzes IPv6-Subnetz zur Verfügung gestellt. Mit einfachsten Mitteln kann man mehrere IPs für die Verwendung im eigenen Server konfigurieren. Das in Verbindung mit App-Virtualisierung mittels Docker ermöglicht unzählige Anwendungszenarien, wie z.B. den gleichzeitigen Betrieb mehrer Versionen einer App auf denselben Ports, ohne dass ein Proxy vorgeschaltet werden muss.

Als erstes prüfen wir die verfügbaren IP-Adressen im Admin-Panel:

ips

Ein /64-Subnetz steht uns also zur Verfügung. Das entspricht 18.446.744.073.709.551.616 Adressen. Das klingt nach Verschwendung, die Vergabe dieses Subnetzes als kleinstmögliches Netzbereich wird aber tatsächlich im IPv6-Standard epfohlen. Damit lassen sich nämlich in internen Netzen MAC-Adressen direkt auf IPs mappen. DHCP ist dann z.B. obsolet.

Nun können wir ein paar dieser Adressen für die Verwendung in unserem Server konfigurieren:

auto eth0
iface eth0 inet static
        address 5.45.101.221
        netmask 22
        gateway 5.45.100.1

iface eth0 inet6 static
        address 2a03:4000:6:2da::2
        netmask 64
        gateway fe80::1

iface eth0 inet6 static
        address 2a03:4000:6:2da::3
        netmask 64

iface eth0 inet6 static
        address 2a03:4000:6:2da::4
        netmask 64

Zusätzlich zum existierenden IPv4-Eintrag für die Schnittstelle eth0 werden weitere Einstellungen mit IPv6-Adressen aus unserem IPv6-Subnetz hinzugefügt. Die Definition des "gateway" darf nur in einem IPv6-Block vorkommen.

Nach Neustart sollte unser Server über alle konfigurierten Adressen erreichbar sein (ping6 2a03:4000:6:2da::2).

Nun können mehrere Dienste, gleichzeitig auf dem gleichen Port laufen. Zum Beispiel Docker-Container. Zum Testen verwenden wir einfache Echo-Container:

docker run -d -p [2a03:4000:6:2da::2]:80:80 -e PORT=80 --rm -t solsson/http-echo
docker run -d -p [2a03:4000:6:2da::3]:80:80 -e PORT=80 --rm -t solsson/http-echo

Beide Container sind im Browser erreichbar und spiegeln in der Antwort Request-Parameter wieder: http://[2a03:4000:6:2da::2]/ http://[2a03:4000:6:2da::3]