Ista podmreža na oba kraja: mapirajte udaljeni LAN na slobodan raspon
Mapiranje adresa na strani klijenta može prikazati preklapajući udaljeni LAN pod slobodnim rasponom, ali ga primjenjuju samo neki klijenti i povratni put ipak mora postojati.
Dom i ured oba rade 192.168.1.0/24, pa zahtjev za 192.168.1.1 ima dva moguća odgovora i klijent odabire jedan bez pitanja. Prenumeriranje radne uredske mreže rijetko je popularno, a adrese usmjerivača često su ugrađene u pisače, kamere i dokumentaciju. Mapiranje adresa na strani klijenta može umjesto toga prikazati udaljenu mrežu pod slobodnim rasponom, a dio za hosta može ostati isti tako da se 192.168.1.20 pojavljuje kao 10.203.41.20. Kvaka je u tome što ga implementiraju samo neki klijenti i što ne radi ništa za povratni put.
Dva pogleda na isti host
Mapiranje zadržava dio za hosta i mijenja samo mrežni dio. Isti uređaj tada odgovara na dvije adrese ovisno o tome gdje stojite. Zapisivanje oba stupca prije bilo kakvog podešavanja sprječava kasnije pogrešno čitanje dnevnika i pravila vatrozida.
| The application dials | The remote device is |
|---|---|
| 10.203.41.1 | 192.168.1.1 |
| 10.203.41.20 | 192.168.1.20 |
Lokalni uređaji kod kuće zadržavaju svoje adrese 192.168.1.x, i to je poanta vježbe. Pisač u susjednoj sobi ostaje dostupan dok se ured pojavljuje pod rasponom koji se ne preklapa.
Redoslijed argumenata je cijeli trik
Opcija prima smjer, mrežu i masku te alias: prva mreža je ono što klijent vidi, alias je ono što poslužitelj vidi. Za resurse koji se nalaze iza udaljenog pristupnika smjer je oblik odredišta. Zamjena dviju mreža zato što se zadnji argument zove alias pogreška je koja stvara tunel koji se spaja i ništa ne mapira.
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"
Ruta je ono što pakete klijenta za novi raspon šalje u tunel; prijevod prepisuje odredište na prolazu. Odgovor s 192.168.1.20 prepisuje se natrag u 10.203.41.20 tako da socket na klijentu ostaje dosljedan. Jedan host radi isto s maskom pune dužine, dokle god ruta i mapiranje opisuju istu adresu.
Ovo je mapiranje adresa, ne mapiranje portova. Dvije usluge na jednom hostu ne mogu se tako razdvojiti, a protokol koji ugrađuje IP adrese u svoj payload i dalje će vidjeti prave.
Mapiranje ne stvara povratni put
Prijevod se događa na klijentu, pa poslužitelj i dalje mora usmjeravati odgovore u tunel i njegov vatrozid ih i dalje mora dopuštati. Ako udaljeni pristupnik ne zna kako doći do podmreže tunela, zahtjev stiže a odgovor izlazi kroz pogrešna vrata; mapiranje samo čini da kvar izgleda kao problem klijenta.
Pravila na strani poslužitelja trebaju opisivati adrese koje postoje na poslužitelju nakon prijevoda, a ne raspon vidljiv klijentu. Kopiranje aliasa u pravilo dopuštanja troši poslijepodne, jer nijedan paket na toj strani ga ne nosi.
Odaberite alias raspon koji se ne preklapa ni s čim drugim što klijent usmjerava: drugi VPN, kontejnerska mreža, drugi ured. Preklapanje ovdje ponovno uvodi izvornu dvosmislenost pod drugim brojem i teže se vidi jer adrese izgledaju nepoznato.
Imena i payload preživljavaju prijevod
Ime hosta koje se razrješava na pravi 192.168.1.20 šalje preglednik na lokalni uređaj umjesto na udaljeni, bez obzira što kaže tablica usmjeravanja. Odgovor privatnog DNS-a mora pokazivati na raspon vidljiv klijentu, dok TLS certifikat i dalje nosi ime koje aplikacija očekuje. Testirajte imenom, a ne adresom, jer adresa može raditi dok se ime tiho razrješava u pogrešnom smjeru. Kada udaljeni pristupnik također poslužuje tu zonu, i njegovi zapisi trebaju raspon vidljiv klijentu.
Preusmjeravanja, ugrađeni URL-ovi i aplikacije koje u payloadu daju vlastitu adresu mogu se pokvariti na načine koje nijedno mapiranje paketa ne može popraviti. Tretirajte ih kao problem aplikacije i procijenite trud u skladu s tim prije nego što obećate da prenumeriranje nije potrebno.
Tri provjere prije obveze
Prvo, potvrdite implementaciju klijenta. Community OpenVPN podržava ovu opciju; OpenVPN 3 kodna baza navodi je među nepodržanim funkcijama, pa profil poslan Connect klijentu može je jednostavno zanemariti. Direktiva koja se prihvati i nikada ne primijeni gora je od greške, jer tunel izgleda zdrav.
Drugo, provjerite rutu i prijevod odvojeno kratkim dijagnostičkim prozorom pri visokoj verbosnosti, a zatim testirajte stvarnu uslugu umjesto pinga. Treće, potvrdite da lokalni usmjerivač i udaljeni resurs ostaju razlučivi od klijenta, jer to je bio izvorni cilj.
Ako klijent ne može obaviti prijevod, zatražite pomoć sa strane pristupnika ili prihvatite prenumeriranje. Dodavanje još ruta za istu adresu nije dizajn.