Страница 1 из 1

Маркировка исходящих пакетов от локальных служб роутера.

Добавлено: 31 янв 2017, 22:07
maryanp
Доброго времени суток.

На роутере настроена балансировка на несколько провайдеров по методу ECMP. Пользовался статьей https://habrahabr.ru/post/244385/. Настроен маскарадинг. Также пропрошен внутрь сети 25-й порт. Дефолтного маршрута нет. Прописаны статические маршруты для отдельных адресов снаружи. Все остальное маршрутизируется "по кругы". Работает как швейцарские часы.

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

Подскажите пример правила по какому маркировать исходящие пакеты?

PS. Наверное все просто но уже мозг сломал. Спасибо.

Re: Маркировка исходящих пакетов от локальных служб роутера.

Добавлено: 01 фев 2017, 06:12
DmNuts
ECMP как раз и мешает подключению, кидает пакеты по своему усмотрению.
Маркировать нужно не исходящие от ssh службы роутера пакеты, а входящие соединения.

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

/ip firewall mangle add action=mark-connection chain=input in-interface=ISP1 dst-port=22 new-connection-mark=cin_ISP1
/ip firewall mangle add action=mark-connection chain=input in-interface=ISP2 dst-port=22 new-connection-mark=cin_ISP2
/ip firewall mangle add action=mark-routing chain=output connection-mark=cin_ISP1 new-routing-mark=route_ISP1 passthrough=no
/ip firewall mangle add action=mark-routing chain=output connection-mark=cin_ISP2 new-routing-mark=route_ISP2 passthrough=no
/ip route add distance=1 gateway=gateway_ISP1 routing-mark=route_ISP1
/ip route add distance=1 gateway=gateway_ISP2 routing-mark=route_ISP2

Кстати, копипастил команды из той же статьи, так быстрее оказалось))

Re: Маркировка исходящих пакетов от локальных служб роутера.

Добавлено: 01 фев 2017, 15:34
maryanp
Спасибо за ответ. Я так и делаю. Входящее соединение маркируется, видно по счетчику. Но вот обратно пакетов нет. Вот правила маркировки:

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

chain=input action=mark-connection new-connection-mark=cin_ssh passthrough=yes protocol=tcp in-interface=ether1-freenet dst-port=22 log=no 
chain=prerouting action=mark-routing new-routing-mark=ssh passthrough=no protocol=tcp connection-mark=cin_ssh src-port=22 log=no


Не работает второе правило? Пробовал маркировать SSH для локальной сети - нет проблем.

Re: Маркировка исходящих пакетов от локальных служб роутера.

Добавлено: 01 фев 2017, 16:10
maryanp
Я подозреваю что без дефолтного маршрута исходящий пакет от SSH просто не знает куда уходить.

Re: Маркировка исходящих пакетов от локальных служб роутера.

Добавлено: 01 фев 2017, 16:31
DmNuts
maryanp писал(а):Я подозреваю что без дефолтного маршрута исходящий пакет от SSH просто не знает куда уходить.
Дефолтные маршруты должны быть в соответствующих таблицах маршрутизации, да.

maryanp писал(а):

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

chain=prerouting action=mark-routing new-routing-mark=ssh passthrough=no protocol=tcp connection-mark=cin_ssh src-port=22 log=no
А тут лучше заменить цепочку prerouting на output, убрать protocol и src-port.

Re: Маркировка исходящих пакетов от локальных служб роутера.

Добавлено: 01 фев 2017, 17:26
maryanp
И так тоже делал:

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

chain=input action=mark-connection new-connection-mark=cin_ssh passthrough=yes protocol=tcp in-interface=ether1-freenet dst-port=22 log=no 
chain=output action=mark-routing new-routing-mark=ssh passthrough=no connection-mark=cin_ssh log=no


Не помогает.

Re: Маркировка исходящих пакетов от локальных служб роутера.

Добавлено: 01 фев 2017, 20:20
maryanp
В данный момент остави следующее:

mangle:

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

add action=mark-connection chain=input in-interface=ether1-freenet new-connection-mark=cin_ether1 passthrough=no
add action=mark-routing chain=output connection-mark=cin_ether1 new-routing-mark=rout_ether1 passthrough=no
add action=mark-routing chain=prerouting connection-state="" new-routing-mark=mixed passthrough=yes src-address=192.168.0.0/24


route;

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

add check-gateway=ping distance=1 gateway=32.32.32.32 routing-mark=rout_ether1
add distance=1 gateway=32.32.32.32,30.30.30.30 routing-mark=mixed
add distance=2 gateway=pppoe-out1 routing-mark=mixed


Конекта к роутеру нет. :-(

Re: Маркировка исходящих пакетов от локальных служб роутера.

Добавлено: 01 фев 2017, 22:11
maryanp
Заметил также, что исходящие от SSH пакеты маркируются когда вкючен дефолтный маршрут. Без него не маркируются. Неужели для сервисов микротика обязательно нужно дефолтный маршрут?

Re: Маркировка исходящих пакетов от локальных служб роутера.

Добавлено: 02 фев 2017, 09:10
algerka
Тихо сам с собою я веду беседу :-):


Вот вам пример кода:

Помечаем входящие соединения

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

/ip firewall mangle add action=mark-connection chain=input in-interface=wan1 new-connection-mark=isp1in_c passthrough=no
/ip firewall mangle add action=mark-connection chain=input in-interface=wan2 new-connection-mark=isp2in_c passthrough=no

ставим метку нужного маршрута на исходящие ответы

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

/ip firewall mangle add action=mark-routing chain=output connection-mark=isp1in_c new-routing-mark=isp1 passthrough=no
/ip firewall mangle add action=mark-routing chain=output connection-mark=isp2in_c new-routing-mark=isp2 passthrough=no


в /ip route должно быть минимум два правила с наименьшей дистанцией и routing-mark соответственно isp1 & isp2 с рабочими маршрутами до первого и второго провайдера.


А так, нужен полный конфиг, а не вырезки из него, чтобы понять почему у вас не работает. Но особенно не надейтесь, что кому-то сильно захочется разбираться с вашим полетом фантазии при настройке маршрутизатора.
Есть время и желание разобраться - попробуйте поиграться с конфигурацией с wizarda http://mikrotikwizard.com/