Страница 1 из 1
Как работает маркировка сессий
Добавлено: 12 июл 2021, 12:19
Dmitriy122
Пытаюсь настроить source routing и возникает непонимание как работает маркировка сессий.
У меня была следующая логика
Все новые сессии в цепочке chain=prerouting через интерфейс мы маркируем тегом провайдера, затем в цепочке output у пакетов относящиеся к маркированной сессии помечаем меткой маршрутизации для выбора соответствующей таблицы маршрутизации.
Вопрос в том, что если в prerouting маркировать все сессии, то все работает, если только новые, то не работает....
Вот так работает:
Код: Выделить всё
/ip firewall mangle
add action=mark-connection chain=prerouting in-interface=vlan20-insis new-connection-mark=con-insis passthrough=yes
add action=mark-connection chain=prerouting in-interface=vlan10-mts new-connection-mark=con-mts passthrough=yes
add action=mark-routing chain=output connection-mark=con-insis new-routing-mark=rt-insis passthrough=yes
add action=mark-routing chain=output connection-mark=con-mts new-routing-mark=rt-mts passthrough=yes
Собственно вопрос. Я считал что если пометить пакет с новой сессией, то потом все пакеты относящие к этой сессии будут иметь эту отметку... Это не так?
Почему тогда это называется маркировкой сессии?
Re: Как работает маркировка сессий
Добавлено: 12 июл 2021, 12:57
xvo
Output - это только то, что уходит с самого роутера.
Для всего проходящего трафика mark-routing тоже надо делать в prerouting'е.
Re: Как работает маркировка сессий
Добавлено: 12 июл 2021, 14:23
Dmitriy122
Да, это я понимаю
Вопрос почему на всех входящих пакетах надо метку сессии выставлять?
Почему пакеты относящие к сессии по умолчанию этой метки не имеют?
Re: Как работает маркировка сессий
Добавлено: 12 июл 2021, 14:44
xvo
Какую - эту?
Метка соединения выставляется единожды и потом применяется ко всем пакетам соединения.
Метка пакета или метка роутинга выставляется на каждый пакет индивидуально.
Re: Как работает маркировка сессий
Добавлено: 14 июл 2021, 08:03
Dmitriy122
Тогда где я ошибаюсь в следующей логике?
Код: Выделить всё
add action=mark-connection chain=prerouting connection-state=new in-interface=vlan10-mts new-connection-mark=con-mts passthrough=yes
Это правило приводит к тому что все новые соединения приходящие через интерфейс
vlan10-mts помечаются меткой
con-mts
Код: Выделить всё
add action=mark-routing chain=output connection-mark=con-mts new-routing-mark=rt-mts passthrough=yes
Это правило приводит к тому что у всех исходящих пакетов относящихся к сессиям помеченным меткой
con-mts (а все сессии пришедшие через интерфейс
vlan10-mts у нас помечены ) устанавливается метка маршрутизации
rt-mts и они маршрутизируются через тот же интерфейс откуда пришел пакет начавший сессию.
т.е. все должно работать.... а не работает.....
если в правиле
Код: Выделить всё
add action=mark-connection chain=prerouting connection-state=new in-interface=vlan10-mts new-connection-mark=con-mts passthrough=yes
убрать ограничение connection-state=new все работает
и я не понимаю почему? где я не правильно рассуждаю?
Re: Как работает маркировка сессий
Добавлено: 14 июл 2021, 09:49
xvo
А что именно "работает"?
Что вы хотите сделать?
Пока вы пытаетесь пометить соединения пришедшие из локалки, и если они предназначены роутеру, то ответный пакет роутера улетит в какой-то из wan - что не имеет никакого смысла.
Re: Как работает маркировка сессий
Добавлено: 14 июл 2021, 12:51
Dmitriy122
На самом деле
vlan20-insis и
vlan10-mts это интерфейсы смотрящие в сети двух разных провайдеров.
В целом рабочие правила вот такие
Код: Выделить всё
/ip firewall mangle
add action=mark-connection chain=prerouting in-interface=vlan20-insis new-connection-mark=con-insis passthrough=yes
add action=mark-connection chain=prerouting in-interface=vlan10-mts new-connection-mark=con-mts passthrough=yes
add action=mark-routing chain=output connection-mark=con-insis new-routing-mark=rt-insis passthrough=yes
add action=mark-routing chain=output connection-mark=con-mts new-routing-mark=rt-mts passthrough=yes
Работает это значит работает source routing для самого маршрутизатора. Например, я могу по shh зайти на маршрутизатор через любой интерфейс.
Для меня загадка, почему если я добавляю в правила маркировки сессий
connection-state=new,related то все перестает работать.
т.е. я могу зайти по ssh только на один случайный интерфейс
Re: Как работает маркировка сессий
Добавлено: 14 июл 2021, 13:49
xvo
Не должно быть так.
Посмотрите по факту в списке соединений, получают ли они метки соединений.
Но вообще для доступа на сам маршрутизатор достаточно ip route rule обойтись, вообще без mangle.