Jump to content
Калькуляторы

Проброс порта удаленного сервера

Здравствуйте дорогие форумчане.С недавних пор бьюсь с проблемой и не могу самостоятельно найти решение . Прошу у вас помощи .
Имеется две сети обе управляются роутерами Mikrotik. Первая сеть с имеет статический IP доменное имя и управляется роутером MAIN (по схеме) там много подсетей VLANы для нескольких компаний , несколько WIFI мостов и больше 15 компов. 
Вторая сеть моя домашняя имеет серый динамический IP управляется роутером SECOND имеет пару подсетей (мою и соседей) так же в моей подсети находится сервер умного дома и MQTT брокер . 
Между этими двумя сетями благополучно проброшен тунель SSTP и включена динамическая маршрутизация OSPF тачки пингуются в обоих направлениях все работает .
Теперь перед мной стоит задача пробросить порт из сервера с брокером MQTT так чтобы обращаться к нему можно было через интернет по доменному имени .

Изображение

В настоящий момент пытался добавить правило в NAT add action=dst-nat chain=dstnat dst-port=1883 in-interface=ether1-WAN \
protocol=tcp to-addresses=192.168.88.10(адрес сервера). Результата нет . Помогите настроить пожалуйста 

Share this post


Link to post
Share on other sites

В 24.03.2018 в 20:32, denilkor сказал:

T add action=dst-nat chain=dstnat dst-port=1883 in-interface=ether1-WAN \
protocol=tcp to-addresses=192.168.88.10(адрес сервера).

Во-первых, не ленитесь. Раз уже нарисовали схему, допишите адресацию к ней. 

Во-вторых, причина в том, что ближний к серверу роутер(slave) отправляет ответы клиенту сразу в Интернет. Отправляет со своего внешнего slave-IP в то время, когда клиент ждёт ответ со стороны main-IP роутера(main) к которому обратился.

Edited by nkusnetsov

Share this post


Link to post
Share on other sites

15 minutes ago, nkusnetsov said:

Во-первых, не ленитесь. Раз уже нарисовали схему, допишите адресацию к ней. 

Во-вторых, причина в том, что ближний к серверу роутер(slave) отправляет ответы клиенту сразу в Интернет. Отправляет со своего внешнего slave-IP в то время, когда клиент ждёт ответ со стороны main-IP роутера(main) к которому обратился.

 

Да действительно нехватает адресов

Screenshot_2.jpg

Share this post


Link to post
Share on other sites

3 minutes ago, nkusnetsov said:

@denilkor , как-то так оно происходит у Вас:
 

Screenshot_22.JPG

Да это как раз понятно . Запрос уходит на сервер , а ответ возвращается через WAN роутера Slave . Как заставить пакеты ходить нормально ?

Share this post


Link to post
Share on other sites

@denilkor , простой вариант - заставить ВСЕ пакеты сервака идти через VPN-линк.

/ip route add distance=1 gateway= 192.168.100.1 check-gateway=ping routing-mark=serv
/ip route rule add src-address=192.168.88.10/32 table=serv

Edited by nkusnetsov

Share this post


Link to post
Share on other sites

13 hours ago, denilkor said:

Да это как раз понятно . Запрос уходит на сервер , а ответ возвращается через WAN роутера Slave . Как заставить пакеты ходить нормально ?

Можно использовать src-nat. Что-то типа 

/ip firewall nat
add action=src-nat chain=srcnat dst-address=192.168.88.10 dst-port=1833 out-interface=Имя_SSTP_интерфейса protocol=tcp to-addresses=192.168.100.1

поставить ниже правила dst-nat для 192.168.88.10.

 

Share this post


Link to post
Share on other sites

8 hours ago, McSea said:

Можно использовать src-nat. Что-то типа 


/ip firewall nat
add action=src-nat chain=srcnat dst-address=192.168.88.10 dst-port=1833 out-interface=Имя_SSTP_интерфейса protocol=tcp to-addresses=192.168.100.1

поставить ниже правила dst-nat для 192.168.88.10.

 

на каком из роутеров это делать ? 

Share this post


Link to post
Share on other sites

4 минуты назад, denilkor сказал:

на каком из роутеров это делать ? 

Не надо так делать. Если сделаете, то все удаленные клиенты для сервера будут представляться одним серым IP-адресом роутера main.

Проще говоря, сервер не увидит IP клиентов и не сможет различать клиентов по IP.

Edited by nkusnetsov

Share this post


Link to post
Share on other sites

1 hour ago, nkusnetsov said:

Не надо так делать. Если сделаете, то все удаленные клиенты для сервера будут представляться одним серым IP-адресом роутера main.

Проще говоря, сервер не увидит IP клиентов и не сможет различать клиентов по IP.

 

Понял . А в Вашей схеме у меня все прекрасно заработало , вот только сервер отказался получать время по NTP. Да и не совсем правильно весь трафик от него пускать через роутер Main . Можно как то пометить пакеты чтобы сервер только отвечал на входящие соединения ? Да и давно уже всем известно , что аппетит приходит во время еды . Поэтому мне захотелось пробросить порты для управления еще устройствами из этой же сети . Боюсь запутаться и через пол года не разобраться в правилах

Share this post


Link to post
Share on other sites

Не, что-то в дизайне не так. Если есть VPN с удаленными офисами, то нужно просто разобраться с маршрутизацией, без пробросов портов

Share this post


Link to post
Share on other sites

1 minute ago, myth said:

Не, что-то в дизайне не так. Если есть VPN с удаленными офисами, то нужно просто разобраться с маршрутизацией, без пробросов портов

Как тут можно обойтись без проброса портов если мне нужно открыть доступ к серверу из интернета допустим по такому адересу myserver.com:1883

Share this post


Link to post
Share on other sites

@denilkor , чтобы получить более гибкий вариант для Вас:

1) Завести полноценную альтернативную таблицу маршрутизации "serv" (routing-mark=serv), в которой есть маршруты такие же как и в таблице "main", за исключением default route (0.0.0.0/0) ведущего через туннель 192.168.100.1.

2) в фаерволе, в mangle-prerouting маркировать входящие соединения по критерию in-interface=sstp.

Далее в mangle-prerouting, для пакетов принадлежащих отмеченным соединениям, делать mark-routing=serv (пускать их по альтернативной таблице маршрутизации)

Таким образом, все соединения входящие через sstp,  ответные пакеты будут отсылать обратно через тот же sstp

Share this post


Link to post
Share on other sites

7 hours ago, denilkor said:

на каком из роутеров это делать ? 

Там же, где правило dst-nat для сервера сделали. 

Насчет представления всех клиентов одним IP адресом - а это существенно в данном случае ? Т.е. IP адреса клиентов используются на сервере для чего-то ?  

Share this post


Link to post
Share on other sites

7 hours ago, nkusnetsov said:

Проще говоря, сервер не увидит IP клиентов и не сможет различать клиентов по IP.

А если клиенты будут приходить откуда-то из инета из-за одного NAT-а, как он будет их различать ?

 

Имхо не особо правильно рассчитывать на уникальные IP адреса каждого клиента, потом имеем проблемы типа L2TP сервера микротика, к которому несколько виндовс клиентов из-за одного NAT-а не могут подключиться.

 

Share this post


Link to post
Share on other sites

16 minutes ago, McSea said:

Там же, где правило dst-nat для сервера сделали. 

Насчет представления всех клиентов одним IP адресом - а это существенно в данном случае ? Т.е. IP адреса клиентов используются на сервере для чего-то ?  

Конечно существенно т.к. помимо авторизации каждый клиент подписывается на определенный набор топиков MQTT и будет не правильно если все перемешается в кашу 

Share this post


Link to post
Share on other sites

1 hour ago, denilkor said:

Конечно существенно т.к. помимо авторизации каждый клиент подписывается на определенный набор топиков MQTT и будет не правильно если все перемешается в кашу 

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

Share this post


Link to post
Share on other sites

1 час назад, McSea сказал:

А если клиенты будут приходить откуда-то из инета из-за одного NAT-а, как он будет их различать ?

 

Имхо не особо правильно рассчитывать на уникальные IP адреса каждого клиента, потом имеем проблемы типа L2TP сервера микротика, к которому несколько виндовс клиентов из-за одного NAT-а не могут подключиться.

 

Вы прежде чем столь категорично высказываться изучите алгоритмы прохожления пакетов. А то с Вашей рекомендации по постановке правила src-nat ниже dst-nat людям смешно

 

9 часов назад, denilkor сказал:

поставить ниже правила dst-nat для

 

 

В пределах одного src-ip различать клиентов можно средствами веб-сервера на уровне 7.

Когда их действительно много за одним IP - это кривой провайдер. Таких терпил даже гугл на капчу редиректит.

 

Share this post


Link to post
Share on other sites

39 minutes ago, nkusnetsov said:

А то с Вашей рекомендации по постановке правила src-nat ниже dst-nat людям смешно

Ну если Вам легче читать файрвол, когда правила, которые относятся к одному объекту, находятся на разных страницах, можете смеяться. 

Edited by McSea

Share this post


Link to post
Share on other sites

@DRiVen , я то в курсе. Это McSea отмочил про перестановку правил, а теперь отмазывается.

 

5 минут назад, McSea сказал:

Ну если Вам легче читать файвол, когда правила, которые относятся к одному объекту, находятся на разных страницах, можете смеяться. 

Видимо, Вы не имели дело с действительно большим количеством правил в фаерволе.

Чтобы их удобно читать - в правом верхнем углу окна winbox есть выпадающий список-фильтр. Очень помогает.

Edited by nkusnetsov

Share this post


Link to post
Share on other sites

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.