Staviti cijeli LAN iza VPN tunela lakši je dio; odlučiti kako udaljena strana vidi te klijente nije. Maskarada prepisuje svaki LAN izvor na adresu tunela pristupnika, pa udaljena strana odgovara jednom peeru. Usmjeravanje po politici zadržava izvorne adrese i zahtijeva da udaljena strana zna kako do njih. Nijedno nije zadano; izbor proizlazi iz toga kome pripada udaljena strana i je li identitet po uređaju važan.

Dva dizajna obećavaju različite stvari

Maskarada svodi LAN na jednog vidljivog hosta: pristupnik. Udaljena mreža odgovara na tu jednu adresu, a pristupnik prevodi odgovore natrag klijentu koji je započeo tok. Na udaljenoj strani nije potrebna ruta do vaših privatnih prefiksa, zato ovaj dizajn preživljava kod pružatelja koji ih odbija nositi. Pristupnik postaje i izvor svake veze, pa udaljena strana ne može razlikovati dva klijenta.

Usmjeravanje po politici čuva adresu svakog klijenta netaknutom. Udaljena mreža vidi stvarni izvor i može ga zapisati, primijeniti pravilo po hostu ili poslati odgovor izravno na tu adresu. Ta je vidljivost cijela poanta i dolazi s obvezom: udaljena strana mora imati rutu za LAN prefiks koja vodi natrag kroz tunel. Isplanirajte tu rutu prije nego uključite pravilo, jer tunel će se podići u svakom slučaju, a nedostajat će samo odgovori.

Načini kvara razlikuju se koliko i obećanja. Nedostajuće pravilo maskarade daje pakete koji izlaze s privatnim izvorima i nikad se ne vraćaju. Nedostajuća povratna ruta daje isti simptom kod usmjeravanja po politici, ali popravak pripada udaljenom usmjerivaču, a ne pristupniku.

Maskarada: jedan peer na udaljenoj strani

Put maskarade ima redoslijed koji je važan. Prosljeđivanje mora biti uključeno prije nego bilo koje NAT pravilo učini nešto korisno, tablica filtra mora dopustiti tranzit u oba smjera, i tek tada se prijevod primjenjuje na sučelju tunela.

sysctl -w net.ipv4.ip_forward=1
iptables -A FORWARD -i eth1 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

Klijentima i dalje treba put do pristupnika. Ili je pristupnik njihov zadani usmjerivač, ili nose posebnu rutu za udaljeni prefiks; ako zasebni usmjerivač ostane zadani, tom usmjerivaču treba statička ruta za odredišta tunela, inače paket odlazi na pogrešan hop prije nego ga pristupnik vidi.

DNS je zasebna odluka. Razrješivač na udaljenoj strani odgovara samo ako njegov odgovor može putovati natrag do klijenta. Kod maskarade upit izgleda kao da dolazi od pristupnika, pa je povratni put razrješivača već zadovoljen; kod usmjeravanja po politici razrješivaču treba ista povratna ruta kao i svakoj drugoj udaljenoj usluzi.

Usmjeravanje po politici: zadržite izvor, dodajte povratni put

Usmjeravanje po politici počinje tablicom i pravilom koje ju bira. Promet koji ulazi sa sučelja LAN-a šalje se u namjensku tablicu, a ta tablica nosi zadanu rutu kroz tunel. Glavna tablica ostaje netaknuta, pa promet koji potječe od samog pristupnika može ići drugim putem.

ip rule add iif eth1 table vpn
ip route add default dev tun0 table vpn

Udaljena strana zatim mora usmjeriti LAN prefiks natrag kroz tunel. To je konfiguracija na udaljenom usmjerivaču, ne na ovom pristupniku. Pristupnik također mora prihvatiti odgovore koji stižu na drugo sučelje od onoga koje bi glavna tablica predvidjela; labavo filtriranje obrnutog puta (rp_filter postavljen na 2) uobičajena je prilagodba kad strogi način odbaci te pakete.

Kad su dva tunela aktivna, označite svaki tok pri ulasku i pustite oznaku da odabere tablicu. Pravilo koje gleda samo ulazno sučelje šalje promet obaju tunela u istu tablicu, pa drugi tunel krade tokove prvome. Testirajte tu oznaku vezom koja nadživi ponovno povezivanje, jer tada se miješana politika pokaže.

Odlučite po vlasništvu i po tome što udaljena strana bilježi

Ako tunel završava kod pružatelja, koristite maskaradu. Taj operater neće usmjeravati vaše privatne LAN raspone i nema razloga razlikovati pojedinačne klijente iza vašeg pristupnika. Jedan vidljiv peer jedini je model koji njegova politika podržava, pa mu to dajte i zadržite prijevod na svom rubu. Pružatelj vidi jedan peer, što je upravo ono što njegova politika očekuje, a vaši klijenti nasljeđuju taj jedinstveni identitet.

Ako su oba kraja vaša i udaljene usluge djeluju na adrese izvora, usmjeravanje po politici zaslužuje svoju dodatnu rutu. Pravila vatrozida, pristup po korisniku i revizijski zapisi tada mogu razlikovati klijente. Ako udaljenoj strani treba samo dostupnost, maskarada je jednostavnija i uklanja cijelu klasu pogrešaka s povratnom rutom.

Hibridni dizajni uobičajeni su: usmjeravanje po politici unutar vaše mreže, maskarada na rubu pružatelja. Važno je zapisati koji hop prevodi i koji hop usmjerava, jer slučajno NAT pravilo dodano za jednog klijenta skriva izvor svakom klijentu u istom lancu.

Provjerite s klijenta, pa s drugog klijenta

Pokrenite test tamo gdje promet počinje. Provjerite rutu koju host koristi, gledajte kako se paket pojavljuje na sučelju tunela i pregledajte conntrack radi prijevoda. Taj slijed dokazuje da je paket krenuo predviđenim putem, a ne da je samo negdje stigao.

Ponovite test nakon ponovnog povezivanja. Pravilo maskarade koje imenuje sučelje nadživljava novu adresu tunela; pravilo koje imenuje staru adresu ne nadživljava. Zatim testirajte drugi LAN host, jer dizajn koji radi na jednom stroju često ovisi o vlastitoj ruti tog stroja, a ne o politici pristupnika.

Zapišite odabrani model, prevedeni ili sačuvani izvor i vlasnika povratne rute u bilješke pristupnika. Inače će sljedeća osoba koja doda klijenta ili tunel nagađati, a nagađanje je kako radna LAN-do-VPN postava postaje djelomična.

Povezani članci