Tutoriel Linux

IPv6 na Debianu: kdy jej zakázat a co je nejdůležitější, co předem zkontrolovat

Débutant6 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.

Zakázat IPv6 v DebianuMůže to pomoci s řešením problémů se serverem, který nesprávně rozpoznává svá DNS jména, se zastaralou aplikací naslouchající na nesprávném serverovém zásobníku nebo se špatně nakonfigurovaným poskytovatelem směrování. Ale nedělal bych to jako první krok. Pokud problém pramení z nefunkčního DNS serveru nebo chybějící trasy, vypnutí IPv6 pouze maskuje skutečný problém.

V tomto článku nejprve zkontrolujeme, zda je IPv6 skutečně příčinou, otestujeme směrování a rozlišení DNS a poté se podíváme, jak jej dočasně nebo trvale deaktivovat a zároveň si zachovat cestu zpět.

Tux kontroluje směrování IPv6 na serveru Debian před jeho deaktivací.
Před vypnutím IPv6 v Debianu je třeba zkontrolovat DNS, směrování a exponované služby.

Před vypnutím IPv6 zkontrolujte, zda jej počítač skutečně používá.

Začněte pohledem na IPv6 adresy a trasu. V Debianu zůstává nejčitelnějším příkazem ip :

zobrazit ip -6 adresu

Zobrazení trasy IP-6

Pokud vidíte globální adresu, často v 2xxx: Nebo 3xxx:a výchozí trasu k ::/0Zařízení pravděpodobně umí výstup IPv6. Pokud vidíte pouze… fe80::Máte hlavně lokální adresy odkazů. Není to stejná situace.

Dále zkontrolujte, co systém vybere při rozpoznávání názvu:

getent ahosts debian.org

dotaz resolvectl na debian.org

Pokud odpovědi IPv6 dorazí jako první, ale připojení IPv6 se neobjeví následovně, může dojít ke zpomalení, časovým limitům nebo chybám, které připomínají problém s aplikací. V tomto případě si přečtěte návod k… Ukládání DNS do mezipaměti v Linuxu může také pomoci oddělit lokální mezipaměť, rozlišení a skutečnou konektivitu.

Testujte IPv4 a IPv6 samostatně

Před změnou konfigurace sítě proveďte jednoduchý test vynucením každého zásobníku:

ping -4 -c 3 debian.org

ping -6 -c 3 debian.org

S kučeraTo je ještě relevantnější pro webovou aplikaci:

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

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

Pokud IPv4 reaguje rychle a IPv6 blokuje, máte užitečný signál. Zkontrolujte také rozhraní, které přenáší trasu, zejména na serveru s více síťovými kartami:

IP trasa získat 1.1.1.1

ip -6 trasa získat 2606:4700:4700::1111

Na vzdáleném serveru zatím neměňte konfiguraci, pokud nemáte záložní konzoli, KVM, IPMI, přístup poskytovatele nebo alespoň otevřenou SSH relaci. Změna v síti, která přeruší vaši jedinou relaci, může nastat rychle.

Dočasné zakázání IPv6 pomocí sysctl

Pro krátký test použijte sysctlTo vám umožní zjistit, zda příznak zmizí, aniž byste museli okamžitě upravovat konfigurační soubory.

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

Na některých počítačích také kontroluji příslušné rozhraní. Nahrazuji eth0 skutečným názvem vašeho rozhraní, viditelným pro ip odkaz :

ip odkaz

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

Pak restartujte testy:

zobrazit ip -6 adresu

ping -6 -c 3 debian.org

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

Chcete-li se okamžitě vrátit zpět:

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

Vždy preferuji tento dočasný krok před trvalou změnou. Vyhne se tak nutnosti restartovat server s konfigurací, která nebyla plně ověřena.

Trvalá deaktivace v Debianu

Pokud test potvrdí, že váš server skutečně potřebuje běžet bez IPv6, vytvořte v /etc/sysctl.dVyhněte se náhodné úpravě systémového souboru bez zálohy.

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

Dále použijte nastavení:

sudo sysctl --system

Zkontrolujte výsledek:

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

zobrazit ip -6 adresu
Zobrazení trasy IP-6

Pokud se chcete vrátit do předchozího stavu, smažte soubor a resetujte hodnoty na nulapak znovu načtěte sysctl:

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

Na serveru se statickou IP adresou zkontrolujte také konfiguraci sítě Debian. Nesprávně nakonfigurovaná trasa, brána nebo DNS může vyvolat dojem, že problém je v IPv6, i když základní konfigurace je jednoduše neúplná. Tuto část jsem podrobně popsal v článku o pevná IP adresa v Debianu.

Monitorování služeb po změně

Po změně IPv6 se nespoléhejte pouze na ping. Zkontrolujte, které služby na serveru naslouchají:

sudo ss -ltnp

systemctl --selhalo

journalctl -p varování..alert -b --no-pager

Věnujte zvláštní pozornost službám, které naslouchaly reverzní proxy, monitorovací agenti, VPN, kontejnery a firewally. Informace o tomto ovládání naleznete v článku o otevírání portů v Linuxu pomocí ss a netstat je dobrým doplňkem.

Pokud se služba nezdaří správně restartovat, použijte před úpravou síťového zásobníku protokoly:

journalctl -u název-služby -b --no-pager

journalctl -b -p varování..alert --no-pager

Průvodce po journalctl a protokoly z posledního spuštění vám pomůže izolovat, co se změnilo od posledního spuštění.

Když ponechám IPv6 aktivní

IPv6 deaktivuji pouze tehdy, pokud jasný test ukáže, že narušuje očekávanou službu, nebo pokud jej síťové prostředí správně nepodporuje. Na moderním počítači, VPS, reverzní proxy, poštovním serveru, VPN nebo cloudové infrastruktuře může být IPv6 používán více komponentami, než si myslíte.

Než si ho natrvalo ostříháte, mějte na paměti toto pořadí:

  • zkontrolujte adresy pomocí zobrazit ip -6 adresu ;
  • zkontrolovat trasu s Zobrazení trasy IP-6 ;
  • otestujte DNS a připojení k getent, resolvectl, ping -6 A zvlnění -6 ;
  • dočasně deaktivovat pomocí sysctl -w ;
  • řídicí služby a přístavy;
  • teprve poté nastavení uložte trvale.

Užitečné zdroje: Dokumentace Debian Wiki IPv6, manuál k sysctl, Nastavení sítě IPv6 v jádru Linuxu, Manuál k ip-route v Debianu A Manuál k Debianu resolvectl.

sudo apt update && sudo apt upgrade