Domov i kancelář používají 192.168.1.0/24, takže požadavek na 192.168.1.1 má dvě možné odpovědi a klient jednu vybere, aniž by se zeptal. Přečíslování fungující kancelářské sítě bývá málokdy populární a adresy routeru jsou často zapečené do tiskáren, kamer a dokumentace. Mapování adres na straně klienta může vzdálenou síť místo toho zobrazit pod volným rozsahem a hostitelská část může zůstat stejná, takže se 192.168.1.20 jeví jako 10.203.41.20. Háček je v tom, že ho implementují jen někteří klienti a že pro zpáteční cestu nedělá nic.

Dva pohledy na stejný host

Mapování zachovává hostitelskou část a mění pouze síťovou část. Stejný stroj pak odpovídá na dvou adresách podle toho, kde stojíte. Zapsání obou sloupců před jakoukoli konfigurací zabrání pozdějšímu chybnému čtení logů a pravidel firewallu.

The application dialsThe remote device is
10.203.41.1192.168.1.1
10.203.41.20192.168.1.20

Místní zařízení doma si ponechávají své adresy 192.168.1.x a o to v tomto cvičení jde. Tiskárna ve vedlejší místnosti zůstává dostupná, zatímco kancelář se objevuje pod rozsahem, který nekoliduje.

Pořadí argumentů je celý trik

Volba přebírá směr, síť a masku a také alias: první síť je to, co vidí klient, alias je to, co vidí server. Pro prostředky, které žijí za vzdálenou bránou, je směrem cílová forma. Prohození obou sítí proto, že poslední argument se nazývá alias, je chyba, která vytvoří tunel, jenž se připojí a nic nenamapuje.

push "route 10.203.41.0 255.255.255.0"
push "client-nat dnat 10.203.41.0 255.255.255.0 192.168.1.0"

Trasa je to, co posílá pakety klienta pro nový rozsah do tunelu; překlad přepisuje cíl na cestě. Odpověď z 192.168.1.20 se přepíše zpět na 10.203.41.20, aby socket na klientovi zůstal konzistentní. Jediný host funguje stejně s maskou plné délky, pokud trasa a mapování popisují stejnou adresu.

Toto je mapování adres, nikoli mapování portů. Dvě služby na jednom hostu s ním nelze oddělit a protokol, který vkládá IP adresy do svého payloadu, přesto uvidí ty skutečné.

Mapování nevytváří zpáteční cestu

Překlad probíhá na klientovi, takže server stále musí směrovat odpovědi do tunelu a jeho firewall je stále musí povolovat. Pokud vzdálená brána neví, jak dosáhnout podsítě tunelu, požadavek dorazí a odpověď odejde špatnými dveřmi; mapování jen způsobí, že porucha vypadá jako problém klienta.

Pravidla na straně serveru by měla popisovat adresy, které na serveru existují po překladu, ne rozsah viditelný klientem. Kopírování aliasu do povolovacího pravidla zmaří odpoledne, protože žádný paket na té straně ho nenese.

Vyberte rozsah aliasu, který nekoliduje s ničím jiným, co klient směruje: jiná VPN, kontejnerová síť, druhá kancelář. Kolize zde znovu zavádí původní nejednoznačnost pod jiným číslem a je hůř vidět, protože adresy vypadají neznámě.

Jména a payloady překlad přežijí

Jméno hostu, které se přeloží na skutečnou 192.168.1.20, pošle prohlížeč na místní zařízení místo vzdáleného, ať už směrovací tabulka říká cokoli. Odpověď privátního DNS musí ukazovat na rozsah viditelný klientem, zatímco TLS certifikát stále nese jméno, které aplikace očekává. Testujte jménem, ne adresou, protože adresa může fungovat, zatímco jméno se tiše překládá špatným směrem. Když vzdálená brána obsluhuje i tu zónu, i její vlastní záznamy potřebují rozsah viditelný klientem.

Přesměrování, vložené URL a aplikace, které ve svém payloadu vydávají vlastní adresu, se mohou rozbít způsoby, které žádné mapování paketů nespraví. Berte je jako problém aplikace a úsilí odhadněte podle toho, než slíbíte, že přečíslování není nutné.

Tři kontroly před závazkem

Nejprve potvrďte implementaci klienta. Community OpenVPN tuto volbu podporuje; kódová základna OpenVPN 3 ji uvádí mezi nepodporovanými funkcemi, takže profil odeslaný klientu ve stylu Connect ji může prostě ignorovat. Direktiva, která je přijata a nikdy se neuplatní, je horší než chyba, protože tunel vypadá zdravě.

Zadruhé ověřte trasu a překlad odděleně pomocí krátkého diagnostického okna při vysoké podrobnosti a poté otestujte skutečnou službu, ne ping. Zatřetí potvrďte, že místní router a vzdálený prostředek zůstávají od klienta rozlišitelné, protože to byl původní cíl.

Pokud klient překlad nezvládne, požádejte o pomoc na straně brány nebo přijměte přečíslování. Přidávat další trasy pro stejnou adresu není design.

Související články