Tá istá podsieť na oboch koncoch: namapujte vzdialenú LAN na voľný rozsah
Mapovanie adries na strane klienta môže zobraziť prekrývajúcu sa vzdialenú LAN pod voľným rozsahom, ale uplatňujú ho len niektorí klienti a spiatočná cesta musí existovať tak či tak.
Domov aj kancelária používajú 192.168.1.0/24, takže požiadavka na 192.168.1.1 má dve možné odpovede a klient si jednu vyberie bez toho, aby sa spýtal. Prečíslovanie fungujúcej kancelárskej siete je zriedka populárne a adresy routera sú často zapečené do tlačiarní, kamier a dokumentácie. Mapovanie adries na strane klienta môže namiesto toho zobraziť vzdialenú sieť pod voľným rozsahom a hostiteľská časť môže zostať rovnaká, takže sa 192.168.1.20 javí ako 10.203.41.20. Háčik je v tom, že ho implementujú len niektorí klienti a že pre spiatočnú cestu nerobí nič.
Dva pohľady na toho istého hostiteľa
Mapovanie zachováva hostiteľskú časť a mení iba sieťovú časť. Ten istý stroj potom odpovedá na dvoch adresách podľa toho, kde stojíte. Zapísanie oboch stĺpcov pred akoukoľvek konfiguráciou zabráni neskoršiemu chybnému čítaniu logov a pravidiel firewallu.
| The application dials | The remote device is |
|---|---|
| 10.203.41.1 | 192.168.1.1 |
| 10.203.41.20 | 192.168.1.20 |
Miestne zariadenia doma si zachovávajú svoje adresy 192.168.1.x a o to v tomto cvičení ide. Tlačiareň vo vedľajšej miestnosti zostáva dostupná, kým sa kancelária zobrazuje pod rozsahom, ktorý nekoliduje.
Poradie argumentov je celý trik
Voľba preberá smer, sieť a masku a tiež alias: prvá sieť je to, čo vidí klient, alias je to, čo vidí server. Pre prostriedky, ktoré žijú za vzdialenou bránou, je smerom cieľová forma. Prehodenie oboch sietí preto, že posledný argument sa nazýva alias, je chyba, ktorá vytvorí tunel, ktorý sa pripojí a nič 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, čo posiela pakety klienta pre nový rozsah do tunela; preklad prepisuje cieľ na ceste. Odpoveď z 192.168.1.20 sa prepíše späť na 10.203.41.20, aby socket na klientovi zostal konzistentný. Jediný hostiteľ funguje rovnako s maskou plnej dĺžky, pokiaľ trasa a mapovanie opisujú rovnakú adresu.
Toto je mapovanie adries, nie mapovanie portov. Dve služby na jednom hostiteľovi sa ním nedajú oddeliť a protokol, ktorý vkladá IP adresy do svojho payloadu, napriek tomu uvidí tie skutočné.
Mapovanie nevytvára spiatočnú cestu
Preklad prebieha na klientovi, takže server stále musí smerovať odpovede do tunela a jeho firewall ich stále musí povoľovať. Ak vzdialená brána nevie, ako dosiahnuť podsieť tunela, požiadavka dorazí a odpoveď odíde nesprávnymi dverami; mapovanie len spôsobí, že porucha vyzerá ako problém klienta.
Pravidlá na strane servera by mali opisovať adresy, ktoré na serveri existujú po preklade, nie rozsah viditeľný klientom. Kopírovanie aliasu do povoľovacieho pravidla premárni popoludnie, pretože žiadny paket na tej strane ho nenesie.
Vyberte rozsah aliasu, ktorý nekoliduje s ničím iným, čo klient smeruje: iná VPN, kontajnerová sieť, druhá kancelária. Kolízia tu znovu zavádza pôvodnú nejednoznačnosť pod iným číslom a je ťažšie viditeľná, pretože adresy vyzerajú neznámo.
Mená a payloady prežijú preklad
Meno hostiteľa, ktoré sa prekladá na skutočnú 192.168.1.20, pošle prehliadač na miestne zariadenie namiesto vzdialeného, nech smerovacia tabuľka hovorí čokoľvek. Odpoveď súkromného DNS musí ukazovať na rozsah viditeľný klientom, kým TLS certifikát stále nesie meno, ktoré aplikácia očakáva. Testujte menom, nie adresou, pretože adresa môže fungovať, kým sa meno potichu prekladá nesprávnym smerom. Keď vzdialená brána obsluhuje aj tú zónu, aj jej vlastné záznamy potrebujú rozsah viditeľný klientom.
Presmerovania, vložené URL a aplikácie, ktoré vo svojom payloade vydávajú vlastnú adresu, sa môžu pokaziť spôsobmi, ktoré žiadne mapovanie paketov neopraví. Berte ich ako problém aplikácie a úsilie odhadnite podľa toho, skôr než sľúbite, že prečíslovanie nie je potrebné.
Tri kontroly pred záväzkom
Najprv potvrďte implementáciu klienta. Community OpenVPN túto voľbu podporuje; kódová základňa OpenVPN 3 ju uvádza medzi nepodporovanými funkciami, takže profil odoslaný klientovi v štýle Connect ju môže jednoducho ignorovať. Direktíva, ktorá je prijatá a nikdy sa neuplatní, je horšia ako chyba, pretože tunel vyzerá zdravo.
Zadruhé overte trasu a preklad oddelene pomocou krátkeho diagnostického okna pri vysokej podrobnosti a potom otestujte skutočnú službu namiesto ping. Zatretie potvrďte, že miestny router a vzdialený prostriedok zostávajú od klienta rozlíšiteľné, pretože to bol pôvodný cieľ.
Ak klient preklad nezvládne, požiadajte o pomoc na strane brány alebo prijmite prečíslovanie. Pridávať ďalšie trasy pre rovnakú adresu nie je dizajn.