IPv6 einrichten: Dual-Stack Setup für Linux-Server

Practical guide to configuring IPv6 dual-stack on Linux servers, covering netplan setup, firewall rules, and common pitfalls

IPv6 einrichten: Dual-Stack Setup für Linux-Server

IPv6 ist seit 1998 spezifiziert. Wir haben jetzt 2026, und IPv4-Adressen sind weitgehend aufgebraucht — neue Adressen für mein Heim-Internet gibt's nur noch CGNAT-basiert. Trotzdem läuft die Mehrheit des Web-Traffics noch IPv4. Der Wechsel zieht sich, weil sich beide Protokolle nicht direkt verstehen und niemand in einem reinen IPv6-Netz auskommen kann, ohne IPv4 für irgendwas zu brauchen.

Für einen Server bedeutet das praktisch: Dual-Stack. Der Server bekommt eine IPv4 und eine IPv6, beide gleichzeitig erreichbar. Die meisten VPS-Provider machen das mittlerweile als Default — aber man muss wissen, wie man die IPv6-Seite richtig nutzt.

Was Dual-Stack heißt

Beide Protokolle parallel: jeder Service lauscht auf v4 und v6, jede DNS-Antwort enthält A- und AAAA-Records, Clients wählen je nach Verbindung. In modernen Browsern und OS ist die Logik "Happy Eyeballs": probiere v6 und v4 parallel, nimm das, was zuerst antwortet.

Folge: wenn deine v6-Konfiguration kaputt ist, merkst du es lange nicht — Clients fallen auf v4 zurück. Die ersten Symptome sind oft langsame Verbindungen, weil ein paar Sekunden auf den v6-Timeout gewartet wird, bevor v4 versucht wird.

Subnetting: was die /64 wirklich bedeutet

Bei IPv4 ist man Adressen-knausern gewohnt. Bei IPv6 funktioniert das anders. Die Standard-Subnet-Größe ist /64 — das sind 2^64 Adressen pro Subnet. Mehr als alle IPv4-Adressen weltweit, in einem Subnet.

Mein VPS-Hoster gibt mir ein /64. Das heißt: ich kann auf einem einzelnen Server beliebig viele IPv6-Adressen vergeben, ohne den Provider fragen zu müssen.

Praktisch: für jeden virtuellen Host, jeden Container, jede Anwendung kann ich eine eigene v6 nehmen. Das ist nicht "kostbar", das ist "vorhanden". Eine v6 pro Mailserver-Instanz, eine pro Webserver-vhost, eine fürs Backup-Script — kein Konflikt.

Konfiguration unter Debian/Ubuntu

Bei modernen Systemen mit netplan:

# /etc/netplan/01-netcfg.yaml
network:
  version: 2
  ethernets:
    eth0:
      addresses:
        - 5.75.x.y/24
        - 2a01:abcd::1/64
      gateway4: 5.75.x.1
      gateway6: fe80::1
      nameservers:
        addresses: [8.8.8.8, 2001:4860:4860::8888]

netplan apply, dann ip -6 addr zur Verifikation.

Wichtig: das Default-Gateway für IPv6 ist oft eine Link-Local-Adresse (fe80::1), nicht eine globale. Das verwirrt beim ersten Mal. Der Hoster gibt das normalerweise mit der Zugangsinfo mit.

ip6tables und nftables

iptables und ip6tables sind getrennte Welten — eine Firewall-Regel für v4 schützt v6 nicht. Wer UFW nutzt, hat das automatisch erledigt:

ufw default deny incoming
ufw allow 22/tcp
ufw allow 80,443/tcp
ufw enable

UFW konfiguriert v4 und v6 parallel — nichts extra zu tun.

Wer raw nftables schreibt: zwei Tables sind nötig, oder eine inet-Table, die beide Protokolle abdeckt:

table inet filter {
    chain input {
        type filter hook input priority 0; policy drop;
        ct state established,related accept
        iif lo accept
        tcp dport { 22, 80, 443 } accept
    }
}

inet statt ip6 oder ip — gilt für beide.

Reverse DNS für IPv6

Ein häufig vergessener Punkt: PTR-Records (Reverse DNS) für IPv6. Ohne PTR-Record wird deine Mail von vielen Servern abgelehnt, auch wenn SPF/DKIM/DMARC perfekt sind.

dig -x 2a01:abcd::1

Sollte deinen Hostnamen zurückgeben. Wenn nicht: beim Hoster den Reverse-DNS-Eintrag setzen. Bei Hetzner, OVH und den meisten anderen geht das im Web-Interface.

Häufige Fallen

Services binden nur auf 0.0.0.0 statt auch auf v6. PostgreSQL, MariaDB, Redis — viele binden per Default nur auf IPv4. In den Configs 0.0.0.0 durch :: ersetzen, oder beide explizit angeben.

Firewall-Regeln nur auf v4. Wer iptables -A INPUT -p tcp --dport 22 -j ACCEPT schreibt und vergisst, das gleiche für ip6tables zu tun, hat einen offenen Port auf v6, den er nicht erwartet.

MTU-Probleme. IPv6 hat eine Mindest-MTU von 1280. Manche Tunnel-Konfigurationen sind kaputt und fragmentieren falsch — Symptom: bestimmte Sites sind über v6 nicht erreichbar, aber Pings funktionieren. tracepath6 example.com zeigt die effektive MTU.

Lohnt sich das?

Für reine Server-Workloads: ja, ohne Frage. Mehr Adressen, weniger NAT-Probleme, langfristiger der Standard-Pfad.

Eine Sache, die mir IPv6 in der Praxis tatsächlich gebracht hat: keine Angst mehr vor Port-Konflikten. Statt 30 Container auf 30 Ports zu verteilen, kriegt jeder seine eigene IPv6 und lauscht auf 80 oder 443. Das macht Konfigurationen lesbarer.