Как собрать наиболее активные по трафику IP-адреса в список?

Базовая функциональность RouterOS
Аватара пользователя
Oleksa75
Сообщения: 5
Зарегистрирован: 19 янв 2021, 19:17

Как собрать наиболее активные по трафику IP-адреса в список?

Сообщение Oleksa75 »

Приветствую!
Есть такая задача: хочу разделить траффик по маршрутам до назначения "вручную", через кастомные роуты.
1) Вопрос: можно ли и как заставить Микротик заносить в отдельный список (address-list) те адреса, которые за промежуток времени Х генерят наибольшее количество трафика (Y)? Адрес должен жить в списке время Z, а потом удаляться. Все эти XYZ должны настраиваться.

Как-то так, но нужен автоформирователь списков
/ip firewall mangle add chain=prerouting protocol={PROTO} dst-port={PORT} dst-address={SPISOK1} action=mark-routing new-routing-mark=TrafficNalevo
/ip route add gateway=wan1 routing-mark=TrafficNalevo
/ip firewall mangle add chain=prerouting protocol={PROTO} dst-port={PORT} dst-address={SPISOK2} action=mark-routing new-routing-mark=TrafficNapravo
/ip route add gateway=wan2 routing-mark=TrafficNalevo
2) Можно ли настроить PCC-балансировку both-port ТОЛЬКО для части(!) траффика, идущего от(на) определенные IP-адреса? (хочу выбросить из прцесса админки банков, некоторые веб-почты, ресурсы с авторизацией - не все работает)

3) И такой довольно нубский вопрос - можно ли с помощью Микротик внутри пакета "вынюхать" определенный паттерн и дальше правилами определить поведение в зависимости от контекста?

Заранее благодарен за ответы!
Device - 951Ui-2HnD (6.48 stable)
architecture-name: mipsbe
cpu: MIPS 74Kc V4.12
Аватара пользователя
Chupaka
Сообщения: 3915
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Как собрать наиболее активные по трафику IP-адреса в список?

Сообщение Chupaka »

Доброго ночера.
Oleksa75 писал(а): 27 янв 2021, 17:09 1) Вопрос: можно ли и как заставить Микротик заносить в отдельный список (address-list) те адреса, которые за промежуток времени Х генерят наибольшее количество трафика (Y)? Адрес должен жить в списке время Z, а потом удаляться. Все эти XYZ должны настраиваться.
Ну, если пытаться решать задачу для общего случая, то в голову приходит параметр dst-limit правил файрвола. Можно все большие пакеты (1000-1500 байт) прогонять через него в режиме Limit By: dst. address, и всё, что насчитало много за заданный промежуток времени, бросать в action=add-dst-to-address-list с нужным таймаутом, а потом по этому списку уже будут работать остальные правила.
Oleksa75 писал(а): 27 янв 2021, 17:09 2) Можно ли настроить PCC-балансировку both-port ТОЛЬКО для части(!) траффика, идущего от(на) определенные IP-адреса? (хочу выбросить из прцесса админки банков, некоторые веб-почты, ресурсы с авторизацией - не все работает)
Конечно, просто применяйте правила с параметром dst-address-list=балансируемые_ресурсы, или где-нибудь повыше сделать dst-address-list=банки action=accept, чтобы до правил маркировки дело не дошло.
Oleksa75 писал(а): 27 янв 2021, 17:09 3) И такой довольно нубский вопрос - можно ли с помощью Микротик внутри пакета "вынюхать" определенный паттерн и дальше правилами определить поведение в зависимости от контекста?
Есть параметр content, который ищет в данных пакета фиксированную строку. Есть Layer7 Protocols, который ищет в начале потока данных по регулярным выражениям. Тут больше вопрос о том, что вы понимаете под поведением. Например, если речь идёт про TCP-соединение, то у него сначала проходит трёхэтапное рукопожатие, а потом уже начинают передаваться данные. Так вот когда данные пошли по соединению - уже поздно, например, менять канал, через который оно выходит, потому как связь просто прервётся, и можно просто адрес сервера занести в список, чтобы последующие соединения к этому серверу, например, направлять на другой канал.
Аватара пользователя
Oleksa75
Сообщения: 5
Зарегистрирован: 19 янв 2021, 19:17

Re: Как собрать наиболее активные по трафику IP-адреса в список?

Сообщение Oleksa75 »

Приветствую, спасибо за информацию, "Limit By" теперь поизучаю.
По п.3 - речь идет о потоке траффика на МТ4(МТ5) торговые терминалы. Допустим, сервер передает мне (клиенту) поток информации по котировкам индексов NAS100, US30, SPX500 и куче других. Каким-то образом конечный потребитель (терминал) умеет отображать их на рахных графиках, следовательно, я предполагаю, в потоке TCP есть эти метки - NAS100 например. У другой системы она же будет называться TECH100, или USATecMar21 ну и тд. В зависимости от загрузки канала, я хочу научиться рулить поток по контенту "налево" или "направо".
"Есть параметр content" - а где его искать, сорри? Начет "Layer7 Protocols" - говорят, он очень грузит процессор и что-то может сгореть, если увлекаться. Пока попробую альтернативу.
Device - 951Ui-2HnD (6.48 stable)
architecture-name: mipsbe
cpu: MIPS 74Kc V4.12
Аватара пользователя
Chupaka
Сообщения: 3915
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Как собрать наиболее активные по трафику IP-адреса в список?

Сообщение Chupaka »

Oleksa75 писал(а): 28 янв 2021, 01:41 В зависимости от загрузки канала, я хочу научиться рулить поток по контенту "налево" или "направо".
Как я уже сказал, если на каналах "налево" и "направо" используется NAT, то рулить по контенту не получится, соединение просто будет зависать (т.е. нельзя "перемаскарадить" соединение в середине процесса на другой адрес).
Oleksa75 писал(а): 28 янв 2021, 01:41 "Есть параметр content" - а где его искать, сорри?
На вкладке Advanced рядом оба параметра расположены, Layer7 Protocol и Content следом.
Oleksa75 писал(а): 28 янв 2021, 01:41 Начет "Layer7 Protocols" - говорят, он очень грузит процессор и что-то может сгореть, если увлекаться. Пока попробую альтернативу.
Ага, и включение привлекает метеориты, поэтому лучше не включать.
Ничего не сгорит, естественно. А по поводу нагрузки на процессор - если всё подряд проверять, то конечно же это затратно. Но тут надо взвесить все "за" и "против", а не категорично утверждать. А то так можно дойти до того, что пропуск трафика через роутер грузит процессор, а подача питания расходует электричество, поэтому лучше все роутеры просто выключить.