Дом и канцеларија обоје користе 192.168.1.0/24, па захтев за 192.168.1.1 има два могућа одговора и клијент бира један без питања. Пренумерисање радне канцеларијске мреже ретко је популарно, а адресе рутера су често уграђене у штампаче, камере и документацију. Мапирање адреса на страни клијента може уместо тога приказати удаљену мрежу под слободним опсегом, а део за хоста може остати исти, тако да се 192.168.1.20 појављује као 10.203.41.20. Заплет је у томе што га примењују само неки клијенти и што не чини ништа за повратни пут.

Два погледа на исти хост

Мапирање задржава део за хоста и мења само мрежни део. Исти уређај тада одговара на две адресе у зависности од тога где стојите. Записивање оба ступца пре било каквог подешавања спречава касније погрешно читање дневника и правила заштитног зида.

The application dialsThe remote device is
10.203.41.1192.168.1.1
10.203.41.20192.168.1.20

Локални уређаји код куће задржавају своје адресе 192.168.1.x, и у томе је поента вежбе. Штампач у суседној соби остаје доступан док се канцеларија појављује под опсегом који се не преклапа.

Редослед аргумената је цео трик

Опција прима смер, мрежу и маску, и алијас: прва мрежа је оно што клијент види, алијас је оно што сервер види. За ресурсе који се налазе иза удаљеног гејтвеја смер је облик одредишта. Замена двеју мрежа зато што се последњи аргумент зове алијас грешка је која ствара тунел који се повезује и ништа не мапира.

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"

Рута је оно што шаље пакете клијента за нови опсег у тунел; превод преписује одредиште на путу. Одговор са 192.168.1.20 преписује се назад у 10.203.41.20 тако да сокет на клијенту остане доследан. Један хост ради исто са маском пуне дужине, све док рута и мапирање описују исту адресу.

Ово је мапирање адреса, не мапирање портова. Две услуге на једном хосту не могу се тако раздвојити, а протокол који уграђује IP адресе у свој носиви терет и даље ће видети праве.

Мапирање не ствара повратни пут

Превод се дешава на клијенту, па сервер и даље мора да усмерава одговоре у тунел и његов заштитни зид и даље мора да их дозволи. Ако удаљени гејтвеј не зна како да дође до подмреже тунела, захтев стиже а одговор излази на погрешна врата; мапирање само чини да квар изгледа као проблем клијента.

Правила на страни сервера треба да описују адресе које постоје на серверу после превода, а не опсег видљив клијенту. Копирање алијаса у правило дозволе троши поподне, јер ниједан пакет на тој страни га не носи.

Изаберите опсег алијаса који се не преклапа ни са чим другим што клијент усмерава: друга VPN, контејнерска мрежа, друга канцеларија. Преклапање овде поново уводи првобитну двосмисленост под другим бројем и теже се примећује јер адресе изгледају непознато.

Имена и носиви терети преживљавају превод

Име хоста које се разрешава на прави 192.168.1.20 шаље прегледач на локални уређај уместо на удаљени, без обзира шта каже табела усмеравања. Одговор приватног DNS-а мора да показује на опсег видљив клијенту, док TLS сертификат и даље носи име које апликација очекује. Тестирајте именом, а не адресом, јер адреса може да ради док се име тихо разрешава у погрешном смеру. Када удаљени гејтвеј такође опслужује ту зону, и његови сопствени записи требају опсег видљив клијенту.

Преусмеравања, уграђени URL-ови и апликације које у носивом терету дају сопствену адресу могу се покварити на начине које ниједно мапирање пакета не може поправити. Третирајте их као проблем апликације и процените труд у складу са тим пре него што обећате да пренумерисање није потребно.

Три провере пре обавезе

Прво, потврдите имплементацију клијента. Community OpenVPN подржава ову опцију; кодна база OpenVPN 3 наводи је међу неподржаним функцијама, па профил послат клијенту у стилу Connect може је једноставно игнорисати. Директива која се прихвати и никада не примени гора је од грешке, јер тунел изгледа здрав.

Друго, проверите руту и превод одвојено кратким дијагностичким прозором при високој детаљности, а затим тестирајте стварну услугу уместо ping-а. Треће, потврдите да локални рутер и удаљени ресурс остају разлучиви од клијента, јер то је био првобитни циљ.

Ако клијент не може да обави превод, затражите помоћ са стране гејтвеја или прихватите пренумерисање. Додавање још рута за исту адресу није дизајн.

Повезани чланци