VPN sa presunula: prečo váš klient OpenVPN stále volá starú IP
Nový záznam DNS je len jeden krok. Porovnajte odpoveď resolvera, adresu, ktorú klient skutočne volá, a možnosti reštartu, skôr než začnete očakávať opätovné pripojenie.
Poskytovateľ zmenil vašu verejnú adresu, aktualizovali ste dynamický záznam DNS a klient sa stále nevie pripojiť. Zvonku to vyzerá, akoby sa záznam nepropagoval. Väčšinou je záznam v poriadku a klient volá adresu, ktorú preložil ešte pred presunom, pretože bežiaci tunel a uložený profil majú každý vlastnú predstavu o tom, kde žije server. Tri vrstvy sa musia zhodnúť a aktualizujú sa podľa rôznych plánov.
Sledujte, čo volá profil, nie čo hovorí DNS
Otvorte pripojenie, ktoré skutočne používate, a prečítajte riadok remote. Číselná adresa tam nikdy nenasleduje aktualizáciu názvu hostiteľa, nech je záznam akokoľvek správny.
Potom skontrolujte, či profil, ktorý ste upravili, je ten, ktorý klient načítal. Importované profily sú bežné: správca si pred mesiacmi mohol vziať kópiu a ponechať si vlastnú verziu, takže súbor v priečinku sťahovania a položka v aplikácii sa môžu rozísť. Porovnajte koncový bod vo vlastných podrobnostiach pripojenia klienta, skôr než vôbec začnete ladiť DNS.
Dva súbory, jeden koncový bod — to je tu obvyklé zistenie.
grep -nE '^remote|^resolv-retry|^persist-remote-ip|^float' client.ovpn
printf 'resolver says: '; dig +short vpn.example.netPrečítajte si ďalší pokus klienta o pripojenie
Reštartujte pripojenie s podrobným protokolovaním a prečítajte riadok, kde je uvedená adresa, s ktorou bude komunikovať. Práve táto hodnota je dôležitá, nie tá, ktorú preložil váš prehliadač.
Vyrovnávacia pamäť resolvera môže stále držať predchádzajúcu odpoveď a niektoré siete ju držia dlhšie, než požaduje TTL záznamu. Pýtajte sa resolvera, ktorý klient skutočne používa, nie verejného, ktorý ste testovali odinakiaľ.
Ak protokol ukazuje novú adresu a pripojenie stále zlyháva, problém sa posunul: paket ide niekam a nikto neodpovedá. Je to otázka naslúchajúceho procesu, firewallu alebo presmerovania portu a leží na strane servera, nie v ceste prekladu u klienta. Držte tieto dve zlyhania oddelene, pretože keď nedostupný naslúchajúci proces považujete za problém DNS, prejdete tú istú slučku dvakrát.
Vedzte, aký reštart robíte
Nie všetky reštarty zachovávajú rovnaký stav, a preto sa zmena adresy môže správať odlišne podľa toho, ako sa proces recykluje. Mäkký reštart vyvolaný signálom zachováva viac kontextu predchádzajúcej relácie, zatiaľ čo úplné zastavenie a spustenie začína znova od konfigurácie. Ak testujete, či klient znova prekladá, chcete cestu, ktorá začína od konfigurácie.
Nastavenia trvalosti tiež záležia, pretože majú udržať to, čo bolo overené, nie naháňať nové adresy.
Najčistejší test je čerstvé spustenie z určeného profilu a potom pohľad na riadok protokolu, ktorý uvádza koncový bod. Čokoľvek sa dozviete z čiastočne zachovanej relácie, je tvrdenie o tejto relácii.
Štyri možnosti a ich oddelené úlohy
remote s názvom hostiteľa je nastavenie, ktoré opätovný preklad vôbec umožňuje; doslovná adresa na tomto riadku to vylučuje. resolv-retry riadi, čo sa stane pri neúspešnom vyhľadaní, a 2.6 ho už predvolene nastavuje na nekonečno. Jeho pridanie teda nič nemení a nikdy neplánuje periodickú kontrolu inej odpovede. Kto hovorí, že sonduje nové adresy, ten si pomýlil obnovu s aktuálnosťou.
persist-remote-ip je o spojitosti, nie o aktuálnosti: znova používa koncový bod, ktorý sa naposledy overil, naprieč mäkkými reštartmi, ktoré podporuje. Kým testujete presun, je to pravý opak toho, čo chcete. Vypnite ho pre test, ak ho vaše zostavenie zapína, a po preukázaní nového koncového bodu ho vráťte. Ponechaný zapnutý, úspešné opätovné pripojenie vám o DNS nemusí povedať nič.
float prijíma overeného partnera, ktorého adresa sa zmenila uprostred relácie, a len v usporiadaniach, ktoré to podporujú. Neobnovuje DNS a sám nebude sledovať zmenu poskytovateľa. Berte ho ako funkciu odolnosti pre partnerov, ktorí sa pohybujú, nie ako mechanizmus dynamických adries pre servery.
Potvrďte nový koncový bod, skôr než obviníte klienta
Zvonku svojej siete skontrolujte, či nová adresa má naslúchajúci proces na nakonfigurovanom porte a či presmerovanie poskytovateľa na ňu ukazuje. Správny záznam A pre stroj bez otvoreného portu vytvára presne ten príznak, ktorý ľudia pripisujú vyrovnávacej pamäti.
Potom sa znova pripojte a overte dve veci: klient sa overil proti očakávanému certifikátu servera a relácia dosiahne zdroj, ktorý ste zamýšľali. Zmena adresy neznižuje požiadavky na identitu a pripojenie, ktoré uspeje k nesprávnemu koncovému bodu, je horšie než to, ktoré zlyhá. Príručka OpenVPN 2.6 uvádza všetky štyri možnosti s ich vlastným rozsahom a to je kontrolný zoznam, ktorý treba mať pri profile.
Než reštartujete tunel, ktorý nesie váš administratívny prístup, zaistite si cestu k serveru mimo pásma. To jediné opatrenie zabráni väčšine incidentov, ktoré tento scenár vyvoláva.