Перейти к содержимому
Калькуляторы

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

Добрый день!

 

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

Есть два 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

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

Изменено пользователем VolanD666

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

54 минуты назад, VolanD666 сказал:

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

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 минуту назад, LostSoul сказал:

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 минуту назад, VolanD666 сказал:

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

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

37 минут назад, VolanD666 сказал:

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

 

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Изменено пользователем McSea

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

13 часов назад, nkusnetsov сказал:

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2 часа назад, nkusnetsov сказал:

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

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

 

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

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

 

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

Изменено пользователем nkusnetsov

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

16 минут назад, nkusnetsov сказал:

 

 

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



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

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

 

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

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

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

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

24 минуты назад, LostSoul сказал:

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

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

 

Изменено пользователем nkusnetsov

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 минуту назад, nkusnetsov сказал:

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

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

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

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

 

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

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Изменено пользователем nkusnetsov

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Только что, nkusnetsov сказал:

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

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.