Umístit celou LAN za VPN tunel je ta snadná část; rozhodnout, jak vzdálená strana tyto klienty vidí, už ne. Maskarád přepisuje každý zdroj LAN na adresu tunelu brány, takže vzdálený konec odpovídá jednomu peeru. Politické směrování zachovává původní adresy a vyžaduje, aby vzdálený konec věděl, jak se k nim dostat. Ani jedno není výchozí; volba vyplývá z toho, komu patří vzdálená strana a zda záleží na identitě jednotlivých zařízení.

Oba návrhy slibují různé věci

Maskarád redukuje LAN na jediného viditelného hostitele: bránu. Vzdálená síť odpovídá na tuto jedinou adresu a brána překládá odpovědi zpět klientovi, který tok zahájil. Na vzdálené straně není potřeba trasa k vašim privátním prefixům, a proto tento návrh přežije i u poskytovatele, který je odmítá přenášet. Brána se také stává zdrojem každého spojení, takže vzdálená strana nerozezná dva klienty.

Politické směrování zachovává adresu každého klienta netknutou. Vzdálená síť vidí skutečný zdroj a může jej zaznamenat, použít pravidlo pro konkrétního hostitele nebo poslat odpověď přímo na tuto adresu. Tato viditelnost je celý smysl a nese s sebou povinnost: vzdálená strana musí mít trasu pro prefix LAN, která vede zpět tunelem. Naplánujte tuto trasu dřív, než pravidlo zapnete, protože tunel se zvedne tak jako tak a chybět budou jen odpovědi.

Způsoby selhání se liší stejně jako sliby. Chybějící pravidlo maskarádu vytváří pakety, které odcházejí s privátními zdroji a nikdy se nevracejí. Chybějící zpáteční trasa dává stejný příznak u politického směrování, ale oprava patří vzdálenému routeru, ne bráně.

Maskarád: jeden peer na vzdálené straně

Cesta maskarádu má pořadí, na kterém záleží. Přesměrování musí být zapnuté, než jakékoli pravidlo NAT k něčemu poslouží, tabulka filtru musí povolit průchod v obou směrech, a teprve potom se překlad uplatní na rozhraní tunelu.

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

Klienti stále potřebují cestu k bráně. Buď je brána jejich výchozím routerem, nebo si nesou konkrétní trasu pro vzdálený prefix; pokud výchozím zůstává samostatný router, potřebuje tento router statickou trasu pro cíle tunelu, jinak paket zamíří na špatný hop, než ho brána uvidí.

DNS je samostatné rozhodnutí. Překladač na vzdálené straně odpovídá jen tehdy, může-li se jeho odpověď dostat zpět ke klientovi. Při maskarádu dotaz vypadá, že přichází z brány, takže zpáteční cesta překladače je už splněna; při politickém směrování potřebuje překladač stejnou zpáteční trasu jako kterákoli jiná vzdálená služba.

Politické směrování: zachovejte zdroj, přidejte zpáteční cestu

Politické směrování začíná tabulkou a pravidlem, které ji vybírá. Provoz vstupující z rozhraní LAN se posílá do vyhrazené tabulky a tato tabulka nese výchozí trasu tunelem. Hlavní tabulka zůstává nedotčená, takže provoz, který vytvoří sama brána, může jít jinou cestou.

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

Vzdálená strana pak musí směrovat prefix LAN zpět tunelem. To je konfigurace na vzdáleném routeru, ne na této bráně. Brána také musí přijímat odpovědi, které dorazí na jiné rozhraní, než by hlavní tabulka předpověděla; volné filtrování zpětné cesty (rp_filter nastavený na 2) je obvyklá úprava, když striktní režim tyto pakety zahodí.

Když jsou aktivní dva tunely, označte každý tok při vstupu a nechte značku vybrat tabulku. Pravidlo, které hledí jen na vstupní rozhraní, posílá provoz obou tunelů do stejné tabulky, takže druhý tunel krade toky prvnímu. Otestujte tuto značku spojením, které přežije opětovné připojení, protože tehdy se smíšená politika projeví.

Rozhodněte podle vlastnictví a podle toho, co vzdálená strana zaznamenává

Pokud tunel končí u poskytovatele, použijte maskarád. Tento operátor nebude směrovat vaše privátní rozsahy LAN a nemá důvod rozlišovat jednotlivé klienty za vaší bránou. Jeden viditelný peer je jediný model, který jeho politika podporuje, tak mu ho dejte a překlad držte na své hraně. Poskytovatel vidí jeden peer, což je přesně to, co jeho politika očekává, a vaši klienti dědí tuto jedinou identitu.

Pokud jsou oba konce vaše a vzdálené služby jednají podle zdrojových adres, politické směrování si svou trasu navíc zaslouží. Pravidla firewallu, přístup podle uživatele a auditní záznamy pak mohou klienty rozlišit. Pokud vzdálená strana potřebuje jen dostupnost, maskarád je jednodušší a odstraňuje celou třídu chyb se zpáteční trasou.

Hybridní návrhy jsou běžné: politické směrování uvnitř vaší sítě, maskarád na hraně poskytovatele. Důležité je zapsat, který hop překládá a který hop směruje, protože náhodné pravidlo NAT přidané pro jednoho klienta skryje zdroj všem klientům ve stejném řetězci.

Ověřte z klienta, pak z druhého klienta

Test spusťte tam, kde provoz začíná. Zkontrolujte trasu, kterou hostitel používá, sledujte, jak se paket objeví na rozhraní tunelu, a prohlédněte conntrack kvůli překladu. Tato posloupnost dokazuje, že paket šel zamýšlenou cestou, ne že jen někam dorazil.

Test zopakujte po opětovném připojení. Pravidlo maskarádu, které jmenuje rozhraní, přežije novou adresu tunelu; pravidlo, které jmenuje starou adresu, ne. Poté otestujte druhého hostitele LAN, protože návrh, který funguje na jednom stroji, často závisí na vlastní trase toho stroje, ne na politice brány.

Zapište zvolený model, přeložený nebo zachovaný zdroj a vlastníka zpáteční trasy do poznámek brány. Jinak bude další člověk, který přidá klienta nebo tunel, hádat, a hádání je způsob, jak se funkční zapojení LAN-do-VPN stane částečným.

Související články