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

Не работает манг на пакетых инициируемых роутером

Добрый день!

 

Подскажите, пожалуйста, пытаюсь понять почему не работает эта схема:

Есть два l2tp туннеля между двумя микротиками. На каждом микротики есть по лупбеку с адресами 1.1.1.1 и 2.2.2.2.

 

Пытаюсь создать на микротике два правила, которые маркируют соединения:

/ip firewall mangle
add action=mark-routing chain=prerouting dst-address=2.2.2.2 new-routing-mark=l2tp1 random=30 src-address=1.1.1.1
add action=mark-routing chain=prerouting dst-address=2.2.2.2 new-routing-mark=l2tp2 src-address=1.1.1.1

Не могу понять почему они не срабатывают? Я запускаю пинг со второго микрота на первый: 

 ping 1.1.1.1 src-address=2.2.2.2

Cчетчики 

[admin@Client] <SAFE> ip firewall mangle print stats
Flags: X - disabled, I - invalid, D - dynamic
 #    CHAIN                                                                                                                                                                          ACTION                            BYTES         PACKETS
 0    prerouting                                                                                                                                                                     mark-connection                       0               0
 1    prerouting                                                                                                                                                                     mark-connection                       0               0

не тикают! Почему так?

Edited by VolanD666

Share this post


Link to post
Share on other sites

Походу не может микрот PBRить, если пакет инициирован им самим.

Share this post


Link to post
Share on other sites
54 минуты назад, VolanD666 сказал:

Походу не может микрот PBRить, если пакет инициирован им самим.

это само линуксовое ядро до каких-то версий не могло раньше.

теперь вроде может и "голый линукс" и микрот

 

Share this post


Link to post
Share on other sites
1 минуту назад, LostSoul сказал:

это само линуксовое ядро до каких-то версий не могло раньше.

теперь вроде может и "голый линукс" и микрот

 

Дык не работает. Прошивка новейшая. Я так понимаю, что проблема в том, что по пакет флоу внутренние пакеты идут сразу на route decision и не достигают prerouting.

Share this post


Link to post
Share on other sites
1 минуту назад, VolanD666 сказал:

Дык не работает. Прошивка новейшая. Я так понимаю, что проблема в том, что по пакет флоу внутренние пакеты идут сразу на route decision и не достигают prerouting.

проверил, факт не работает.

а в цепочке mangle/output ваш вопрос не решается?

 

Share this post


Link to post
Share on other sites

Ну в аутпут он уже принял решение о роутинге и его не поменять :( Да думаю, что бессмысленно дальше ковыряться. Не может этого микротик :( 

 

ЗЫ Спасибо за ваши ответы.

Share this post


Link to post
Share on other sites
37 минут назад, VolanD666 сказал:

Ну в аутпут он уже принял решение о роутинге и его не поменять :( Да думаю, что бессмысленно дальше ковыряться. Не может этого микротик :( 

 

ЗЫ Спасибо за ваши ответы.

через ip rule и разные таблицы то что вы хотите тоже не делается?

 

Share this post


Link to post
Share on other sites

Зачем гадать, на схеме (https://wiki.mikrotik.com/wiki/Manual:Packet_Flow) же видно, что исходящие от роутера пакеты (путь K->L) в prerouting не попадают, только output и postrouting.

Edited by McSea

Share this post


Link to post
Share on other sites

Ну на схеме как не оень то и видно. Только когда вы ткнули пальцем где это, тогда стало понятно. А так там столько всего понарисовано.

Share this post


Link to post
Share on other sites

@VolanD666 , вполне себе производится "Routing Adjustment" после Mangle-Output. Именно так и разруливается трафик самого роутера между несколькими аплинками.

 

Share this post


Link to post
Share on other sites

Ясен пень не работает. Прероутинг это входящий трафик. 

Share this post


Link to post
Share on other sites
13 часов назад, nkusnetsov сказал:

@VolanD666 , вполне себе производится "Routing Adjustment" после Mangle-Output. Именно так и разруливается трафик самого роутера между несколькими аплинками.

 

можете привести пример? Я что-то не могу сообразить, если трафик роутера не проходит звено цепи прероутинг, как тогда PBR делать?

Share this post


Link to post
Share on other sites
2 часа назад, VolanD666 сказал:

можете привести пример? Я что-то не могу сообразить, если трафик роутера не проходит звено цепи прероутинг, как тогда PBR делать?

/ip address 
add interface=ether1 address=192.168.1.100/24
add interface=ether2 address=192.168.2.100/24

/route
add dst-address=0.0.0.0/0 gateway=192.168.1.1
add dst-address=0.0.0.0/0 gateway=192.168.2.1 routing-mark=to_uplink2


/ip firewall mangle
add action=mark-routing chain=output new-routing-mark=to_uplink2 src-address=192.168.2.100

 

соединения иницированные с local address 192.168.1.100 уходят в 192.168.1.1  , соединения из 192.168.2.100 в 192.168.2.1

 

если бы кто еще рассказал как при нескольких роут таблицах сделать "общую часть " не дублируя ее вручную , был бы очень признателен.

 

Share this post


Link to post
Share on other sites

@LostSoul , общей частью обычно служит "main". Она может служить для обработки входящего извне трафика, например, при "пробросе портов". Исходящий же, обрабатывается по PBR, либо маркировками.
Если я Вас правильно понял.
Вот, тут можно глянуть еще : http://mum.mikrotik.com/presentations/RU18M/presentation_6157_1554717194.pdf

Share this post


Link to post
Share on other sites
2 часа назад, nkusnetsov сказал:

@LostSoul , общей частью обычно служит "main". Она может служить для обработки входящего извне трафика, например, при "пробросе портов". Исходящий же, обрабатывается по PBR, либо маркировками.
Если я Вас правильно понял.
Вот, тут можно глянуть еще : http://mum.mikrotik.com/presentations/RU18M/presentation_6157_1554717194.pdf

это то понятно.

а вот как мне к примеру получить main и две дублирующих ее таблицы роутинга , чтоб в них было все как в main но другой default gateway?

 

Share this post


Link to post
Share on other sites

@LostSoul , автоматом никак.
У себя делаю альтернативные таблицы содержащие только другой default gateway. Они для исходящего трафика.
Обычно только входящему трафику, нужны connected маршруты. Его запускаю в main по-умолчанию (или VRF, но это отдельная песня).
Исходящий тоже по-умолчанию идёт по main.

Только отдельным видам исходящего нужен альтернативный шлюз. Тогда его можно и пометить в mangle. Или PBR запилить.

 

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

получить main и две дублирующих ее таблицы роутинга , чтоб в них было все как в main но другой default gateway?

 

Конкретно у Вас для чего хочется  дублировать main? Выше уровнем какая задача?

Edited by nkusnetsov

Share this post


Link to post
Share on other sites
1 час назад, LostSoul сказал:

это то понятно.

а вот как мне к примеру получить main и две дублирующих ее таблицы роутинга , чтоб в них было все как в main но другой default gateway?

 

Ну я думаю что это можно сделать через ликинг. Т.е. перелить все роуты с исходной таблицы в нужную. А в нужной написать роут через нужны гейт. Но я думаю то именно с глобал такой фокус не получится :(

Share this post


Link to post
Share on other sites
16 минут назад, nkusnetsov сказал:

 

 

Конкретно у Вас для чего хочется  дублировать main? Выше уровнем какая задача?



ну у меня не прямо про микротик задача.

есть multihomed сервер ( на нем IP трех разных провайдеров )  , на котором крутится много сервисов высокой доступности и много разных дополнительных маршрутов main ( хотя бы к тем же контейнерам openvz , каждый в свой venet )

 

при этом контейнеры должны располагать и доступом к друг другу и всяким локальным сегментам тоже, поэтому около сотни маршрутов приходится копировать в таблицы to_isp1 , to_isp2 , to_isp3.

в данном конкретном случае задача была успешно решена через bird и его протокол pipe.

но хотелось бы более изящного решения средствами iproute , чтоб описать некий общий блок правил маршрутизации , и вставлять его и в main и  в дополнительные таблицы.

однако я после вдумчивого чтения man подобного не нашел.

 

 

Share this post


Link to post
Share on other sites
24 минуты назад, LostSoul сказал:

сть multihomed сервер ( на нем IP трех разных провайдеров ) 

Правильно ли я понимаю, что "белые" IP у Вас только в количестве 3шт., на интерфейсах подключенных к провайдерам?
Локальные сервисы находятся на локальных "серых" адресах?
давайте абстрактный пример с адресацией подобной используемой Вами попробуем разобрать.

 

Edited by nkusnetsov

Share this post


Link to post
Share on other sites
1 минуту назад, nkusnetsov сказал:

Правильно ли я понимаю, что "белые" IP у Вас только в количестве 3шт., на интерфейсах подключенных к провайдерам?
Локальные сервисы находятся на локальных "серых" адресах?

там целый букет всего намешан.

есть свои собственные адреса , резервированные по BGP , есть подсети реальных адресов соответствующего размера завернутые от 2 аплинков из 3 .

Третий канал просто обычный IP , 3 шт от одного оператора и с них сервисы раскиданы по "локальным" ( своим реальным ) адресам.

 

Общий смысл в том, чтоб система не прекращала работу на время обновления bgp при аварии.

так же система сохраняет высокий уровень доступности при всяких сложных авариях, когда одна половина рунета не видит другую.

это условно говоря, коммуникационная платформа типа "своего телеграмм" по обмену сообщениями и файлами, на которую завязано много внутреннего корпоративного функционала и экстренных оповещений.

 

Share this post


Link to post
Share on other sites

А, ну тогда всё действительно сложнее.
Как вариант, в микротике можно скриптом периодически активные маршруты из main переносить в именованые таблицы.

Но это всё-же костыли.

Edited by nkusnetsov

Share this post


Link to post
Share on other sites
Только что, nkusnetsov сказал:

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

bird protocol pipe - нормально все работает.

правда пока bird не выпал в корку....   

 

Share this post


Link to post
Share on other sites

Странно, попробовал маркировать роуты на аутпут и врде счетчики тикают на схеме в GNS3. Но у меня ведь тоже самое? Как так?

Share this post


Link to post
Share on other sites

Очень странно, полностью повторил схему в ГНС  и ве ок, работает. Странно почему на реальной железке не взлетает :(

Share this post


Link to post
Share on other sites

В общем,, не наю что было. Пересобрал схему и все завелось. Вопрос закрыт

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this