Проброс портов

Обсуждение ПО и его настройки
Ответить
anyou
Сообщения: 5
Зарегистрирован: 21 май 2014, 19:20

Здравствуйте!
Имеются 2 микротика, один находится дома и имеет белый IP, а второй - на даче и подключен к 1-му по VPN через 3G модем.
На домашнем подсеть 192.168.1.0/24, на дачном - 192.168.0.0/24.

На даче стоит RaspberryPi с web сервером, куда и нужен доступ из внешки.

Настройки домашнего роутера:

Код: Выделить всё

/interface l2tp-server
add name=Dacha user=dacha

/ip address
add address=10.0.1.1/32 interface=Dacha network=10.0.1.10

/ip route
add distance=3 dst-address=192.168.0.0/24 gateway=Dacha

/ip firewall nat
add action=dst-nat chain=dstnat comment="Port forwarding to RasPi SSH" dst-port=8022 in-interface=ether1 log=yes protocol=tcp to-addresses=192.168.0.12 to-ports=22
add action=netmap chain=dstnat comment="Port forwarding to RasPi Web" dst-port=8080 log=yes protocol=tcp to-addresses=192.168.0.12 to-ports=80
add action=masquerade chain=srcnat comment="Hairpin NAT for WWW" dst-address=192.168.0.12 dst-port=80 out-interface=Dacha protocol=tcp src-address=192.168.1.0/24


Настройки дачного роутера:

Код: Выделить всё

/interface l2tp-client
add allow=mschap1,mschap2 connect-to=1.2.3.4 disabled=no mrru=1600 name=home password=passw user=dacha

/ip address
add address=10.0.1.10/32 interface=home network=10.0.1.1

/ip route
add distance=5 dst-address=192.168.1.0/24 gateway=10.0.1.1



Из сети 192.168.1.0/24 браузер спокойно заходит на веб сервер, но по внешнему адресу из внешней сети - нет. Как правильно настроить?
И ещё один вопрос вдогонку. Чтобы у обоих роутеров было одно адресное пространство (например, 192.168.1.1/24), это можно сделать только с помощью EoIP туннеля? А так как на дачном роутере серый внешний IP, то нужно EoIP туннель прокинуть поверх L2TP туннеля? Не сильно извращённо получается?)


vqd
Модератор
Сообщения: 3605
Зарегистрирован: 26 сен 2013, 14:20
Откуда: НСК
Контактная информация:

ВПН ваш стоит воспринимать как второй канал и соответственно настраивать микрот. Достаточно того что на даче ну либо костыль в виде подмены адреса


Есть интересная задача и бюджет? http://mikrotik.site
anyou
Сообщения: 5
Зарегистрирован: 21 май 2014, 19:20

vqd писал(а):ВПН ваш стоит воспринимать как второй канал и соответственно настраивать микрот. Достаточно того что на даче ну либо костыль в виде подмены адреса

Не совсем понял, что вы имеете ввиду.

Web сервер стоял дома и имел адрес 192.168.1.12. В этом случае правило NAT отрабатывало как и задумано, и из любого места набирая в браузере http://1.2.3.4:8080, я заходил на веб страничку.

Код: Выделить всё

/ip firewall nat
add action=netmap chain=dstnat comment="Port forwarding to RasPi Web" dst-port=8080 log=yes protocol=tcp to-addresses=192.168.1.12 to-ports=80


Я не могу понять, почему сейчас не работает. Ведь маршруты до 192.168.0.0/24 прописаны, роутер видит, пингует, правило NAT срабатывает, но ни на SSH, ни на веб страницу зайти не могу.


vqd
Модератор
Сообщения: 3605
Зарегистрирован: 26 сен 2013, 14:20
Откуда: НСК
Контактная информация:

ну логично. даже больше скажу, все у вас отрабатывает ))) Можете сами убедится посмотрев соединения на том же веб, и он отвечает... Только вот ответ не туда уходит.

В общем ищите тут на форуме, дынная тема регулярно мусолится


Есть интересная задача и бюджет? http://mikrotik.site
anyou
Сообщения: 5
Зарегистрирован: 21 май 2014, 19:20

vqd писал(а):ну логично. даже больше скажу, все у вас отрабатывает ))) Можете сами убедится посмотрев соединения на том же веб, и он отвечает... Только вот ответ не туда уходит.

В ощем ищите тут на форуме, дынная тема регулярно мусолится


Я так и думал, что что-то не то с ответом) Так, проверим, правильно ли я размышляю. Согласно правилу dst-nat домашний роутер подменяет адрес источника своим внешним IP, следовательно, на дачном роутере нужно прописать маршрут на внешний IP домашнего роутера через шлюз 10.0.1.1.

Код: Выделить всё

/ip route
add distance=10 dst-address=1.2.3.4/32 gateway=10.0.1.1


Но, в таком случае, l2tp-client сразу после подключения, будет пытаться прокинуть туннель через самого себя (я уже поспешил и потерял доступ к железке, поэтому следующее предположение проверю только завтра))) Значит, нужно сделать так:

Код: Выделить всё

/ip firewall mangle
add action=mark-routing chain=prerouting dst-address=1.2.3.4 new-routing-mark=www src-address=192.168.0.12

/ip route
add distance=5 dst-address=1.2.3.4/32 gateway=10.0.1.1 routing-mark=www


Ход мысли правильный?)


vqd
Модератор
Сообщения: 3605
Зарегистрирован: 26 сен 2013, 14:20
Откуда: НСК
Контактная информация:

Ход правильный.

Только DST - это адрес назначения, SRC - источника

src у вас некий внешний адрес с которого вы ломитесь, соответственно микрот на даче отправляет ответ через свой канал.

Тобиш можно сделать более универсальное решение.
Т.к. у вас проброс то на микротике на даче соеденение попадает в цепочку forward соответственно в ней размечаем соединения которые пришли из ВПН тоннеля

Дальше для устройств внутри сети все соединения которые помечены отправляем обратно через ВПН.


Есть интересная задача и бюджет? http://mikrotik.site
anyou
Сообщения: 5
Зарегистрирован: 21 май 2014, 19:20

Разобрался. Вышеописанный вариант работает.

Код: Выделить всё

/ip firewall mangle
add action=mark-routing chain=prerouting dst-address=!192.168.0.0/16 new-routing-mark=out_www src-address=192.168.0.12

/ip route
add distance=5 dst-address=0.0.0.0/0 gateway=10.0.1.1 routing-mark=out_www


Если можно сделать "более правильно", буду рад услышать совет)


vqd
Модератор
Сообщения: 3605
Зарегистрирован: 26 сен 2013, 14:20
Откуда: НСК
Контактная информация:

Ну у вас сечас 192.168.0.12 принудительно гоняет весь траффик через тоннель, акромя локального. ЧТо есть тоже в принципе тоже неправильно.
То есть если бы у вас был некий веб сервер который скажем переодически ломится в инет и ченить скачивает то этот трафик тоже пойдет через ВПН. То есть вы не отделяете трафик который нужно отправить во вне с WAN порта и трафик который нужно отправить через ВПН


Есть интересная задача и бюджет? http://mikrotik.site
Ответить