Jeden notebook drží tunel, zbytek domácnosti chce stejný přístup a první pokus je nasměrovat vše na připojený stroj. Selhává z důvodů, které s VPN nemají nic společného: přijímající hostitel musí paket přesměrovat, přepsat jeho zdroj a zajistit, aby se odpovědi dostaly zpět. Vynecháte-li kteroukoli ze tří věcí, připojený notebook funguje dál, zatímco všechna ostatní zařízení vyprší. Řešením je návrh směrování, ne nastavení klienta.

Proč nasměrování zařízení na hostitele nefunguje

Hostitel, který obdrží paket adresovaný vzdálené síti, se pro tu chvíli stane routerem, ať už ho tak někdo nakonfiguroval, nebo ne. Přesměrování je ve výchozím nastavení vypnuté na Linuxu i Windows, dokud ho nějaká funkce nezapne. Překlad je důležitý, protože vzdálená strana musí vědět, kam posílat odpovědi, a privátní adresa LAN pro ni nic neznamená. Zpětná trasa je třetí díl a právě na ni lidé zapomínají, když první ping vypadá úspěšně.

Diagnostikujte v tomto pořadí, místo abyste náhodně přepínali nastavení. Každý chybějící díl vytváří mírně odlišný příznak.

Zapněte přesměrování a překlad na hostiteli

Dvě změny na připojeném hostiteli pokrývají první dva díly: zapněte přesměrování IPv4 a přeložte provoz LAN na rozhraní tunelu.

sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

Uložte hodnotu sysctl do souboru pod /etc/sysctl.d a po restartu znovu zkontrolujte pravidlo MASQUERADE, protože frontendy firewallu mohou vyčistit vlastní řetězce. Ve Windows funkce sdílení provádí oba kroky, ale také přeadresuje adaptér LAN na pevnou podsíť a vymaže její bránu, což rozbíjí statické adresování a přesměrování portů. Obnovte cestu routeru k hostiteli na jeho nové adrese, než usoudíte, že sdílení selhalo. Potom sledujte, jak počítadla pravidel rostou, když druhé zařízení posílá provoz.

Dejte LAN cestu, která přežije restart

Ostatní zařízení potřebují trasu ke vzdálenému prefixu a dva způsoby, jak ji zajistit, se liší rozsahem dopadu.

ip route add 10.8.0.0/24 via 192.168.1.20 dev eth0

Nasměrování výchozí brány klienta na hostitele posílá veškerý jeho provoz přes hostitele, včetně místního tisku a sdílení souborů, takže nesouvisející věci se zastaví, když hostitel spí. Přidání konkrétní trasy na routeru pro vzdálený prefix je užší: do připojeného stroje jdou jen cíle za tunelem a zbytek LAN funguje dál. Výše uvedené podsítě jsou příklady, takže je nahraďte svými rozsahy LAN a tunelu. V každém případě testujte z druhého zařízení s tunelem zapnutým a potom vypnutým.

Sledujte MTU, než obviníte tunel

Tunely zmenšují použitelnou velikost paketu a druhé zařízení o tom nemá ponětí. Velké přenosy a TLS podání ruky se zaseknou, zatímco malé požadavky uspějí.

ping -M do -s 1400 10.8.0.5

Odpověď dokazuje, že tato velikost prochází cestou bez fragmentace; vypršení znamená, že režie zapouzdření vytlačila paket za MTU tunelu. Snižte MTU na rozhraní pro sdílení nebo omezte maximální velikost segmentu na přesměrovávači a poté zopakujte stejnou zkoušku. Nejprve otestujte stejnou velikost na straně LAN, protože místní selhání ukazuje na LAN, ne na tunel. Zapište si funkční velikost, protože pozdější změna poskytovatele nebo tunelu ji může posunout.

Pro jedno zařízení navíc stačí sdílení z hostitele. Pro domácnost dejte trasu na router. Když má přístup přežít odchod notebooku s vámi, tunel sám patří vyhrazené bráně.

Související články