Страница 1 из 4
Правильная маршрутизация через два разных шлюза
Добавлено: 10 янв 2021, 20:48
tuniks
Схема: есть две сети в разных частях города, они объединены, посредством RB951Ui и VPN.
Пусть первая точка называется А(192.168.10.0/26), вторая В(192.168.30.0/26). Точка А имеет белый внешний адрес и VPN интерфейс 192.168.5.1, точка В динамический внешний адрес и VPN 192.168.5.5. Маршрутизация между сетями настроена и прекрасно работает. Любой из сети А видит любого из сети В и наоборот. Проблема в следующем:
- потребовалось пробросить запрос приходящий на интерфейс белого адреса А в сеть на компьютер, находящийся в сети В. Поясню, есть в сети В контроллер с поднятым MQTT сервером, там же куча клиентов обслуживающих этим сервером. Нужно достучаться до этого сервера из вне, через белый адрес, находящийся в А.
Что получается, в NAT сети А, прописываю netmap на комп в сеть В, пакет прекрасно доходит, благодаря маршрутизации до компа в сети В, но вот уже не уходит через этот же шлюз, через который пришел VPN 192.168.5.5(1), а идет через свой дефолтовый, который прописан в сети В, так как в качестве источника IP адрес внешний, откуда пришел запрос. И разумеется ничего не работает. Понимаю, что как-то нужно его пометить и отправить в шлюз откуда пришел, но ничего не получается.
Re: Правильная маршрутизация через два разных шлюза
Добавлено: 10 янв 2021, 21:45
xvo
Воспользуйтесь поиском.
На форуме эта задача многократно поднималась, описана, разжевана и заезжена вдоль и поперек.
Re: Правильная маршрутизация через два разных шлюза
Добавлено: 10 янв 2021, 22:37
tuniks
xvo писал(а): ↑10 янв 2021, 21:45
Воспользуйтесь поиском.
На форуме эта задача многократно поднималась, описана, разжевана и заезжена вдоль и поперек.
Разумеется, я так и попробовал сделать и не только на этом форуме. Возможно Вы плохо прочитали мой вопрос. Но подобной темы я не обнаружил на этом форуме. Поправьте если не прав. Это не ДВА ПРОВАЙДЕРА и не балансировка двух WAN, это другая проблема.
Re: Правильная маршрутизация через два разных шлюза
Добавлено: 10 янв 2021, 22:45
xvo
Нет, я понял вас абсолютно правильно.
И именно ваша задача "проброса" порта через туннель в удаленную подсеть обсуждалась здесь неоднократно.
Re: Правильная маршрутизация через два разных шлюза
Добавлено: 10 янв 2021, 22:51
tuniks
xvo писал(а): ↑10 янв 2021, 22:45
Нет, я понял вас абсолютно правильно.
И именно ваша задача "проброса" порта через туннель в удаленную подсеть обсуждалась здесь неоднократно.
С Вашим участием
viewtopic.php?p=66761#p66761 , сейчас читаю. Вроде то, я пытался так сделать, маркировать, но видимо не совсем понимаю этот механизм.
Re: Правильная маршрутизация через два разных шлюза
Добавлено: 10 янв 2021, 22:59
xvo
Было и ещё несколько тем.
А по запросу "микротик проброс порта через туннель" просто в гугле находятся темы на хабре, nag'е и и ещё куча всего.
По факту там две строчки в /ip firewall mangle и одна в /ip route.
Re: Правильная маршрутизация через два разных шлюза
Добавлено: 10 янв 2021, 23:11
xvo
Собственно:
Код: Выделить всё
/ip firewall mangle
add action=mark-connection chain=prerouting in-interface=ВАШ_ТУННЕЛЬ new-connection-mark=МЕТКА_СОЕДИНЕНИЯ passthrough=no
add action=mark-routing chain=prerouting connection-mark=МЕТКА_СОЕДИНИЯ in-interface-list=LAN new-routing-mark=МЕТКА_МАРШРУТА passthrough=no
/ip route
add gateway=ТУННЕЛЬНИЫЙ_АДРЕС_ОСНОВНОГО_МИКРОТИКА routing-mark=МЕТКА_МАРШРУТА
Это все на том микротике, куда идет проброс.
На том с которого идет, ничего кроме обычного dst-nat не надо.
И да, не используйте netmap для проброса портов, он не для этого.
Re: Правильная маршрутизация через два разных шлюза
Добавлено: 11 янв 2021, 09:18
tuniks
К сожалению Ваш вариант отказывается работать.
Вот так, по Вашему совету сделал:
на "В"
Код: Выделить всё
ip route
add distance=1 gateway=192.168.5.1 routing-mark=mqqt-route
/ip firewall mangle
add action=mark-connection chain=prerouting in-interface=acomins new-connection-mark=mqtt-con passthrough=no
add action=mark-routing chain=prerouting connection-mark=mqtt-con in-interface-list=LAN new-routing-mark=mqqt-route passthrough=no
/interface list
add name=LAN
/interface list member
add interface=acomins list=LAN
add interface=brLan list=LAN
add interface=wifi list=LAN
на "А"
Код: Выделить всё
/ip firewall nat
add action=dst-nat chain=dstnat dst-port=31883 in-interface=wan protocol=tcp to-addresses=192.168.30.55 to-ports=1883
Что не так?
На "В" вижу пакеты которые приходят, но обратно не уходят куда-надо.
Re: Правильная маршрутизация через два разных шлюза
Добавлено: 11 янв 2021, 10:02
xvo
Как минимум не предполагалось, что интерфейс acomins будет принадлежать списку LAN.
Хотя и не уверен, что проблема в этом.
Но попробуйте, замените это условие просто на in-interface=brLan (в общем тот, за которым собственно mqtt-сервер).
Re: Правильная маршрутизация через два разных шлюза
Добавлено: 11 янв 2021, 12:05
tuniks
bgLan - это у меня bridge в котором все ethernet интерфейсы, поэтому установить его как входящий интерфейс мне не дает система, установка в качестве входящего acomins (ppp PPTP-client) результата не получил.
Да, не уверен, что это как-то влияет, но полная схема "В" такая:
В1-основной роутер, к нему подключен B2 через wifi мост wds. И вот на втором В2 внешний интерфейс на провайдера с получением IP через его DHCP. На В1, прописал маршрут по-умолчанию на шлюз провайдера на В2. В целом, как и писал все функционирует нормально и все пакеты внутри сети бегают правильно. Все друг-друга видят, хотя реализовано 5 подсетей. (всего 5 удаленных точек). Но вот эту проблемы (см.выше) решить, пока не получается.