Tutoriel Linux

IPv6 unter Debian: Wann sollte man es deaktivieren und, was am wichtigsten ist, was sollte man vorher überprüfen?

Débutant5 min de lecture
À retenirLinux n'est pas réservé aux experts. Le bon point de départ : une distribution accessible, une sauvegarde propre et quelques commandes comprises.

Deaktivieren IPv6 auf DebianEs kann bei der Fehlersuche helfen, beispielsweise bei Servern, die ihre DNS-Namen falsch auflösen, veralteten Anwendungen, die auf dem falschen Server-Stack laufen, oder falsch konfigurierten Routing-Anbietern. Ich würde es aber nicht als ersten Schritt verwenden. Wenn das Problem von einem defekten DNS-Server oder einer fehlenden Route herrührt, verschleiert die Deaktivierung von IPv6 nur das eigentliche Problem.

In diesem Artikel werden wir zunächst prüfen, ob IPv6 tatsächlich die Ursache ist, das Routing und die DNS-Auflösung testen und dann sehen, wie man es vorübergehend oder dauerhaft deaktiviert und dabei einen Weg zurück offen hält.

Tux prüft das IPv6-Routing auf einem Debian-Server, bevor es deaktiviert wird.
Bevor Sie IPv6 unter Debian deaktivieren, müssen Sie DNS, Routing und die freigegebenen Dienste überprüfen.

Bevor Sie IPv6 deaktivieren, prüfen Sie, ob der Rechner es tatsächlich nutzt.

Beginnen Sie mit der Betrachtung der IPv6-Adressen und des Routings. Unter Debian bleibt der am besten lesbare Befehl: IP :

ip -6 addr show

IP-6-Route anzeigen

Wenn Sie eine globale Adresse sehen, oft in 2xxx: Oder 3xxx:und eine Standardroute zu ::/0Das Gerät kann wahrscheinlich IPv6 ausgeben. Wenn Sie nur… sehen fe80::Sie haben hauptsächlich lokale Linkadressen. Das ist nicht die gleiche Situation.

Überprüfen Sie als Nächstes, welche Option das System bei der Namensauflösung auswählt:

getent ahosts debian.org

resolvectl query debian.org

Wenn IPv6-Antworten zuerst eintreffen, die IPv6-Verbindung aber nicht folgt, kann es zu Verlangsamungen, Timeouts oder Fehlern kommen, die einem Anwendungsproblem ähneln. In diesem Fall hilft Ihnen die Anleitung zu diesem Thema weiter. DNS-Caching unter Linux kann auch dazu beitragen, lokalen Cache, Auflösung und tatsächliche Konnektivität zu trennen.

IPv4 und IPv6 separat testen

Bevor Sie eine Netzwerkkonfiguration ändern, führen Sie einen einfachen Test durch, indem Sie jeden Stack erzwingen:

ping -4 -c 3 debian.org

ping -6 -c 3 debian.org

Mit LockenDies gilt umso mehr für Webanwendungen:

curl -4 -I https://www.debian.org/

curl -6 -I https://www.debian.org/

Wenn IPv4 schnell antwortet und IPv6 blockiert, haben Sie ein brauchbares Signal. Überprüfen Sie auch die Schnittstelle, die die Route transportiert, insbesondere auf einem Server mit mehreren Netzwerkkarten:

ip route get 1.1.1.1

ip -6 route get 2606:4700:4700::1111

Nehmen Sie auf einem Remote-Server keine Konfigurationsänderungen vor, wenn Sie keine Backup-Konsole, KVM, IPMI, Provider-Zugang oder zumindest eine offene SSH-Sitzung haben. Eine Netzwerkänderung, die Ihre einzige Verbindung unterbricht, kann schnell eintreten.

IPv6 vorübergehend mit sysctl deaktivieren

Für einen kurzen Test verwenden Sie sysctlDadurch können Sie feststellen, ob das Symptom verschwindet, ohne die Konfigurationsdateien sofort ändern zu müssen.

sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1

Bei manchen Maschinen überprüfe ich auch die entsprechende Schnittstelle. Ersetzen eth0 durch den tatsächlichen Namen Ihrer Schnittstelle, sichtbar mit IP-Link :

IP-Link

sudo sysctl -w net.ipv6.conf.eth0.disable_ipv6=1

Starten Sie anschließend Ihre Tests neu:

ip -6 addr show

ping -6 -c 3 debian.org

curl -6 -I https://www.debian.org/

Um sofort zurückzukehren:

sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=0
sudo sysctl -w net.ipv6.conf.eth0.disable_ipv6=0

Ich bevorzuge diesen temporären Schritt stets, bevor ich die Änderung endgültig vornehme. Dadurch wird vermieden, dass ein Server mit einer noch nicht vollständig validierten Konfiguration neu gestartet werden muss.

Die Deaktivierung unter Debian dauerhaft machen

Wenn der Test bestätigt, dass Ihr Server tatsächlich ohne IPv6 laufen muss, erstellen Sie eine separate Datei in /etc/sysctl.dVermeiden Sie es, Systemdateien willkürlich und ohne vorherige Datensicherung zu verändern.

printf '%sn' 
'net.ipv6.conf.all.disable_ipv6 = 1' 
'net.ipv6.conf.default.disable_ipv6 = 1' 
| sudo tee /etc/sysctl.d/99-disable-ipv6.conf

Als Nächstes wenden Sie die Einstellungen an:

sudo sysctl --system

Überprüfen Sie das Ergebnis:

sysctl net.ipv6.conf.all.disable_ipv6
sysctl net.ipv6.conf.default.disable_ipv6

ip -6 addr show
IP-6-Route anzeigen

Wenn Sie zum vorherigen Zustand zurückkehren möchten, löschen Sie die Datei und setzen Sie die Werte zurück auf nulldann sysctl neu laden:

sudo rm /etc/sysctl.d/99-disable-ipv6.conf
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=0
sudo sysctl -w net.ipv6.conf.eth0.disable_ipv6=0
sudo sysctl --system

Auf einem Server mit statischer IP-Adresse sollten Sie auch die Debian-Netzwerkkonfiguration überprüfen. Eine falsch konfigurierte Route, ein fehlerhaftes Gateway oder ein fehlerhafter DNS-Server können den Eindruck erwecken, IPv6 sei das Problem, obwohl die Basiskonfiguration lediglich unvollständig ist. Ich habe diesen Aspekt im Artikel ausführlich beschrieben. die feste IP-Adresse unter Debian.

Überwachungsdienste nach der Änderung

Nach einer IPv6-Umstellung sollten Sie sich nicht allein auf einen Ping verlassen. Überprüfen Sie, welche Dienste auf dem Server aktiv sind:

sudo ss -ltnp

systemctl --fehlgeschlagen

journalctl -p warning..alert -b --no-pager

Achten Sie besonders auf die Dienste, die zugehört haben. Reverse-Proxys, Monitoring-Agenten, VPNs, Container und Firewalls. Weitere Informationen zu dieser Steuerung finden Sie im Artikel unter Ports unter Linux mit ss und netstat öffnen ist eine gute Ergänzung.

Falls ein Dienst nicht ordnungsgemäß neu gestartet werden kann, sollten Sie die Protokolle konsultieren, bevor Sie Änderungen am Netzwerk-Stack vornehmen:

journalctl -u service-name -b --no-pager

journalctl -b -p warning..alert --no-pager

Der Leitfaden zu journalctl und die Protokolle vom letzten Start wird Ihnen dabei helfen, festzustellen, was sich seit dem letzten Neustart geändert hat.

Wenn ich IPv6 aktiv lasse

Ich deaktiviere IPv6 nur, wenn ein eindeutiger Test zeigt, dass es den erwarteten Dienst beeinträchtigt oder die Netzwerkumgebung es nicht ordnungsgemäß unterstützt. Auf einem modernen Rechner, einem VPS, einem Reverse-Proxy, einem Mailserver, einem VPN oder einer Cloud-Infrastruktur kann IPv6 von mehr Komponenten genutzt werden, als man vielleicht denkt.

Bevor Sie es endgültig abschneiden, beachten Sie bitte folgende Reihenfolge:

  • Überprüfen Sie Adressen mit ip -6 addr show ;
  • Überprüfen Sie die Route mit IP-6-Route anzeigen ;
  • DNS und Konnektivität testen mit getent, auflösen, Ping -6 Und Locken -6 ;
  • vorübergehend deaktivieren mit sysctl -w ;
  • Kontrolldienste und Häfen;
  • Erst dann wird die Einstellung dauerhaft gespeichert.

Nützliche Quellen: Debian Wiki IPv6-Dokumentation, sysctl-Handbuch, Linux-Kernel IPv6-Netzwerkeinstellungen, Debian ip-route-Handbuch Und Debian resolvectl-Handbuch.

sudo apt update && sudo apt upgrade