Pridajte predvolenú cestu cez tunel a vlastné pakety tunela ju budú nasledovať. Tabuľka potom obsahuje pravidlo, ktoré samo seba ruší. Šifrované spojenie so serverom sa snaží ísť vnútri spojenia, ktoré sa snaží nadviazať.

Dva mechanizmy bránia tejto slučke. Jeden je viditeľný v smerovacej tabuľke, druhý žije vnútri aplikácie.

Vnútorná a vonkajšia prevádzka sú rôzne rozhodnutia

Paket aplikácie vstúpi do virtuálneho rozhrania a je zapuzdrený. Výsledkom je nový paket adresovaný na verejnú adresu servera. Ten paket potrebuje cestu vo fyzickej sieti, pretože nič z neho nesmie vstúpiť do tunela.

Obe sú smerovacie rozhodnutia a iba prvé patrí tunelu. Keď klient nainštaluje predvolenú cestu, ktorá pokrýva aj server, vonkajší paket je tiež zachytený.

Príznaky sú okamžité a úplné. Handshake sa dokončí a potom nič netečie, alebo spojenie spadne v okamihu inštalácie cesty. V oboch prípadoch keepalive už nemôže odísť.

Možnosť jedna: hostiteľská cesta ku koncovému bodu

Priamy prístup pridá cestu k adrese servera cez pôvodnú bránu. Zaberie jeden riadok. Je viditeľná pre každého, kto tabuľku číta. Tiež sa ľahko vysvetľuje v zázname o zmene.

Jej slabina sa objaví, keď sa zmení podkladová trasa. Uložená cesta pomenúva bránu a rozhranie zo starej siete. Po prepnutí Wi-Fi tá brána nemusí existovať a cesta zostane, vyzerá správne a nič nerobí.

# 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

Názov hostiteľa to sťažuje. Ak je koncový bod názvom, ktorý sa prekladá na niekoľko adries, výnimka musí pokryť adresu, ktorá sa skutočne používa. Neskoršie vyhľadanie môže vrátiť niečo, čo cesta nikdy nepokrývala.

Možnosť dva: chrániť socket

Druhý prístup sa smerovacej tabuľky nikdy nedotkne. Klient označí alebo ochráni socket, ktorý nesie tunel, takže operačný systém posiela prevádzku tohto socketu mimo tunela podľa zásady. Android sprístupňuje mechanizmus priamo aplikáciám VPN. Desktopoví klienti implementujú ekvivalenty pomocou značiek firewallu alebo volaní pripojenia k zariadeniu.

Výhodou je, že výnimka sleduje spojenie, nie uloženú bránu. Zmena siete prepíše podkladovú trasu a chránený socket sa s ňou presunie, pretože nikdy nebol pripnutý k adrese. Smerovacia tabuľka zostáva čistá.

Cenou je viditeľnosť. Nič v smerovacej tabuľke výnimku neukazuje, takže recenzent hľadajúci hostiteľskú cestu nič nenájde a môže usúdiť, že návrh je nebezpečný. Ochrana žije v kóde klienta a v pravidlách zásad, ktoré tento kód inštaluje.

Výber medzi nimi

Zvoľte mechanizmus na úrovni socketu, keď ho klient podporuje, pretože prežije zmeny siete, ktoré pripnutú cestu zlomia. Zvoľte hostiteľskú cestu, keď výnimka musí byť viditeľná pre iné nástroje alebo keď klient neponúka nič lepšie.

Ani jeden mechanizmus neruší potrebu, aby adresa servera bola vôbec dostupná. Privátna brána má verejnú adresu na počúvanie a práve táto adresa musí zostať mimo tunela. Vnútorné siete za ňou sa stanú dostupnými až po tom, čo tunel existuje.

Čokoľvek si vyberiete, držte to pri komponente, ktorý tunel vlastní. Zblúdilá hostiteľská cesta pridaná ručne funguje do ďalšej siete a potom sa stane zajtrajším záhadným výpadkom.

Súvisiace články