Staviti cijeli LAN iza VPN tunela je lakši 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 originalne adrese i zahtijeva da udaljena strana zna kako do njih. Nijedno nije zadano; izbor slijedi iz toga kome pripada udaljena strana i da li je 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 provajdera koji odbija da ih nosi. Pristupnik postaje i izvor svake veze, pa udaljena strana ne može razlikovati dva klijenta.

Usmjeravanje po politici zadržava adresu svakog klijenta netaknutom. Udaljena mreža vidi stvarni izvor i može ga zapisati, primijeniti pravilo po hostu ili poslati odgovor direktno na tu adresu. Ta vidljivost je cijela poenta i dolazi s obavezom: 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 popravka pripada udaljenom ruteru, 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, tabela filtera mora dopustiti tranzit u oba smjera, i tek tada se translacija primjenjuje na interfejsu 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 ruter, ili nose specifičnu rutu za udaljeni prefiks; ako zasebni ruter ostane zadani, tom ruteru 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. Resolver 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 resolvera već zadovoljen; kod usmjeravanja po politici resolveru treba ista povratna ruta kao i svakoj drugoj udaljenoj usluzi.

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

Usmjeravanje po politici počinje tabelom i pravilom koje je bira. Saobraćaj koji ulazi s LAN interfejsa šalje se u namjensku tabelu, a ta tabela nosi zadanu rutu kroz tunel. Glavna tabela ostaje netaknuta, pa saobraćaj koji potič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 ruteru, ne na ovom pristupniku. Pristupnik također mora prihvatiti odgovore koji stižu na drugi interfejs nego što bi glavna tabela predvidjela; labavo filtriranje obrnutog puta (rp_filter postavljen na 2) uobičajna je prilagodba kada strogi režim odbaci te pakete.

Kada su dva tunela aktivna, označite svaki tok pri ulasku i pustite oznaku da izabere tabelu. Pravilo koje gleda samo ulazni interfejs šalje saobraćaj oba tunela u istu tabelu, pa drugi tunel krade tokove prvom. 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 šta udaljena strana bilježi

Ako tunel završava kod provajdera, koristite maskaradu. Taj operater neće usmjeravati vaše privatne LAN opsege 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 translaciju na svojoj ivici. Provajder 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 firewall-a, pristup po korisniku i revizijski logovi tada mogu razlikovati klijente. Ako udaljenoj strani treba samo dostupnost, maskarada je jednostavnija i uklanja čitavu klasu grešaka s povratnom rutom.

Hibridni dizajni su normalni: usmjeravanje po politici unutar vaše mreže, maskarada na ivici provajdera. Važno je zapisati koji hop prevodi i koji hop usmjerava, jer slučajno NAT pravilo dodano za jednog klijenta skriva izvor za svakog klijenta u istom lancu.

Provjerite s klijenta, pa s drugog klijenta

Pokrenite test tamo gdje saobraćaj počinje. Provjerite rutu koju host koristi, gledajte kako se paket pojavljuje na interfejsu tunela i pregledajte conntrack radi translacije. 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 interfejs preživljava novu adresu tunela; pravilo koje imenuje staru adresu ne preživljava. Zatim testirajte drugi LAN host, jer dizajn koji radi na jednoj mašini često zavisi od vlastite rute te mašine, a ne od politike 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 postavka postaje djelimična.

Povezani članci