Adresa protějšku se změnila uprostřed relace: co dělá float v OpenVPN
float umožňuje ověřenému protějšku změnit jeho vnější adresu uprostřed relace. Neobjevuje koncové body, znovu neotvírá mrtvé spojení a nepřeskakuje kontroly identity.
Notebook přejde z kancelářské Wi-Fi na hotspot v telefonu, tunel vydrží ještě několik sekund a pak provoz ustane, zatímco rozhraní stále tvrdí, že je připojené. Na serveru seznam stavů dál ukazuje starou veřejnou adresu. To je situace, pro kterou float existuje, a zároveň situace, ve které od něj lidé čekají mnohem víc, než dělá. Správné vymezení hranice promění matoucí zaseknutí buď v jednořádkovou změnu konfigurace, nebo v úplně jiné vyšetřování.
Co float uvolňuje a co nikdy neuvolňuje
Relace obvykle dál komunikuje s vnější adresou a portem, se kterými začala, a pakety přicházející odjinud se ignorují. Volba float toto striktní připoutání zruší, jakmile se protějšek už prokázal, takže změněné mapování zdroje může pokračovat ve stejné relaci, místo aby bylo zahozeno. Na kryptografických kontrolách se nic nemění: klíče, certifikáty a jakákoli ochrana HMAC zůstávají přesně tak, jak jsou nakonfigurovány.
Je to rozhodnutí pro každý paket, ne zásada o tom, kdo se smí připojit. Neznámý stroj, který pošle paket z nové adresy, nic neprokázal a jeho paket se zahodí jako jakýkoli jiný neověřený provoz. Zaznamenanou adresu protějšku může posunout jen provoz, který projde vlastní autentizací relace, a proto je bezpečné nechat float zapnutý v prostředích, kde klienti putují.
Nic neříká ani o vnitřním tunelu. Posunutá vnější adresa nepřiřazuje adresu tunelu, nemění fond ani nedává protějšku přístup k něčemu novému. Uvnitř tunelu platí před pohybem i po něm stejná identita a stejné protlačené trasy. Putování také znovu nevyjednává datový kanál, takže vyjednaná šifra a klíče pokračují.
Paket, který posune relaci, se musí autentizovat
Zahajte relaci obvyklým způsobem proti nakonfigurovanému vzdálenému konci a float se postará o to, co se stane, když se mapování změní. Mobilní operátor, který uprostřed toku přečísluje, NAT brána, která přepisuje mapování portu, nebo notebook, který přepne páteřní spojení, dávají stejný tvar: ověřené pakety z nového úseku, které dorazí do relace, jež stále věří té staré.
Když se vás ptají, zda float funguje, užitečným důkazem je dokončený handshake následovaný přijatou změnou zdroje, ne řádek v logu jen o adrese. Spojte starou a novou vnější adresu s relací, která zůstala živá, a pak potvrďte, že provoz skutečně pokračoval tunelem.
Jestliže relace místo přesunu zemře, paket, který dorazil z nové adresy, pravděpodobně neprošel autentizací nebo vůbec nedorazil. Oba případy vypadají z pohledu klienta stejně. Na serveru vám zachycení na veřejném rozhraní řekne, který z nich máte, dřív než sáhnete na jakoukoli konfiguraci.
Objevování je úplně samostatný mechanismus
float nerozkládá jména podle časovače a nesleduje dynamický záznam DNS. Začne-li se jméno hostitele serveru rozkládat na novou adresu, nečinný klient nemá důvod si toho všimnout a nemá paket z nového koncového bodu, který by ověřil. Ten problém patří logice opětovného připojení, vlastnímu chování klienta při dalším pokusu a DNS, ne floatu.
Přidání volby ještě jednou nenahradí absenci trasy k nové adrese. Nepomůže ani tehdy, když protějšek mlčí, protože mlčící protějšek nikdy nepošle ověřený paket, který by něco posunul.
Spodní firewall má také slovo. Pravidlo, které povoluje jen starý vnější koncový bod, zablokuje změněnou adresu dřív, než ji OpenVPN vůbec uvidí, a žádná klientská konfigurace to nespraví. Projděte životní cyklus povolených adres jako samostatný úkol; rozšíření pravidla na libovolný zdroj vymění malý problém za velký.
Když profil vlastní NetworkManager
Profil z příkazového řádku a importované připojení jsou oddělené konfigurace a úprava jedné se nedotkne druhé. Než začnete předpokládat, že volba není podporována, zjistěte, jaký typ pluginu uložený profil skutečně používá a kde žijí jeho hodnoty. UUID profilu je identifikátor, na kterém záleží, když něco zkoumáte nebo měníte.
Zkoumejte uložené připojení, ne původní soubor importu. Řádek, který přežije v souboru .ovpn, nic nedokazuje, pokud jej aktivní správce nikdy nepoužil, a ani editor bez zaškrtávacího pole pro danou volbu nic nedokazuje o možnostech protokolu.
Neopravujte zabalený plugin záplatou, abyste chování přidali, zvláště ne diffem napsaným pro historickou verzi nesouvisející komponenty. Pokud nainstalovaná integrace nastavení opravdu nedokáže vyjádřit, správným krokem je podporovaný profil nebo jiná klientská cesta schválená tím, kdo nasazení vlastní.
Dokažte přechod, místo abyste jej předpokládali
Proveďte test tak, jak porucha nastává. Připojte se, ověřte provoz tunelem, vynuťte změnu vnější adresy a pak zkontrolujte tři věci: relace stále existuje, zaznamenaná adresa protějšku se posunula a skutečný požadavek stále dorazí do cíle. Cokoli méně než všechny tři je částečná odpověď.
Během testování mějte dostupný záchranný přístup, protože experimenty s putováním mají ve zvyku uváznout stroj, ze kterého pracujete. Sériová konzole nebo mimopásmová cesta promění neúspěšný test v pětiminutové obnovení místo návštěvy na místě.
Nakonec popište jen případ, který jste vyzkoušeli. Úspěšná změna adresy během relace není důkazem, že migrace DNS, jiná implementace klienta nebo přestavěný profil se budou chovat stejně. Dokumentace link-options přesně uvádí rozsah volby; váš testovací záznam by měl uvést, kterou část tohoto rozsahu jste skutečně pokryli.