Adresa partnera sa zmenila uprostred relácie: čo robí float v OpenVPN
float umožňuje overenému partnerovi zmeniť jeho vonkajšiu adresu uprostred relácie. Neobjavuje koncové body, znovu neotvára mŕtve spojenie a nepreskakuje kontroly identity.
Notebook prejde z kancelárskej Wi-Fi na hotspot v telefóne, tunel vydrží ešte niekoľko sekúnd a potom prevádzka ustane, zatiaľ čo rozhranie stále tvrdí, že je pripojené. Na serveri zoznam stavov naďalej ukazuje starú verejnú adresu. To je situácia, pre ktorú float existuje, a zároveň situácia, v ktorej od neho ľudia čakajú oveľa viac, než robí. Správne vymedzenie hranice premení mätúce zaseknutie buď na jednořiadkovú zmenu konfigurácie, alebo na úplne iné vyšetrovanie.
Čo float uvoľňuje a čo nikdy neuvoľňuje
Relácia zvyčajne ďalej komunikuje s tou vonkajšou adresou a portom, s ktorými začala, a pakety prichádzajúce odinakiaľ sa ignorujú. Voľba float zruší toto striktné previazanie, keď sa partner už preukázal, takže zmenené mapovanie zdroja môže pokračovať v tej istej relácii namiesto toho, aby bolo zahodené. Na kryptografických kontrolách sa nič nemení: kľúče, certifikáty a akákoľvek ochrana HMAC zostávajú presne tak, ako sú nakonfigurované.
Je to rozhodnutie pre každý paket, nie zásada o tom, kto sa smie pripojiť. Neznámy stroj, ktorý pošle paket z novej adresy, nič nepreukázal a jeho paket sa zahodí ako akákoľvek iná neoverená prevádzka. Zaznamenanú adresu partnera môže posunúť len prevádzka, ktorá prejde vlastnou autentifikáciou relácie, a preto je bezpečné nechať float zapnutý v prostrediach, kde klienti putujú.
Nič nehovorí ani o vnútornom tuneli. Posunutá vonkajšia adresa nepriraďuje adresu tunela, nemení fond ani nedáva partnerovi prístup k niečomu novému. Vo vnútri tunela platí pred pohybom aj po ňom rovnaká identita a rovnaké pretlačené trasy. Putovanie tiež znovu nevyjednáva dátový kanál, takže vyjednaná šifra a kľúče pokračujú.
Paket, ktorý posunie reláciu, sa musí autentifikovať
Začnite reláciu obvyklým spôsobom proti nakonfigurovanému vzdialenému koncu a float sa postará o to, čo sa stane, keď sa mapovanie zmení. Mobilný operátor, ktorý uprostred toku prečísluje, NAT brána, ktorá prepisuje svoje mapovanie portu, alebo notebook, ktorý prepne horné spojenie, dávajú rovnaký tvar: overené pakety z novej krotky, ktoré dorazia do relácie, ktorá stále verí tej starej.
Keď sa vás pýtajú, či float funguje, užitočným dôkazom je dokončený handshake nasledovaný prijatou zmenou zdroja, nie riadok v logu len o adrese. Prepojte starú a novú vonkajšiu adresu s reláciou, ktorá zostala živá, a potom potvrďte, že prevádzka skutočne pokračovala tunelom.
Ak relácia zomrie namiesto presunu, paket, ktorý dorazil z novej adresy, pravdepodobne neprešiel autentifikáciou alebo vôbec neprišiel. Oba prípady vyzerajú z pohľadu klienta rovnako. Na serveri vám zachytenie na verejnom rozhraní povie, ktorý z nich máte, skôr než sa dotknete akejkoľvek konfigurácie.
Objavovanie je úplne samostatný mechanizmus
float nerozkladá mená podľa časovača a nesleduje dynamický záznam DNS. Ak sa začne meno hostiteľa servera rozkladať na novú adresu, nečinný klient nemá dôvod si to všimnúť a nemá paket z nového koncového bodu, ktorý by overil. Ten problém patrí logike opätovného pripojenia, vlastnému správaniu klienta pri ďalšom pokuse a DNS, nie floatu.
Pridanie voľby ešte raz nenahradí absenciu trasy k novej adrese. Nepomôže ani vtedy, keď partner mlčí, pretože mlčiaci partner nikdy nepošle overený paket, ktorý by niečo posunul.
Spodný firewall má tiež slovo. Pravidlo, ktoré povoľuje len starý vonkajší koncový bod, zablokuje zmenenú adresu skôr, než ju OpenVPN vôbec uvidí, a žiadna klientská konfigurácia to nespraví. Prejdite životný cyklus povolených adries ako samostatnú úlohu; rozšírenie pravidla na akýkoľvek zdroj vymení malý problém za veľký.
Keď profil vlastní NetworkManager
Profil z príkazového riadka a importované pripojenie sú oddelené konfigurácie a úprava jednej sa nedotkne druhej. Skôr než začnete predpokladať, že voľba nie je podporovaná, zistite, aký typ pluginu uložený profil skutočne používa a kde žijú jeho hodnoty. UUID profilu je identifikátor, na ktorom záleží, keď niečo skúmate alebo meníte.
Skúmajte uložené pripojenie, nie pôvodný súbor importu. Riadok, ktorý prežije v súbore .ovpn, nič nedokazuje, ak ho aktívny správca nikdy nepoužil, a ani editor bez zaškrtávacieho poľa pre danú voľbu nič nedokazuje o možnostiach protokolu.
Neopravujte zabalený plugin záplatou, aby ste pridali správanie, najmä nie diffom napísaným pre historickú verziu nesúvisiacej komponenty. Ak nainštalovaná integrácia naozaj nedokáže vyjadriť nastavenie, správnym krokom je podporovaný profil alebo iná klientská cesta schválená tým, kto nasadenie vlastní.
Dokážte prechod, namiesto toho, aby ste ho predpokladali
Spustite test tak, ako porucha nastáva. Pripojte sa, overte prevádzku tunelom, vynúťte zmenu vonkajšej adresy a potom skontrolujte tri veci: relácia stále existuje, zaznamenaná adresa partnera sa posunula a skutočná požiadavka stále dorazí do cieľa. Čokoľvek menej než všetky tri je čiastočná odpoveď.
Počas testovania majte dostupný záchranný prístup, pretože experimenty s putovaním majú vo zvyku uviaznuť stroj, z ktorého pracujete. Sériová konzola alebo mimopásmová cesta premení neúspešný test na päťminútové obnovenie namiesto návštevy na mieste.
Nakoniec opíšte len prípad, ktorý ste vyskúšali. Úspešná zmena adresy počas relácie nie je dôkazom, že migrácie DNS, iná implementácia klienta alebo prestavaný profil sa budú správať rovnako. Dokumentácia link-options presne uvádza rozsah voľby; váš testovací záznam by mal uviesť, ktorú časť tohto rozsahu ste skutočne pokryli.