MikroTik в Красноярске — три практических курса в ноябре 2026!
С 11 по 21 ноября в Красноярске пройдут очные тренинги MikroTik: MTCNA, MTCRE и MTCTCE.
Работаете с MikroTik и хотите не просто знать команды RouterOS, а понимать, как всё работает? Приходите прокачивать навыки сетевого администрирования!
Расписание курсов
11–14 ноября — MTCNA
Базовый курс MikroTik: настройка RouterOS, маршрутизация, Firewall, NAT, VPN, DHCP, Wi-Fi и основы управления трафиком.
16–18 ноября — MTCRE
Продвинутая маршрутизация: OSPF, несколько интернет-провайдеров (MultiWAN), резервирование каналов, балансировка нагрузки, VPN и VLAN.
19–21 ноября — MTCTCE
Управление трафиком: Firewall, NAT, Mangle, Packet Flow, QoS, очереди и приоритизация трафика.
Почему стоит прийти?
- Максимум практики на реальном оборудовании MikroTik.
- Разбираем не только настройки, но и логику работы RouterOS.
- Реальные инженерные задачи, лабораторные работы и живое общение с тренером.
- Обучение проводит Кирилл Васильев — сертифицированный тренер MikroTik с 2016 года, практикующий сетевой инженер.
- Учебные материалы, оборудование, обеды и кофе-брейки включены в стоимость.
- Возможность пройти несколько курсов подряд со скидкой.
Место проведения: Красноярск, ул. Марковского, 81.
Важно: для участия в MTCRE и MTCTCE необходим сертификат MTCNA. Его можно получить на первом тренинге.
Не ограничивайтесь привычными настройками — научитесь понимать RouterOS и уверенно решать сложные сетевые задачи!
Выбирайте подходящий курс или записывайтесь сразу на всю программу.
Вопросы и запись:
manager@mt-courses.ru
Сайт:
https://mt-courses.ru
Маркировка пакетов RouterOS применяется для policy routing, очередей и классификации трафика. Обычно сначала отмечают соединение, затем используют connection-mark для маркировки пакетов нужного направления.
Маркировка сама по себе не гарантирует выигрыш производительности. Оценивайте число правил, порядок совпадений, FastTrack и измерения на целевом устройстве.
Linux netfilter
Отвечая за работу с connection-tracker в netfilter, функционирует модуль libnetfilter_conntrack. Интересно, что в самом netfilter не существует понятия “connection-mark”, зато имеется только “mark”. Это обозначение, в свою очередь, представляет собой 32-битное число, вероятно, реализованное через словарь “ключ-значение” в RouterOS. При создании марки в RouterOS скорее всего генерируется порядковый номер, который затем записывается в список соответствий. Хотя возможно, что информация о марке хранится в виде текстового описания или хеша текста, и это решение может быть достаточно сложным при обновлении ядра.
Linux netfilter маркировка пакетов
Для того чтобы создать марку в netfilter необходимо создать правило например такого типа
iptables -A PREROUTING -t mangle -i eth0 -d 88.88.88.0/24 -j MARK --set-mark 666
Настроить маркировку пакетов маршрутизации в цепочке PREROUTING таблицы mangle для тех пакетов, которые поступают на интерфейс eth0 и содержат в своих заголовках адреса назначения, попадающие в диапазон префикса 88.88.88.0/24, и присвоить этим пакетам марку 666.
Linux netfilter маркировка соединений
Как я уже указывал ранее, концепция маркировки соединения отсутствует в netfilter, поскольку маркировка пакетов и соединений, по сути, является единым процессом. Тем не менее мы можем сохранить метку пакета в качестве метки соединения.
Приведём` нашу конфигурацию netfilter к следующему виду.
iptables -A PREROUTING -t mangle -j CONNMARK --restore-mark
iptables -A PREROUTING -t mangle -i eth0 -d 88.88.88.0/24 -j MARK --set-mark 666
iptables -A PREROUTING -t mangle -j CONNMARK --save-mark
Для определенных пакетов, второе правило все еще использует метку 666. Перейдем теперь к обсуждению последнего правила CONNMARK –save-mark. В прямом смысле это означает, что для всех пакетов, которые имеют маркировку, необходимо установить такую же маркировку на соединение. Первое правило же означает следующее: для всех пакетов, проходящих через contrack с меткой на соединении, нужно установить такую же метку на пакет. Таким образом, можно сказать, что это не отдельная метка для соединения, а просто копирование метки на соединение, чтобы в дальнейшем ее можно было извлечь и использовать для маркировки пакета.
RouterOS mark
В RouterOS делается похожая реализация следующим образом:
/ip firewall mangle
add chain=prerouting in-interface=ether1 dst-address=88.88.88.0/24 action=mark-packet new-packet-mark=mymark-paccket passthrough=no
add chain=prerouting in-interface=ether1 dst-address=88.88.88.0/24 action=mark-connection new-connection-mark=mymark-conn passthrough=no
В первом случае мы маркируем непосредственно пакет, а во втором соединение
RouterOS производительность
Давайте вместе вспомним нашу тему и разберем утверждение о том, что сначала происходит маркировка соединения, а затем маркировка пакета. Кажется, что фильтрация соединений при этом является менее трудоемкой операцией. Однако, стоит убедиться на практике, проведя лабораторную работу, прежде чем голословно выражаться о верности данного утверждения.
Возможно, оказавшись в лаборатории, мы обнаружим, что это не так и что выполнение этих операций требует значительного количества элементарных действий.
Что представляет собой тест
Сразу оговоримся все тесты проводятся на живом железе, а не на виртуальных машинах, для того чтобы исключить возможность загрузки CPU каким-то другими задачами.
Имеем стенд из трёх маршрутизаторов A->B->C
Все маршрутизаторы одинаковые модели с одинаковыми прошивками и версиями RouterOS, с помощью Traffic-generator маршрутизатор A генерирует трафик до маршрутизатора C с размером пакета 64b и с генерацией 70Kpps.
Правила мы настраиваем на маршрутизаторе B, а результат смотрим на маршрутизаторе C.
Первый тест

Настройка mangle
/ip firewall mangle
add chain=prerouting in-interface=ether5 action=mark-packet new-packet-mark=pm passthrough=no
В данном контексте мы разрешили прохождение определенного трафика без применения каких-либо правил, но мы заметили падение пакетов в секунду (pps) в то время, когда было включено правило mangle.
Второй тест

Настройка mangle
/ip firewall mangle
add chain=prerouting in-interface=ether5 action=mark-connection new-connection-mark=cm
add chain=prerouting connection-mark=cm action=mark-packet new-packet-mark=pm passthrough=no
Этот график остается тем же, за исключением того, что мы отключили первое правило и добавили два следующих правила, благодаря чему мы можем наблюдать еще одну ступеньку на графике, которая демонстрирует, что использование двух правил вызывает большую нагрузку, чем одно правило. Различие может быть небольшим, однако, оно все же присутствует.
RouterOS Best Practics
Однако, несмотря на то, что тест показал более быстрое время маркировки пакета без использования фильтра маркировки соединения, существует множество информации и статей, подтверждающих преимущества такого подхода. Именно здесь становится ясно, что при практическом применении этой конфигурации возникают неочевидные нюансы, которые выявляются только при работе с реальными данными. К сожалению, в таком случае необходимо иметь опыт и решать множество задач, чтобы правильно настроить систему и понимать все необходимые нюансы.
Давайте вспомним, для каких целей мы обычно применяем маркировку пакетов. В большинстве случаев она используется для настройки приоритета трафика в очередях, а лишь в единичных случаях — для маркировки пакетов в L3-фарволе, чтобы перехватить их в L2. Эти редкие кейсы часто связаны с уникальными задачами, такими как обнаружение нескольких идентичных MAC-адресов в сети или прозрачный брандмауэр. Возможно, существуют и другие сценарии использования, но они, вероятнее всего, также являются исключительными и редко встречаются.
Давайте опишем самый простой повседневный кейс связанный с очередями:
Необходимо ограничить объем трафика от определенного хоста. Для решения этой задачи мы можем использовать механизм simple-queue, однако при его использовании возникают некоторые ограничения, и в случае сложных или крупных конфигураций более предпочтительным становится использование чистого queue-tree. Данный механизм представляет собой однонаправленную реализацию очередей HTB, которые обрабатывают только помеченные пакеты.
Давайте представим, что перед нами поставили задачу ограничить скорость хоста используя queue-tree
Мы создаём такое строение

Вы не сможете нормально замаркировать пакет до хоста для download очереди так как если в вашей сети есть множество разных сетей, разные провайдеры, то вам придётся придумывать огромную “кучу =))” правил исключений или фильтрация, чтобы случайно не захватить лишние пакеты.

Каким образом вы отделите трафик от трафика из ВПН до хоста и из интернета до хоста, кто-то скажет, но ведь мы можем сделать исключение и фильтровать по !BOGON листам, но тогда я вам предложу контр пример.

Если каждый провайдер использует свою конфигурацию, как ориентироваться в такой ситуации? Этот кейс демонстрирует, как важно использовать маркировку соединений и пакетов, чтобы избежать путаницы и сделать правильный выбор.
Приведу пример
/ip firewall mangle
add chain=forward out-interface=ether1 src-address=192.168.0.173 in-interface=br0 action=mark-connection new-connection-mark=conn-ether1.173
add chain=forward connection-mark=conn-ether1.173 in-interface=br0 action=mark-packet new-packet-mark=ether1-upload.173 passthrough=no
add chain=forward connection-mark=conn-ether1.173 in-interface=!br0 action=mark-packet new-packet-mark=ether1-download.173 passthrough=no
add chain=forward in-interface=br0 src-address=192.168.0.173 out-interface=ether2 action=mark-connection new-connection-mark=conn-ether2.173
add chain=forward connection-mark=conn-ether2.173 in-interface=!br0 action=mark-packet new-packet-mark=ether2-download.173 passthrough=no
add chain=forward connection-mark=conn-ether2.173 in-interface=br0 action=mark-packet new-packet-mark=ether2-upload.173 passthrough=no
Мне кажется, очевидным является то, что считается “лучшими практиками”, на самом деле обусловлено технической необходимостью, а не исключительно повышением производительности.
Как проверить результат
- Очистите счётчики тестовых mangle rules.
- Создайте одно контролируемое соединение и проверьте connection-mark и packet-mark.
- Сравните загрузку CPU только при одинаковом профиле трафика и конфигурации.
Источники и связанные материалы
Команды в статье меняют сетевую конфигурацию. Перед работой сохраните экспорт, подготовьте способ восстановления доступа и применяйте изменения сначала в тестовой среде.