Kettős stack VPN: az ügyfél választja ki a címcsaládot, nem ön
Egy név, két család, két különböző útvonal. Az alagút lehet egészséges, a kérés mégis meghiúsulhat, mert az ügyfél olyan jelöltet választott, amelyet soha nem irányított.
Az alagút fut, az IPv4-oldalak betöltődnek, és egy hosztnév időtúllépésbe fut. A azonnali következtetés az, hogy a VPN tönkrement vagy a hitelesítő adatok hibásak, és általában egyik sem igaz. A név IPv4- és IPv6-címet is visszaadott, az alkalmazás kiválasztott egyet, és e jelöltek közül csak egynek volt működő útvonala. A választást az ügyfél hozta meg; az alagút egyszerűen nem fedte le azt, amit kiválasztott.
A választás nem lefedettségi ígéret
Az RFC 6724-ben leírt alapértelmezett címválasztás eldönti, mely forrás–cél párt részesít előnyben a gazdagép, ha több is elérhető. A Happy Eyeballs egy kapcsolati stratégiát tesz rá: mindkét családban megkezdi a próbálkozásokat, és megtartja azt, amelyik elsőként válaszol, hogy a felhasználó ne várjon egy törött család időtúllépésére.
Egyik mechanizmus sem hoz létre útvonalat. Ha az alagút csak IPv4-et szállít, az AAAA-jelölt továbbra is legitim cél, amelyet az ügyfél megpróbálhat, és a hiba lassú betöltésként, nem hibaként jelenik meg, mert a böngésző visszaesett. A felhasználó lassú oldalt jelent, nem töröttet, és a támogatási jegy örökli ezt a homályt. Reprodukálja rögzített családdal, és a jelentés pontossá válik.
Ez a visszaesés az oka, hogy a tünet alkalmazásonként következetlen. A böngésző elrejti a késleltetést; a rögzített családú parancssori ügyfél azonnal megmutatja a valódi hibát.
Keresse meg, melyik családot használta valójában a kérés
Kezdje a névvel, ne az alagúttal. Kérdezze le mindkét rekordtípust, és jegyezze fel, mi jött vissza:
dig +short A example.com
dig +short AAAA example.com
curl -4 -sS -o /dev/null -w '%{http_code}\n' https://example.com
curl -6 -sS -o /dev/null -w '%{http_code}\n' https://example.comHa a v4-kérés sikeres, a v6-kérés pedig meghiúsul, a problémát hibakereshető formában reprodukálta. Ha mindkettő sikeres a shellből, a böngésző mégis meghiúsul, nézze meg az alkalmazás saját feloldóját vagy egy gyorsítótárazott választ, mielőtt hozzányúlna az alagúthoz.
Tartsa számon a családot és a célt a jegyzeteiben. Egy jegy, amely szerint az oldal nem töltődik be a VPN-en, senki számára nem ellenőrizhető, míg egy jegy, amely szerint az AAAA meghiúsul és az A működik, konkrét útvonalra mutat.
Ellenőrizze az adott család útvonalát
A meghiúsuló család esetében kérdezze meg a kernelt, melyik útvonalat használná, és hasonlítsa össze az alagút beállított címeivel. Linuxon a ip -6 route get a célhoz kiválasztandó interfészt és forrást mutatja.
Utána ellenőrizze magát az alagutat. A WireGuard-peerek engedélyezett IP-listát hordoznak, és a 0.0.0.0/0 bejegyzés semmit nem mond az IPv6-ról. Ha a peer listáján nincs IPv6-előtag, az ügyfélnek nincs oka AAAA-forgalmat küldeni az alagútba, és a csomag azon keresztül távozik, amit a gazdagép egyébként tenne.
A tűzfalszabályok és a NAT-szabályzat ugyanazt az ellenőrzést érdemlik családonként. Az IPv4-hez írt szabály egyetlen platformon sem fedi le az IPv6-ot, és ez a leggyakoribb oka annak, hogy az egyik család működik, a másik pedig nem.
Ne kapcsolja ki az IPv6-ot, hogy egyszerűbb legyen a képernyőkép
Az IPv6 rendszerszintű kikapcsolása eltünteti a tünetet, és diagnózis nélkül hagyja. Az is megszakít minden olyan célt, amely csak IPv6-os, és elrejti ugyanezt a hibát a következő alkalmazás elől. Ha egy gépnek valóban nem kellene IPv6-ot használnia, az szándékos szabályzat tulajdonossal és teszttel. Az incidens közbeni kikapcsolás egyik sem.
Döntse el, mit tegyen az ügyfél a családdal, és állítsa be kifejezetten: vigye át az alagúton, vagy blokkolja támogatott módon, hogy a választás soha ne kínáljon elérhetetlen jelöltet. Mindkettő legitim terv. A globális kikapcsolás egyik sem, mert az egyáltalán nem terv.
Mit írjunk a jegybe
Jegyezzen fel négy dolgot: a hosztnevet, a meghiúsult családot, a kernel által választott útvonalat és egy családspecifikus kérés eredményét. Ez a készlet elég ahhoz, hogy valaki más reprodukálja a hibát anélkül, hogy kitalálná, melyik két útvonalra gondolt.
Az RFC 6724 címválasztási szabályai magyarázzák, miért előnyben részesített az ügyfél egy adott jelöltet, és az RFC 8305 magyarázza a versenyző viselkedést, amely elrejtette a késleltetést. Egyik sem fog helyette csomagot irányítani, és éppen ezt kell az alagútnak megtennie.