Adresa z rozsahu IPv6 sa objaví na testovacej stránke, tunel ju zjavne neprenáša a najobľúbenejšia rada na internete je vypnúť IPv6 všade. Ten príkaz naozaj stíši panel. Odstráni však aj protokol, od ktorého môže závisieť prístupová sieť, a nechá vás bez tušenia, či adresa bola skutočný únik, link-local adresa rozhrania alebo resolver, ktorý robí svoju prácu. O správnej kontrole rozhodujú tri podmienky a len jedna z nich vedie k blokovaniu.

Zistite, čo nástroj skutočne zmeral

Najčastejší falošný poplach je link-local adresa, ktorá začína fe80: a existuje na každom rozhraní podporujúcom IPv6, či sa stroj dostane na internet cez IPv6 alebo nie. Objavuje sa vo výpisoch rozhraní a v niektorej diagnostike aplikácií a o ceste vášho provozu nehovorí nič.

Druhý falošný poplach je jedinečná lokálna adresa v fc00::/7, čo je privátny rozsah používaný vnútri siete. Nástroj, ktorý vypíše každú adresu hostiteľa, ju rád ukáže vedľa verejnej. Kto číta rýchlo, nazve to únikom a potom strávi hodinu problémom, ktorý neexistuje.

Tretí vôbec nie je falošný poplach. Globálna adresa, ktorá sa dostane na internet mimo tunela, je skutočný únik a stojí za to ju zmerať, kým čokoľvek rozhodnete:

ip -6 addr show scope global
ip -6 route show default
curl -6 -sS --max-time 6 https://ifconfig.co

Ak prvý príkaz vypíše globálnu adresu a tretí vráti verejnú adresu IPv6, ktorá nie je adresou tunela, máte skutočnú cestu mimo tunela. Ak prvý nevypíše nič okrem link-local záznamov, žiadny únik na opravu nikdy neexistoval.

O kontrole rozhodujú tri podmienky

Rozhodnutie nie je "IPv6 dobré" alebo "IPv6 zlé". Ide o to, v ktorej z troch situácií ste, a každá má inú správnu odpoveď s inou cenou, ak sa pomýlite.

SituationCorrect controlCost if you disable IPv6 instead
Exit has no IPv6, host doesBlock IPv6 deliberately in the tunnel policySame visible result, no documentation of intent
Exit carries IPv6, host leaksRoute IPv6 into the tunnel and verifyYou lose IPv6 reachability entirely
Access network is IPv6-onlyChange nothing; use the tunnel's IPv6Machine loses connectivity completely

Prvý riadok je to, čo ľudia zvyčajne myslia, a je legitímny. Klient, ktorého výstup nepodporuje IPv6, by nemal ticho púšťať vlastnú prevádzku IPv6 hostiteľa von, pretože to je dokumentovaný únik pri dvojitom zásobníku. Zmyslom je blokovať to ako vyhlásenú politiku, nie vypínať protokol v jadre. Viditeľný výsledok je rovnaký a len jeden z nich možno neskôr skontrolovať.

Tretí riadok je miesto, kde sa všeobecná rada stáva aktívne škodlivou. Mobilní operátori a niektoré domáce pripojenia prevádzkujú siete IPv6-only s prekladom pre ciele IPv4. Odstráňte tam IPv6 a odstránite jediný transport, ktorý sieť ponúka, čo spôsobí oveľa horší výpadok než ten, ktorý ste ladili.

Ak výstup nemá IPv6, blokujte ho zámerne

Uprednostnite vlastný mechanizmus klienta, pretože platí presne dovtedy, kým je tunel hore, a vráti sa, keď spadne. OpenVPN na to má voľbu a iptables má ekvivalentné pravidlo pre iných klientov:

block-ipv6
ip6tables -A OUTPUT -o eth0 -j REJECT --reject-with ipv6-port-unreachable

Direktíva patrí do profilu; pravidlo patrí do firewallu, ktorý môžete skontrolovať a odstrániť. Obe zlyhávajú zatvorené, čo je to, čo chcete, a obe sú viditeľné v diffe konfigurácie, čo sysctl jadra zakopaný v štartovacom skripte nie je.

Zapíšte, prečo tam je. Pravidlo blokovania bez komentára odstráni nasledujúci človek, ktorý IPv6 potrebuje na niečo iné, a potom sa únik ticho vráti.

Ak výstup prenáša IPv6, smerujte ho a otestujte obe rodiny

Prenos IPv6 je lepšia odpoveď, keď ho server podporuje, a nie je oveľa ťažší. Požiadavka je, aby rozhranie tunela malo adresu v tejto rodine a aby predvolená trasa pre ňu viedla do tunela, nie von z fyzického rozhrania:

ip -6 route get 2606:4700:4700::1111
ip -6 route show default
curl -6 -sS --max-time 6 https://ifconfig.co
curl -4 -sS --max-time 6 https://ifconfig.co

Vyhľadanie trasy je rozhodujúci test: ak pomenuje rozhranie tunela, prevádzka IPv6 sa prenáša. Dve volania curl potom potvrdia, čo vidí každá rodina, a ich porovnanie je spôsob, ako dokázať, že obe cesty teraz vychádzajú tým istým výstupom.

Nezastavujte sa pri úspešnom pripojení. Znovu pripojte tunel a skontrolujte to znova, pretože zatlačená trasa IPv6 sa môže pri obnovení stratiť, ak ju server posiela len v počiatočnej konfigurácii. Potom skontrolujte jeden vylúčený cieľ, pretože pravidlá rozdeleného tunela sú miestom, kde sa obe rodiny najčastejšie rozchádzajú.

Ak je prístupová sieť len IPv6, nechajte ju tak

Niektoré siete poskytujú len IPv6 a očakávajú, že zariadenie dosiahne služby IPv4 cez prekladový mechanizmus na strane operátora. Vypnutie IPv6 na takom stroji nie je zlepšenie bezpečnosti; odstráni jedinú cestu kamkoľvek. To je výpadok, ktorý si spôsobíte sami kvôli výsledku testu, ktorý nikto nepotreboval.

Príznak tejto chyby je výrazný a nepríjemný: tunel sa zdá nadväzovať, preklad mien funguje a nič sa nenačítava. Ak to uvidíte po zmene IPv6, okamžite obnovte nastavenie a pokračujte v diagnostike inde.

Čokoľvek si vyberiete, držte rozhodnutie explicitne v profile alebo firewalle, spojte ho s tým, čo výstup skutočne podporuje, a poznamenajte správanie dvojitého zásobníka, ktoré opisuje diskusia o dvojitom zásobníku v RFC 7359 . Vyhlásené blokovanie je politika. Vypnutý protokol je obchádzka, ktorú nikto nemôže auditovať, a z testovacej stránky vyzerajú rovnako.

Súvisiace články