Delite jednu VPN vezu sa svim uređajima na vašoj LAN mreži
Deljenje tunela zahteva prosleđivanje, prevođenje adresa i povratnu putanju. Uporedite deljenje sa hosta, rutu rutera do tog hosta i gejtvej koji poseduje tunel.
Jedan laptop drži tunel, ostatak domaćinstva želi isti pristup, a prvi pokušaj je da se sve usmeri na povezanu mašinu. To ne uspeva iz razloga koji nemaju nikakve veze sa VPN-om: host koji prima mora da prosledi paket, prepiše njegov izvor i osigura da odgovori pronađu put nazad. Ako izostavite bilo šta od tri, povezani laptop nastavlja da radi, dok svaki drugi uređaj ne dobija odgovor. Rešenje je projekat rutiranja, a ne podešavanje klijenta.
Zašto usmeravanje uređaja na host ne uspeva
Host koji primi paket adresiran na udaljenu mrežu postaje ruter za taj trenutak, bez obzira na to da li ga je neko tako konfigurisao. Prosleđivanje je u Linuxu i Windowsu podrazumevano isključeno, osim ako ga neka funkcija uključi. Prevođenje adresa je važno jer udaljena strana mora da zna kuda da šalje odgovore, a privatna LAN adresa za nju ništa ne znači. Povratna putanja je treći deo, i baš nju ljudi zaborave kada se prvi ping učini uspešnim.
Dijagnostikujte tim redosledom umesto da nasumično uključujete i isključujete podešavanja. Svaki deo koji nedostaje daje nešto drugačiji simptom.
Uključite prosleđivanje i prevođenje adresa na hostu
Dve izmene na povezanom hostu pokrivaju prva dva dela: uključite prosleđivanje IPv4 i prevedite LAN saobraćaj na interfejs tunela.
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADESačuvajte sysctl vrednost u datoteci pod /etc/sysctl.d i ponovo proverite masquerade pravilo nakon ponovnog pokretanja, jer čeoni delovi zaštitnog zida mogu da isprazne prilagođene lance. U Windowsu funkcija deljenja izvodi oba koraka, ali i ponovo adresira LAN adapter na fiksnu podmrežu i briše njegov gejtvej, što kvari statičko adresiranje i prosleđivanje portova. Vratite putanju rutera do hosta na njegovoj novoj adresi pre nego što zaključite da deljenje nije uspelo. Zatim gledajte kako brojači pravila rastu dok drugi uređaj šalje saobraćaj.
Dajte LAN-u putanju koja preživljava ponovna pokretanja
Ostali uređaji trebaju rutu do udaljenog prefiksa, a dva načina da se ona obezbedi razlikuju se po obimu uticaja.
ip route add 10.8.0.0/24 via 192.168.1.20 dev eth0Usmeravanje podrazumevanog gejtveja klijenta na host šalje sav njegov saobraćaj kroz host, uključujući lokalno štampanje i deljenje datoteka, pa se nepovezane stvari zaustavljaju kada host zaspi. Dodavanje konkretne rute na ruteru za udaljeni prefiks je uže: samo odredišta iza tunela idu na povezanu mašinu, a ostatak LAN-a nastavlja da radi. Podmreže iznad su primeri, pa ih zamenite sopstvenim opsezima LAN-a i tunela. U svakom slučaju, testirajte sa drugog uređaja sa uključenim, a zatim isključenim tunelom.
Obratite pažnju na MTU pre nego što okrivite tunel
Tuneli smanjuju upotrebljivu veličinu paketa, a drugi uređaj o tome nema pojma. Veliki prenosi i TLS rukovanja zastaju dok mali zahtevi uspevaju.
ping -M do -s 1400 10.8.0.5Odgovor dokazuje da ta veličina prelazi putanju bez fragmentacije; istek vremena znači da je teret inkapsulacije gurnuo paket izvan MTU-a tunela. Smanjite MTU na interfejsu deljenja ili ograničite maksimalnu veličinu segmenta na uređaju koji prosleđuje, pa ponovite istu proveru. Prvo testirajte istu veličinu na LAN strani, jer lokalni neuspeh ukazuje na LAN, a ne na tunel. Zapišite veličinu koja radi, jer kasnija promena provajdera ili tunela može da je pomeri.
Za jedan dodatni uređaj dovoljno je deljenje sa hosta. Za domaćinstvo stavite rutu na ruter. Kada pristup mora da preživi odlazak laptopa sa vama, sam tunel pripada posvećenom gejtveju.