Puni tunel ili ruta do krajnje točke: kako zadržati VPN server dostupnim
Tunel putuje preko mreže koju zamjenjuje. Uporedite izuzetak host rute sa oznakom soketa na nivou aplikacije i saznajte kada svaki od njih zakaže.
Dodajte podrazumijevanu rutu kroz tunel i vlastiti paketi tunela će je slijediti. Tabela tada sadrži pravilo koje samo sebe pobija. Šifrovana veza sa serverom pokušava putovati unutar veze koju pokušava uspostaviti.
Dva mehanizma sprečavaju tu petlju. Jedan je vidljiv u tabeli rutiranja, drugi živi unutar aplikacije.
Unutrašnji i vanjski saobraćaj su različite odluke
Paket aplikacije ulazi u virtuelni interfejs i biva inkapsuliran. Rezultat je novi paket adresiran na javnu adresu servera. Tom paketu treba ruta na fizičkoj mreži, jer ništa od njega ne smije ući u tunel.
Oba su odluke o rutiranju, a samo prva pripada tunelu. Kada klijent instalira podrazumijevanu rutu koja pokriva i server, vanjski paket se takođe hvata.
Simptomi su trenutni i potpuni. Rukovanje se završi i zatim ništa ne teče, ili veza padne u trenutku instaliranja rute. U oba slučaja keepalive više ne može izaći.
Prva opcija: host ruta za krajnju točku
Direktan pristup dodaje rutu za adresu servera kroz originalni gateway. To traži jednu liniju. Vidljiva je svakome ko čita tabelu. Takođe se lako objašnjava u zapisu o promjeni.
Njena slabost se pojavljuje kada se osnovna putanja promijeni. Sačuvana ruta imenuje gateway i interfejs iz stare mreže. Nakon promjene Wi-Fi mreže taj gateway možda ne postoji, a ruta ostaje, izgleda ispravno i ne radi ništa.
# before the tunnel: which path reaches the endpoint?
ip route get 198.51.100.7
# pin it through the current gateway
ip route add 198.51.100.7/32 via 192.168.1.1 dev wlan0
# after the tunnel is up, confirm the pin survived
ip route get 198.51.100.7
Ime hosta to otežava. Ako je krajnja točka ime koje se razrješava u nekoliko adresa, izuzetak mora pokriti adresu koja se stvarno koristi. Kasnije pretraživanje može vratiti nešto što ruta nikada nije pokrila.
Druga opcija: zaštitite soket
Drugi pristup nikada ne dira tabelu rutiranja. Klijent označava ili štiti soket koji nosi tunel, pa operativni sistem šalje saobraćaj tog soketa izvan tunela po pravilu. Android izlaže mehanizam direktno VPN aplikacijama. Desktop klijenti implementiraju ekvivalente pomoću firewall oznaka ili poziva za vezivanje za uređaj.
Prednost je što izuzetak prati vezu, a ne sačuvani gateway. Promjena mreže prepisuje osnovnu putanju, a zaštićeni soket se kreće s njom jer nikada nije bio prikovan za adresu. Tabela ruta ostaje čista.
Cijena je vidljivost. Ništa u tabeli rutiranja ne pokazuje izuzetak, pa recenzent koji traži host rutu ne nalazi ništa i može zaključiti da je dizajn nesiguran. Zaštita živi u kodu klijenta i u pravilima politike koje taj kod instalira.
Kako birati između njih
Odaberite mehanizam na nivou soketa kada ga klijent podržava, jer preživljava promjene mreže koje lome prikovanu rutu. Odaberite host rutu kada izuzetak mora biti vidljiv drugim alatima ili kada klijent ne nudi ništa bolje.
Nijedan mehanizam ne uklanja potrebu da adresa servera uopšte bude dostupna. Privatni gateway ima javnu adresu za slušanje, i ta adresa mora ostati izvan tunela. Unutrašnje mreže iza njega postaju dostupne tek nakon što tunel postoji.
Šta god odabrali, držite to uz komponentu koja posjeduje tunel. Zalutala host ruta dodana rukom radi do sljedeće mreže, a zatim postaje misteriozni prekid sutrašnjice.