Prijenosnik prelazi s uredskog Wi-Fi na mobilnu pristupnu točku, tunel ostaje uspostavljen još nekoliko sekundi, a zatim promet stane dok sučelje i dalje tvrdi da je spojeno. Na poslužitelju popis stanja i dalje prikazuje staru javnu adresu. To je situacija za koju float postoji, a ujedno i situacija u kojoj ljudi od njega očekuju mnogo više nego što čini. Točno postavljena granica pretvara zbunjujuće zastajanje ili u promjenu konfiguracije u jednom retku ili u posve drugo ispitivanje.

Što float olakšava, a što nikada ne olakšava

Sesija inače nastavlja razgovarati s vanjskom adresom i portom s kojima je počela, a paketi koji dolaze bilo odakle drugdje zanemaruju se. Opcija float ukida to strogo vezivanje nakon što se partner već dokazao, pa promijenjeno preslikavanje izvora može nastaviti istu sesiju umjesto da bude odbačeno. Ništa se u kriptografskim provjerama ne mijenja: ključevi, certifikati i bilo kakva HMAC zaštita ostaju točno onako kako su konfigurirani.

Riječ je o odluci po paketu, ne o politici tko se smije spojiti. Nepoznati stroj koji pošalje paket s nove adrese nije ništa dokazao i njegov se paket odbacuje kao i svaki drugi neautentificirani promet. Samo promet koji prođe vlastitu autentifikaciju sesije može pomaknuti zabilježenu adresu partnera, i zato je float sigurno ostaviti uključenim u okruženjima u kojima klijenti lutaju.

Također ne govori ništa o unutarnjem tunelu. Pomaknuta vanjska adresa ne dodjeljuje novu adresu tunela, ne mijenja bazen i ne daje partneru pristup nečemu novom. Unutar tunela vrijede isti identitet i iste gurnute rute prije i poslije premještanja. Lutanje također ne ponovno pregovara podatkovni kanal, pa dogovorena šifra i ključevi nastavljaju.

Paket koji pomiče sesiju mora se autentificirati

Pokrenite sesiju na uobičajen način prema konfiguriranom udaljenom kraju i float rješava što se dogodi kada se preslikavanje promijeni. Mobilni operator koji prenumerira usred toka, NAT pristupnik koji prepisuje svoje preslikavanje porta ili prijenosnik koji prebaci uzlazni kanal daju isti oblik: autentificirani paketi iz nove tuple, koji dolaze u sesiju koja još vjeruje u staru.

Kad vas pitaju radi li float, koristan dokaz je dovršeno rukovanje nakon kojeg je prihvaćena promjena izvora, a ne samo redak u zapisniku o adresi. Povežite staru i novu vanjsku adresu sa sesijom koja je ostala živa, zatim potvrdite da je promet doista nastavljen kroz tunel.

Ako sesija umre umjesto da se pomakne, paket koji je stigao s nove adrese vjerojatno nije prošao autentifikaciju ili nije uopće stigao. Oba slučaja sa strane klijenta izgledaju jednako. Na poslužitelju, snimka na javnom sučelju kaže vam koji od njih imate prije nego što dotaknete bilo koju konfiguraciju.

Otkrivanje je posve odvojen mehanizam

float ne razrješava imena po mjeraču vremena i ne prati dinamički DNS zapis. Ako se ime hosta poslužitelja počne razrješavati na novu adresu, nezaposleni klijent nema razloga to primijetiti i nema paket s nove završne točke koji bi autentificirao. Taj problem pripada logici ponovnog povezivanja, vlastitom ponašanju klijenta pri ponovnom pokušaju i DNS-u, a ne floatu.

Dodavanje opcije još jednom ne može nadoknaditi nedostatak rute do nove adrese. Ne pomaže ni kad partner šuti, jer šutljivi partner nikada ne šalje autentificirani paket koji bi nešto pomaknuo.

Donji vatrozid također ima riječ. Pravilo koje dopušta samo staru vanjsku završnu točku blokira promijenjenu adresu prije nego što je OpenVPN uopće vidi, i nikakva klijentska konfiguracija to ne ispravlja. Pregledajte životni ciklus dopuštenih adresa kao zaseban zadatak; proširenje pravila na bilo koji izvor mijenja mali problem za veliki.

Kada NetworkManager posjeduje profil

Profil naredbenog retka i uvezena veza zasebne su konfiguracije i uređivanje jedne ne dira drugu. Prije nego pretpostavite da opcija nije podržana, utvrdite koju vrstu dodatka spremljeni profil doista rabi i gdje žive njegove vrijednosti. UUID profila identifikator je koji je važan kada bilo što pregledavate ili mijenjate.

Pregledajte spremljenu vezu, a ne izvornu datoteku uvoza. Redak koji preživi u datoteci .ovpn ništa ne dokazuje ako ga aktivni upravitelj nikada nije primijenio, a ni uređivač bez potvrdnog okvira za zadanu opciju ne dokazuje ništa o mogućnostima protokola.

Ne krpajte pakirani dodatak da biste dodali ponašanje, osobito ne razlikom napisanom za povijesnu inačicu nepovezane komponente. Ako ugrađena integracija doista ne može izraziti postavku, ispravan potez je podržani profil ili drugi klijentski put koji odobri vlasnik instalacije.

Dokažite prijelaz umjesto da ga pretpostavljate

Provedite test onako kako se kvar događa. Spojite se, provjerite promet kroz tunel, prisilite vanjsku adresu na promjenu i zatim provjerite tri stvari: sesija još postoji, zabilježena adresa partnera se pomaknula i stvarni zahtjev još stiže na odredište. Bilo što manje od sve tri djelomičan je odgovor.

Držite pristup za oporavak dostupnim dok testirate, jer pokusi lutanja imaju običaj ostaviti stroj s kojeg radite nasukan. Serijska konzola ili izvanpojasna ruta pretvara neuspjeli test u oporavak od pet minuta umjesto posjeta lokaciji.

Naposljetku, opišite samo slučaj koji ste provjerili. Uspješna promjena adrese tijekom sesije nije dokaz da će se DNS migracije, druga klijentska implementacija ili ponovno izgrađen profil ponašati isto. Dokumentacija za link-options točno navodi opseg opcije; vaš zapisnik testa treba navesti koji ste dio tog opsega doista pokrili.

Povezani članci