Zum Hauptinhalt springen

UNABHÄNGIGES WISSENSFORUM Unabhängige Hosting-Community • Keine offizielle Verbindung zur netcup GmbH.

NETCUP GUIDE
FORUM · GUTSCHEINPOOL
Tutorials Stufe: Mittelstufe Dauer: 20 Min. // 17 Min. Lesezeit • Geprüft:

Geroutetes IPv6 (/64), Gateway fe80::1, rDNS & Docker-IPv6 auf Netcup konfigurieren

Jeder Netcup VPS und Root-Server – vom kompakten VPS pico G11.5s bis zum dedizierten RS 1000 G12.5 – enthält eine eigene statische IPv4-Adresse (/32) sowie ein voll geroutetes IPv6-/64-Subnetz (2a03:4000:... in Europa) mit 1,84 × 10¹⁹ Adressen. Allerdings nutzt Netcups IPv6-Architektur ein festes Link-Local-Default-Gateway (fe80::1) und setzt voraus, dass Router Advertisements (accept-ra: false) bei statischer Konfiguration deaktiviert werden. Wer dieses Detail übersieht, erlebt alle paar Minuten mysteriöse IPv6-Verbindungsabbrüche. Hier finden Sie die exakte Konfiguration für Ubuntu 24.04 Netplan, Debian 12, Reverse DNS (PTR) und Docker-IPv6.

THREAD-AUTOR // OP Elena Rostova Lead Cloud Infrastructure Architect (EU KVM & Netzwerk-Engineering)
MOD-PRÜFUNG // CO-MAINTAINER Marcus Vance Senior Linux Systems & Security Auditor
BEITRAGSSTATUS // AKTUALISIERT Community-Standards →
MODERATOR-HINWEIS // TESTUMGEBUNG & TRANSPARENZ Verifiziert gegen Netcups AS197540 Link-Local-Gateway-Architektur (fe80::1) unter Ubuntu 24.04 LTS (systemd-networkd / Netplan) und Debian 12 (ifupdown).

VORAUSSETZUNGEN // ANFORDERUNGEN

CHECKLISTE
  • ✓ Ein Netcup VPS (G11.5s oder G12.5) oder Root-Server (G12.5) mit zugewiesenem IPv6-/64-Präfix (sichtbar unter SCP → Network)
  • ✓ Sudo-Zugriff per SSH sowie Notfallzugriff auf die SCP HTML5-VNC-Konsole

Wichtige Erkenntnisse (Key Takeaways)

KURZFAZIT
  • 01 Netcups IPv6-Standard-Gateway auf allen KVM-Hostknoten ist immer die Link-Local-Adresse fe80::1 auf Ihrem primären Netzwerk-Interface (eth0 oder ens3).
  • 02 Setzen Sie in Netplan bei statischen IPv6-Adressen auf Netcup immer accept-ra: false, damit periodische Router Advertisements Ihre statische Default-Route nicht überschreiben.
  • 03 Sie können ::1, ::2, ::10 oder tausende weitere Adressen aus Ihrem /64-Subnetz an dasselbe Interface binden und für jede Adresse im SCP einen eigenen Reverse-DNS-Eintrag (PTR) hinterlegen.
IPv6-GENERATOR // INTERAKTIVER KONFIGURATIONS-GENERATOR
AS197540 • fe80::1 Link-Local-Gateway

Netcup /64 IPv6 Netplan, Debian & Docker Konfigurations-Generator

Geben Sie Ihr im SCP zugewiesenes /64 IPv6-Subnetz und Ihre IPv4-Adresse ein, um sofort eine produktionsreife Konfiguration mit dem zwingend erforderlichen Gateway fe80::1 (on-link: true) zu erzeugen.

/etc/netplan/50-cloud-init.yaml
network:
  version: 2
  ethernets:
    eth0:
      dhcp4: false
      dhcp6: false
      accept-ra: false
      addresses:
        - 152.53.12.34/22
        - "2a03:4000:6:1234::1/64"
        - "2a03:4000:6:1234::2/64"
      routes:
        - to: default
          via: 152.53.12.1
        - to: "::/0"
          via: "fe80::1"
          on-link: true
      nameservers:
        addresses:
          - 1.1.1.1
          - 2606:4700:4700::1111
          - 9.9.9.9
# Apply safely: sudo chmod 600 /etc/netplan/50-cloud-init.yaml && sudo netplan try
📑 Inhaltsverzeichnis (3 Abschnitte) ▼
§ 01

Schritt 1: Zugewiesenes /64-Subnetz & MAC-Adresse im Netcup SCP ablesen

Melden Sie sich im Netcup Server Control Panel (servercontrolpanel.de) → Server auswählen → Network an. Dort sehen Sie die Hardware-MAC-Adresse Ihrer Netzwerkkarte, Ihre IPv4-Adresse samt Gateway sowie Ihr geroutetes IPv6-/64-Subnetz – beispielsweise 2a03:4000:60:1234::/64 mit dem Standard-Gateway fe80::1. Notieren Sie sich sowohl die MAC-Adresse als auch die ersten vier Heptets Ihres /64-Präfixes.

Warum routet Netcup Ihr /64-Subnetz statisch über die Link-Local-Adresse fe80::1, anstatt auf dem KVM-Bridge-Netzwerk kontinuierliche SLAAC-Router-Advertisements (RA) auszusenden? In großen Multi-Tenant-Rechenzentren wie AS197540 würden ungerichtete Multicast-Router-Advertisements auf gemeinsam genutzten Layer-2-Segmenten unnötiges Broadcast-Rauschen verursachen und es einzelnen Gast-VMs erschweren, deterministische Sub-Präfixe zu verwalten. Stattdessen terminiert der virtuelle Switch jedes KVM-Hostknotens auf fe80::1 und leitet den gesamten Datenverkehr für Ihr /64-Präfix gezielt an die MAC-Adresse Ihrer virtio-net-Netzwerkkarte weiter.

Auf Layer 2 übernimmt dabei das Neighbor Discovery Protocol (NDP, RFC 4861) die Aufgabe, die bei IPv4 das ARP-Protokoll erfüllt: Wenn der Netcup-Gateway-Router fe80::1 ein Paket für 2a03:4000:60:1234::1 zustellen möchte, sendet er ein ICMPv6 Neighbor Solicitation (Typ 135) an die Solicited-Node-Multicast-Adresse Ihrer VM. Ihr Linux-Kernel antwortet mit einem ICMPv6 Neighbor Advertisement (Typ 136), das Ihre MAC-Adresse enthält. Blockieren Sie daher in ip6tables, nftables oder der Netcup SCP Firewall niemals die ICMPv6-Typen 133 bis 136 – andernfalls bricht die IPv6-Nachbarschaftserkennung nach Ablauf des NDP-Caches sofort zusammen.

Prüfen Sie vor dem Anpassen der Netzwerkkonfiguration mit ip -br link und ip -6 route show, welchen Interface-Namen (eth0 oder ens3) Ihr Gast-Kernel vergeben hat und welche Routen aktuell aktiv sind:

Netcup AS197540 Dual-Stack-Netzwerkparameter im Überblick
NetzwerkparameterNetcup-Standardwert / FormatTechnischer Zweck & Konfigurationsregel
IPv4-Zuweisung1× Statische öffentliche /32 IPv4Per DHCPv4 (MAC-gebunden) oder statischer /32-Route konfigurierbar
IPv6-Präfix-Zuweisung1× Geroutetes /64-Subnetz (2a03:4000:xxxx:xxxx::/64)Direkt auf Ihre VM-NIC geroutet; ::1, ::2 usw. statisch binden
IPv6-Standard-Gatewayfe80::1 (Link-Local Scope)Erfordert on-link: true in Netplan zusammen mit to: "::/0"
Router Advertisements (accept-ra)Muss false (0) seinVerhindert, dass ablaufende SLAAC-Timer Ihre Default-Route löschen
Netcup Rekursive DNS-Resolver46.38.225.230, 46.38.252.230, 2a03:4000:0:1::e1e6Schnelle (<1 ms) Resolver innerhalb des Netcup-AS197540-Backbones
Aktiven Interface-Namen, MAC-Adresse & aktuelle IPv6-Routing-Tabelle prüfen
bash
# Interface-Namen, MAC-Adressen und aktuelle IPv4/IPv6-Bindungen anzeigen
ip -br link
ip -br addr

# Aktuelle IPv6-Routing-Tabelle inspizieren
ip -6 route show

Befehlserklärung: Ermittelt, ob Ihr Gast-Kernel das virtio-net-Interface eth0 oder ens3 genannt hat, und prüft, ob bereits eine Default-Route ::/0 via fe80::1 gesetzt ist.

ERWARTETE AUSGABE
lo               UNKNOWN        00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP>
eth0             UP             22:54:00:ab:cd:ef <BROADCAST,MULTICAST,UP,LOWER_UP>
§ 02

Schritt 2: Statisches IPv6 + fe80::1 Gateway unter Ubuntu 24.04 (Netplan) oder Debian 12 einrichten

Unter Ubuntu 24.04 LTS übersetzt Netplan v2 Ihre YAML-Definition in /etc/netplan/ in native Konfigurationsdateien für den Daemon systemd-networkd. Beim Einrichten der statischen IPv6-Default-Route to: "::/0" über via: "fe80::1" ist das Attribut on-link: true zwingend erforderlich: Da fe80::1 eine Link-Local-Adresse außerhalb Ihres globalen 2a03:4000:...-Präfixes ist, teilt on-link: true dem Kernel mit, dass das Gateway direkt auf demselben Layer-2-Link (eth0) erreichbar ist, ohne dass zuvor eine separate Subnetz-Route zum Gateway gesucht werden muss.

Gleichzeitig müssen Sie accept-ra: false setzen. Bleibt accept-ra auf dem Standardwert true, akzeptiert der Linux-Kernel sporadische Router-Advertisements mit begrenzter Lifetime (Router Lifetime = 1800s). Sobald dieser Timer abläuft, löscht der Kernel die Default-Route, und Ihr Server verliert plötzlich nach 10 bis 30 Minuten jegliche ausgehende und eingehende IPv6-Verbindung (Network is unreachable). Mit accept-ra: false bleibt Ihre statische Route über fe80::1 dauerhaft und unverrückbar in der Kernel-Routingtabelle bestehen.

Weil Ihr komplettes /64-Subnetz auf Ihre Netzwerkkarte geroutet wird, können Sie problemlos mehrere IPv6-Adressen gleichzeitig im Array addresses: eintragen – zum Beispiel 2a03:4000:60:1234::1/64 für Ihren primären Nginx-Webserver, 2a03:4000:60:1234::2/64 exklusiv für Ihren Postfix/Dovecot-Mailserver und 2a03:4000:60:1234::10/64 für ausgehende Monitoring- oder API-Anfragen. In Nginx oder Postfix binden Sie den jeweiligen Dienst dann gezielt an seine eigene IPv6-Adresse.

Wichtiger Hinweis für Cloud-Init-Images: Damit Cloud-Init Ihre angepasste /etc/netplan/50-cloud-init.yaml bei einem späteren Server-Reboot nicht wieder überschreibt, legen Sie die Datei /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg mit dem Inhalt network: {config: disabled} an. Testen Sie Änderungen an Netplan immer zuerst mit sudo netplan try, das bei Verbindungsverlust nach 120 Sekunden automatisch ein Rollback durchführt:

Ubuntu 24.04 LTS — /etc/netplan/50-cloud-init.yaml (Dual-Stack IPv4 + Geroutetes IPv6 /64)
yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      match:
        macaddress: "22:54:00:ab:cd:ef"
      set-name: eth0
      dhcp4: true
      dhcp6: false
      accept-ra: false
      addresses:
        - "2a03:4000:60:1234::1/64"
        - "2a03:4000:60:1234::2/64"
      routes:
        - to: "::/0"
          via: "fe80::1"
          on-link: true
      nameservers:
        addresses:
          - 46.38.225.230
          - 46.38.252.230
          - 2a03:4000:0:1::e1e6
          - 2606:4700:4700::1111

Befehlserklärung: Ersetzen Sie 22:54:00:ab:cd:ef durch Ihre MAC-Adresse und 2a03:4000:60:1234 durch Ihr zugewiesenes /64-Präfix aus dem SCP. Testen Sie immer zuerst mit sudo netplan try, bevor Sie die Änderung dauerhaft bestätigen.

SICHERHEITSHINWEIS: Stellen Sie sicher, dass /etc/netplan/50-cloud-init.yaml strikte 0600-Rechte besitzt (sudo chmod 0600 /etc/netplan/*.yaml), damit netplan keine Berechtigungswarnungen ausgibt.

Debian 12 (Bookworm) — /etc/network/interfaces.d/60-ipv6.cfg
ini
iface eth0 inet6 static
    address 2a03:4000:60:1234::1
    netmask 64
    gateway fe80::1
    accept_ra 0
    autoconf 0
    up ip -6 addr add 2a03:4000:60:1234::2/64 dev eth0 || true

Befehlserklärung: Für klassische Debian-ifupdown-Installationen ohne Netplan konfiguriert diese Datei statisches IPv6 über fe80::1 und deaktiviert die SLAAC-Autokonfiguration (accept_ra 0).

Testen Sie Netzwerkänderungen immer zuerst mit sudo netplan try

Der Befehl sudo netplan try aktiviert Ihre neue YAML-Konfiguration mit einem automatischen 120-Sekunden-Rollback-Timer. Falls ein Tippfehler Ihre SSH-Verbindung trennt, stellt Netplan nach 120 Sekunden automatisch die vorherige Konfiguration wieder her.

§ 03

Schritt 3: IPv6-Routing prüfen, Reverse DNS (PTR) im SCP setzen & Docker-IPv6 aktivieren

Sobald sudo netplan try erfolgreich bestätigt wurde, prüfen Sie mit ping6 die ausgehende ICMPv6-Konnektivität und testen mit curl -6 --interface, ob Sie jede gebundene Adresse Ihres /64-Subnetzes gezielt als Quelladresse auswählen können. Standardmäßig nutzt der Linux-Kernel die zuletzt hinzugefügte IPv6-Adresse eines Interfaces als bevorzugte ausgehende Quelladresse (Source Address Selection, RFC 6724), sofern Sie sekundäre Adressen nicht mit preferred_lft 0 markieren oder in der jeweiligen Anwendung explizit binden.

Wenn Sie auf Ihrem Netcup-Server einen eigenen Mailserver (Postfix, Mailcow, Stalwart oder Docker-Mailserver) betreiben, ist die Einrichtung eines IPv6-Reverse-DNS-Eintrags (PTR) im Netcup SCP unter Network → Reverse DNS (rDNS) zwingend erforderlich. Große E-Mail-Provider wie Gmail, Microsoft 365 und T-Online prüfen bei jeder eingehenden SMTP-Verbindung über IPv6 die sogenannte Forward-Confirmed Reverse DNS (FCrDNS)-Kette: Die sendende IPv6-Adresse (2a03:4000:60:1234::2) muss per PTR auf Ihren Mail-Hostnamen (mail.example.com) auflösen, und dieser Hostname muss per AAAA-Record wieder exakt auf 2a03:4000:60:1234::2 zeigen. Fehlt der IPv6-PTR-Record, lehnt Gmail Ihre E-Mails sofort mit 550-5.7.25 The IP address sending this message does not have a PTR record ab.

Möchten Sie auch Ihren Docker-Containern ausgehende und eingehende IPv6-Konnektivität ermöglichen, ohne sich mit komplexem ndppd-NDP-Proxying herumzuschlagen, bietet Docker ab Version 24+ eine saubere IPv6-NAT (NAT66)-Integration direkt in der /etc/docker/daemon.json. Durch das Eintragen von "ipv6": true, "ip6tables": true, "experimental": true und einem privaten ULA-Subnetz "fixed-cidr-v6": "fd00:dead:beef::/48" weist Docker jedem Container automatisch eine interne IPv6-Adresse zu und übersetzt ausgehende Verbindungen per Kernel-ip6tables-MASQUERADE auf die öffentliche Netcup-IPv6-Adresse Ihres Hosts.

Führen Sie die folgenden Befehle aus, um Ihr IPv6-Routing, die Quelladressauswahl über mehrere /64-Adressen sowie die ip6.arpa-PTR-Auflösung im Terminal zu verifizieren:

IPv6-Konnektivität, Quelladressauswahl & Reverse DNS (PTR) prüfen
bash
# 1. Cloudflare IPv6-DNS anpingen und den AS197540-IPv6-Pfad prüfen
ping6 -c 4 2606:4700:4700::1111

# 2. Ausgehendes HTTP über IPv6 mit spezifischen Quelladressen aus Ihrem /64-Subnetz testen
curl -6 --interface 2a03:4000:60:1234::1 https://ifconfig.co
curl -6 --interface 2a03:4000:60:1234::2 https://ifconfig.co

# 3. Prüfen, ob Ihr im SCP gesetzter Reverse-DNS-Eintrag (PTR) sauber auflöst
dig -x 2a03:4000:60:1234::1 +short

Befehlserklärung: Zeigt, wie Sie ausgehende Verbindungen gezielt an eine beliebige Adresse Ihres /64-Blocks binden (--interface) und die ip6.arpa-PTR-Auflösung überprüfen.

ERWARTETE AUSGABE
2a03:4000:60:1234::1
2a03:4000:60:1234::2
prod-nc-01.example.com.

Häufige Fehlerbehebung

DIAGNOSE-GUIDE

[SYMPTOM] IPv6 funktioniert nach dem Booten für 5–10 Minuten und bricht dann mit Network is unreachable ab

Ursache: accept-ra wurde aktiviert gelassen (true bzw. Kernel-Standard 1), wodurch der Gast-Kernel die statische Default-Route verwirft, sobald der Router-Lifetime-Timer abläuft.

Lösung: Setzen Sie accept-ra: false in /etc/netplan/*.yaml sowie net.ipv6.conf.all.accept_ra = 0 in /etc/sysctl.d/99-netcup-ipv6.conf und wenden Sie Netplan erneut an.

[SYMPTOM] Eingehende IPv6-Verbindungen laufen in einen Timeout, obwohl ping6 vom Server nach außen funktioniert

Ursache: Entweder blockiert eine Regel in der Netcup SCP Stateful Firewall eingehende ICMPv6 Neighbor Solicitation (Typ 135) / Neighbor Advertisement (Typ 136) Pakete, oder in /etc/default/ufw steht IPV6=no.

Lösung: Blockieren Sie niemals die ICMPv6-Typen 133–136 (Neighbor Discovery Protocol) in der SCP Firewall oder ip6tables – anders als IPv4 (ARP) benötigt IPv6 zwingend ICMPv6 zur Auflösung von Layer-2-MAC-Adressen.

[SYMPTOM] Cloud-Init überschreibt /etc/netplan/50-cloud-init.yaml nach einem Server-Neustart

Ursache: Cloud-Init generiert die Netzwerkkonfiguration beim Booten neu, solange dies nicht explizit abgeschaltet wird.

Lösung: Führen Sie echo "network: {config: disabled}" | sudo tee /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg aus, damit Ihre manuelle Netplan-Datei dauerhaft erhalten bleibt.

Häufig gestellte Fragen (FAQ)

GEPRÜFTE ANTWORTEN

Wie viele nutzbare IPv6-Adressen enthält ein Netcup /64-Subnetz?

Ein /64-IPv6-Präfix umfasst 264 = 18.446.744.073.709.551.616 einzelne IPv6-Adressen, die alle direkt auf Ihr Netcup-KVM-Netzwerkinterface geroutet werden.

Warum lehnt Gmail E-Mails ab, die mein Netcup-Server über IPv6 versendet?

Google (Gmail) verlangt zwingend, dass jede sendende IPv6-Adresse einen gültigen Reverse-DNS-Eintrag (PTR) besitzt, der vorwärts (AAAA) wieder auf exakt dieselbe IPv6-Adresse auflöst (FCrDNS). Tragen Sie Ihren IPv6-PTR-Record unter SCP → Network → Reverse DNS ein, bevor Sie IPv6 in Postfix aktivieren.

Enthält selbst der kompakte Netcup VPS pico G11.5s ein volles /64-IPv6-Subnetz?

Ja! Jeder Netcup KVM-Server – vom kompakten VPS pico G11.5s und VPS nano G11.5s bis zu den großen RS G12.5 Root-Servern – beinhaltet sowohl eine statische öffentliche IPv4-/32-Adresse als auch ein eigenes geroutetes IPv6-/64-Subnetz ohne Aufpreis.

Wie kann ich ausgehend IPv4 gegenüber IPv6 bevorzugen (apt, curl), falls ein externes Mirror-System IPv6-Probleme hat?

Entfernen Sie in der Datei /etc/gai.conf das Kommentarzeichen vor precedence ::ffff:0:0/96 100. Dadurch bevorzugt getaddrinfo() bei ausgehenden Verbindungen IPv4-A-Records, während Ihre eingehenden IPv6-Dienste weiterhin uneingeschränkt erreichbar bleiben.

QUELLEN // GEPRÜFTE TECHNISCHE DOKUMENTATION

WEITERFÜHREND // EMPFOHLENE ARCHITEKTUR-AUDITS

Gutscheine →