Jump to content

Микротик - выполнить редирект (пере-направление) ip-адреса


Recommended Posts

Posted

Доброго времени суток.
Дано:
Сеть офиса 192.168.1.0
Сеть филиала 192.168.2.0

В офисе была файлопомойка с адресом 192.168.1.10, которая внезапно скончалась (затопило нафик, по самый потолок).
В филиале есть подобный внутренний сервер с адресом 192.168.2.10

В офисе на белом IP висит Микротик, на который по OVPN коннектится файловый сервер филиала (я на него клиент OVPN ткнул).
Сервер OVPN на Микротике имеет адрес 10.0.0.1.
Файлопомойка филиала соответственно коннектится в режиме IP (т.е. не бридж, с бриджем не работает, зараза) и получает адрес 10.0.0.2 OVPN сервера.

Если из сети офиса обратиться на 10.0.0.2 - можно попасть на файловый сервер филиала.

Как перенаправить офисные запросы пользователей к умершему 192.168.1.10 (которого физически в сети уже нет) - на 10.0.0.2, не меняя у юзеров на рабочих столах ярлыки со ссылкой на соответствующий сетевой ресурс?

Переделывать у всех ярлыки на 192.168.2.10 просто нет возможности (и пароли заново вбивать), да и менять потом назад, если купят новый девайс, выше моих сил.

Posted

DNS придумали как раз для этого, чтобы каждый раз IP адреса у всех пользователей не менять.

Настройте сейчас один раз у всех, потом будете только на DNS сервере адрес менять.

 

Posted (edited)

Попробуй так:

 

/ip firewall nat
add action=netmap chain=dstnat dst-address=192.168.1.10 to-addresses=10.0.0.2

 

правило должно работать если не в одной подсети.

 

А вообще конечно надо было сразу создавать локальное доменное имя в статик днс и привязать к ip OVPN сервера, и завернуть все локальные запросы на 53 порт, на микротик.

Edited by jora_1
Posted
4 минуты назад, jora_1 сказал:

Попробуй так

/ip firewall nat
add action=netmap chain=dstnat dst-address=192.168.1.10 to-addresses=10.0.0.2

Притащил один микротик домой, сделал его шлюзом и сымитировал эти правила на нём для домашних ПК: правило не срабатывает, счётчик пакетов на нём=0 захожу в шары туда, куда и стучусь. т.е. пере-направления нет.

Сделал:

add action=netmap chain=dstnat dst-address=192.168.1.9 to-addresses=192.168.1.99

Где 192.168.1.9 - ноутбук, а 192.168.1.99 - десктоп. Т.е упростил задачу, но увы. Хотя да, в нескольких источниках пишется нечто подобное.

@McSea За подсказку про DNS спасибо, учту, но именно сейчас и в данной ситуации это действительно проблемно делать.

Posted (edited)

Где 192.168.1.9 - ноутбук, а 192.168.1.99 - десктоп. 

Я же написал, разные подсети должны быть, что бы локальный траффик через шлюз микрота ходил.

Edited by jora_1
Posted

вот полные правила

 

/ip address
add address=192.168.1.1/24 interface=bridge1_lan
add address=10.0.0.1/24 interface=bridge1_lan


/ip firewall nat
add action=masquerade chain=srcnat
add action=netmap chain=dstnat dst-address=192.168.1.10 to-addresses=10.0.0.2

 

соответственно если обращается из подсети 192.168.1.0/24, правило работать не будет, так как компы будут обращается к своей подсети без шлюза

Posted

@jora_1 Да. Так и есть сейчас проверил: с этими правилами сеть офиса по прежнему не видит 192.168.1.10, но если я подключаюсь к микротику по OVPN - у себя из дома я пингую и захожу на 192.168.10.

Т.е. для филиала таким образом можно временно не менять ярлыки, а сменить их только в центральном офисе.

Спасибо, внятно объяснили. 2 дня промучился. :)

Posted

Если у вас компы в сети 192.168.1.0/24, а хранилка 1.10

То чтобы пакеты шли на мнимую хранилку, нужно чтобы кто-то откликался по arp протоколу на этот адрес. Следовательно на микротике в офисе на интерфейсе в локалку нужно повесить этот адрес вторым в дополнение к основному.

Posted (edited)

@naves Ну да, тогда можно будет подменять ip адрес и в сети офиса, даже не кто-то должен откликаться, а сам микротик на офис лан интерфейсе. Главное, что-бы арп таблицы на самих устройствах обновилась, которые делают запрос.

 

тогда вот правила :

/ip address
add address=192.168.1.1/24 interface=lan_interface
add address=192.168.1.10/24 interface=lan_interface
add address=10.0.0.1/24 interface=lan_interface



/ip firewall nat
add action=masquerade chain=srcnat
add action=netmap chain=dstnat dst-address=192.168.1.10 to-addresses=10.0.0.2

 

Edited by jora_1
Posted (edited)

@naves Большое спасибо, помог Ваш совет. Я догадывался что в этом дело, но как заметил уважаемый @jora_1  - надо было проверять это между разными подсетями, в одной у меня конечно не получилось смоделировать ситуацию. А ещё совсем забыл о возможности повесить на ИФ - фиктивный IP. :)

 

Цитата

/ip address
add address=192.168.1.1/24 interface=lan_interface
add address=192.168.1.10/24 interface=lan_interface
add address=10.0.0.1/24 interface=lan_interface



/ip firewall nat
add action=masquerade chain=srcnat
add action=netmap chain=dstnat dst-address=192.168.1.10 to-addresses=10.0.0.2

 

@jora_1 Правила сработали, спасибо. Только маскарадинг (второе правило снизу) лишним оказался, он уже есть, поскольку офисный микротик настроен как шлюз.

А так же, в моём случае, первая и третья запись не нужны, т.к. первая прописалась при настройке сети, а вторая появляется при подключении сервера из филиала.

Итого получилось:

Цитата

/ip address
add address=192.168.1.10/24 interface=lan_interface

/ip firewall nat
add action=netmap chain=dstnat dst-address=192.168.1.10 to-addresses=10.0.0.2

Т.е. изначально Вы предлагали верное решение, надо было всего лишь заставить всех "увидеть пропащего".

 

 

Теперь добавлю инфу для тех, кому надо в этой ситуации пробросить порт (в моём примере) с шлюза с белым IP - к серверу в VPN сети. Не моё, взято и подправлено отсюда: https://sysadmins.ru/topic475938-10.html

 

#обычный проброс порта 
add chain=dstnat protocol=tcp dst-port=ваш_порт dst-address=ваш_внешний_адрес action=dst-nat to-addresses=адрес устройства_куда_прокидываем_порт to-ports=ваш_порт 
#правило, подменяющее адрес 
add chain=srcnat dst-address=адрес устройства_куда_прокидываем_порт src-address=!ваша_локальная_подсеть_на_первом_маршрутизаторе action=src-nat to-addresses=любой_свободный_адрес_из_локальной_сети_на_первом_маршрутиазторе

Для моего случая получаем:

#обычный проброс порта 
add chain=dstnat protocol=tcp dst-port=80 dst-address=ваш_внешний_адрес action=dst-nat to-addresses=10.0.0.2 to-ports=80
#правило, подменяющее адрес 
add chain=srcnat dst-address=10.0.0.2 src-address=!192.168.1.0 action=src-nat to-addresses=192.168.1.10

Обращаю внимание, что в правиле подмены адреса локальная сеть должна иметь отрицание "!" (флажок слева от адреса в интерфейсе Микротика), это не опечатка. Т.е. это правило исключается для основной подсети за шлюзом с белым IP (центрального офиса).

 

Надеюсь, кому-то сие поможет. :)

Edited by kucher4
Добавил информацию по пробросу порта в сеть vpn
Posted (edited)

Апофеоз: на ресурсе 10.0.0.2, находящемся в сети VPN - есть сайт. Как дать доступ на этот сайт изнутри сети 192.168.1.0, используя только внешний IP офиса?

Это нужно, чтобы не приходилось отключаться от офисного WiFi, если надо зайти на сайт по внешней ссылке.

Мануал "Как зайти по внешнему IP-адресу из локальной сети для MikroTik (Источник: https://lantorg.com/article/kak-zajti-po-vneshnemu-ip-adresu-iz-lokalnoj-seti-dlya-mikrotik © LanTorg.com)" тут, конечно, не срабатывает.

 

Edited by kucher4
Posted (edited)

@kucher4 попробуй маскарад без привязки к интерфейсу, тот который раньше давал и подними его вверх.

 

/ip firewall nat
add action=masquerade chain=srcnat

 

или я немного не понял вопрос, надо зайти на мнимый внешний 91.xx.xx.xx и что бы он переадресовал 10.0.0.2?

Edited by jora_1
Posted (edited)

@jora_1  Вы меня прямо спасаете сегодня, спасибо Вам большое! Два дня мучился! :)

Убрал интерфейсы в правилах и всё заработало. Я уж думал что это невозможно для данной ситуации, во всяком случае не нашёл мануалов, а где-то пишут что это слишком сложно и требует отдельных инструкций.

 

Ниже привожу что получилось, для тех кому нужно будет.

 

Правила IP - FIREWALL - NAT:

Общий маскарадинг пакетов из локалки
add chain=srcnat action=masquerade log=no log-prefix="" 

Доступ для сервера за VPN
add chain=dstnat action=dst-nat to-addresses=10.0.0.2 protocol=tcp dst-port=80 log=no log-prefix="" 

Доступ для сервера VPN (2-ое, обратное правило)
add chain=srcnat action=src-nat to-addresses=192.168.1.10 src-address=!192.68.1.0 dst-address=10.0.0.2 log=no log-prefix="" 

Правило редиректа с фиктивного адреса на сервер в сети VPN
add chain=dstnat action=netmap to-addresses=10.0.0.2 dst-address=192.168.1.10 log=no log-prefix="" 

Где:

- 192.168.1.0 - собственно локальная сеть за Микротиком.

- 192.168.1.10 - это фиктивный IP-адрес в локальной сети Микротика (в мануале написано что он может быть любым, но обязательно принадлежать этой же локальной сети, но в  моём случае на этом адресе был сервер сети, который помер и нужно было выйти из ситуации, сделав редирект на другой сервер в сети VPN Микротика, не меняя ярлыки на столах пользователей), просто висящий на интерфейсе BRIDGE Микротика; он пингуется, при этом за него "отвечает" сам Микротик.

- 10.0.0.2 - это адрес хоста (ПК, на котором в данном случае висит сайт на 80-ом порту) в VPN-сети, который подключается к серверу VPN, настроенному в самом Микротике и получает таким образом доступ в локальную сеть 192.168.1.0.

 

Записи IP-ADRESSES (от @jora_1 ):

add address=192.168.1.1/24 interface=lan_interface
add address=192.168.1.10/24 interface=lan_interface
add address=10.0.0.1/24 interface=lan_interface

В моём случае первая (шлюз локальной сети за Микротиком) и третья (шлюз сервера VPN на самом Микротике) записи появились автоматически, в результате добавления правил IP NAT и настройки сервера VPN, т.е. мне надо было всего лишь второй записью прописать алиас IP-адреса 192.168.1.10 на микротике, чтобы он появился в ARP-записях ПК в сети и пошли пакетики.

 

Всех с наступающими праздниками! :)

Edited by kucher4
Posted
10 часов назад, kucher4 сказал:

Доступ для сервера VPN (2-ое, обратное правило) add chain=srcnat action=src-nat to-addresses=192.168.1.10 src-address=!192.68.1.0 dst-address=10.0.0.2 log=no log-prefix=""

наверно так?

add chain=srcnat action=src-nat to-addresses=192.168.1.10 src-address=!192.168.1.0/24 dst-address=10.0.0.2 log=no log-prefix=""

маску подсети забыл, или микрот и без маски понял, что 256 ip) ?

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.