Записки IT специалиста
Правильное использование Fast Path и FastTrack в Mikrotik
- Автор: Уваров А.С.
- 05.09.2021
С самого основания данного ресурса мы не перестаем придерживаться мнения, что практика всегда должна опираться на необходимый теоретический минимум, давая в своих статьях порой обширные теоретические отступления. Без теории практика превращается в подобие шаманских камланий с бубном, когда вроде сделал все тоже самое, но ничего не работает. В этом плане технология FastTrack в Mikrotik, несмотря на всю свою простоту, держит пальму первенства по количеству возникающих с ней проблем, которые, в большинстве своем, возникают именно от незнания и непонимания работы этой технологии.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Что такое Fast Path
Основной проблемой роутеров Mikrotik, особенно недорогих моделей, является достаточно слабая вычислительная мощность процессора, являющаяся сдерживающим фактором для реализации многих сложных сетевых сценариев. Причина этого кроется в достаточно сложном процессе обработки трафика роутером, в чем можно убедиться подробно изучив диаграммы Packet Flow, показывающие порядок прохождения пакетов через устройство. Если вы собираетесь серьезно работать с устройствами Mikrotik, то данный раздел документации рекомендуется знать хотя бы на твердую четверку, так как именно здесь находятся ответы на многочисленные вопросы типа: «я все сделал по инструкции, но ничего не работает» или «работает, но как-то не так».
Более подробное рассмотрение данного вопроса выходит за рамки нашей статьи, поэтому вернемся к нагрузке на процессор. Очевидно, что причина этого — сложный путь обработки трафика, который полностью ложится на плечи CPU. Можно ли этого как-либо избежать? Можно, в RouterOS v6 для этого появилась новая технология — Fast Path (быстрый путь), которая позволяет направить трафик по быстрому пути, без обработки ядром ОС, что позволяет существенно снизить нагрузку на систему.
Основная мысль, положенная в основу этой технологии такова, что пакеты уже установленных соединений, а также тех участков передачи трафика, где не требуется фильтрация и контроль, можно отправить по быстрому пути, тем самым разгружая процессор и ускоряя передачу данных. Fast Path — это расширение драйвера интерфейса, которое позволяет ему напрямую взаимодействовать с некоторыми подсистемами RouterOS и пропускать остальные.
В настоящий момент Fast Path можно использовать для:
- Трафика IPv4
- Транзитного трафика IPv4 (FastTrack)
- Traffic Generator
- MPLS
- Мосты (Bridge)
Однако использование данной технологии имеет ряд ограничений, так для IPv4 FastPath требуется среди прочего:
- Отсутствие правил брандмауэра
- Отсутствие списков адресов
- Отсутствие политик IPsec
- Отсутствие очередей
- Отсутствие отслеживания соединений
Для мостов требуется:
- Отсутствие правил брандмауэра
- Отсутствие фильтрации VLAN
Это не полный список, с полным списком ограничений вы можете ознакомиться в официальной документации. Но уже этого достаточно, чтобы понять, с Fast Path не все так просто и за производительность приходится расплачиваться возможностями. Если мы хотим использовать быстрый путь, то нам следует отказаться практически от любого контроля и фильтрации трафика.
Также помним, что Fast Path — это расширение драйвера интерфейса и оно может поддерживаться не для всех портов и типов интерфейсов. Так в современных моделях серии RB9xx и RB2011/3011/4011 Fast Path поддерживается для всех портов, а вот более старые модели могут иметь ограничения, поэтому советуем снова обратиться к документации. Также Fast Path можно использовать для PPPoE, L2TP, IP-IP, GRE и EoIP, мостов, VLAN и беспроводных интерфейсов .
При этом может возникнуть ситуация, когда один из интерфейсов поддерживает Fast Path, а другой нет. В этом случае возможны два варианта: если входящий интерфейс поддерживает Fast Path, то часть пути (насколько это возможно) пакеты пройдут через него, а затем перейдут на Slow Path (медленный путь) с полной обработкой трафика на CPU. Если интерфейс входа не поддерживает Fast Path, то трафик проделает весь путь по Slow Path, вне зависимости от того, поддерживает Fast Path интерфейс выхода или нет.
Еще один важный момент: Fast Path можно использовать только для IPv4 TCP или UDP соединений. Однако в правилах нет необходимости указывать протокол, для всего неподдерживаемого трафика Fast Path будет игнорироваться.
Практическое применение Fast Path
Прежде всего перейдем в IP — Settings и убедимся, что флаги Allow Fast Path и Route Cache установлены. В современных моделях это настройки по умолчанию, поэтому данная рекомендация носит чисто академический характер. В данной конфигурации IPv4 TCP и UDP-трафик, удовлетворяющий перечисленным выше условиям, будет автоматически отправлен по быстрому пути.
Для мостов по умолчанию активируется опция Fast Forward, включающая для передаваемых пакетов быстрый путь, но при этом помним, что DHCP-snooping не должен быть включен, а также отсутствовать любая фильтрация трафика или VLAN внутри моста.
А вот дальше уже становится интереснее. Туннельные соединения и L2TP поддерживают Fast Path, но это лишает нас возможности использовать IPsec, поэтому от Fast Path для данных видов соединений придется отказаться. Тем более что система не даст нам создать интерфейс, сочетающий Fast Path и IPsec.
Правда для L2TP-соединений вы можете одновременно установить обе опции, но при включённом IPsec Fast Path будет игнорироваться. Тем не менее мы категорически не рекомендуем использовать такие неоднозначные варианты настройки, потому как при обновлении RouterOS поведение системы может измениться, что способно привести к неожиданным и непредсказуемым результатам.
Коротко подведем итоги. RouterOS по умолчанию сама будет использовать Fast Path там, где это возможно, наша задача — понимать, что влияет на возможность использования данной технологии и делать правильный выбор между Fast Path или возможностями дополнительного контроля и защиты трафика.
Практическое использование Fasttrack
Fasttrack можно без преувеличения назвать самой неправильно настраиваемой опцией. Если выполнить поиск в сети интернет, то можно увидеть множество материалов про то, как решить те или иные проблемы с Fasttrack. Но большинство этих проблем также связаны с непониманием работы данной технологии. Давайте разберемся, что же такое Fasttrack, это сочетание Fast Path + Connection Tracking, проще говоря мы можем отправить все уже установленные и связанные с ними соединения по быстрому пути.
При этом нам окажутся недоступны брандмауэр, очереди, IPsec и многое другое. По сути, пакеты, попадающие в Fasttrack проскакивают роутер без обработки, что значительно снижает нагрузку на процессор, но лишает нас возможности гибко управлять трафиком. Насколько это оправдано? Нужно смотреть по задачам, скажем если это выход внутренних устройств в интернет, то Fasttrack тут вполне к месту, позволяя существенно разгрузить роутер. Насколько это безопасно? Безопасность в данном случае не пострадает, так как по быстрому пути идут уже установленные соединения, новый пакет обязательно пройдет по медленному пути с полной обработкой брандмауэром.
Для включения Fasttrack перейдем в IP — Firewall — Filter Rules и добавим следующее правило: Chain — forward, Connection State: established, related, на закладке Action установим действие fasttrack connection. Это отправит все установленные и связанные соединения по короткому пути, но лишит нас возможности обработки и контроля такого трафика.
Еще один важный момент, вы обязательно должны указать Connection State для этого правила, если вы этого не сделаете, то получите огромную дыру в безопасности, так как мимо брандмауэра по короткому пути пойдут все пакеты. Мы бы не стали заострять на этом внимание, но в нашей практике были случаи, когда администраторы включали Fasttrack для всего транзитного трафика.
Сразу после него добавим еще одно правило: Chain — forward, Connection State: established, related, на закладку Action можно не переходить, так как accept — действие по умолчанию. Для чего это нужно? Как мы помним, Fast Path работает только для TCP и UDP соединений, остальной трафик пойдет по этому правилу, кроме того, некоторая часть пакетов попадающих под действие Fasttrack направляется по медленному пути и без этого правила они бы были отброшены.
/ip firewall filter
add chain=forward action=fasttrack-connection connection-state=established,related
add chain=forward action=accept connection-state=established,related
Это самая простая реализация Fasttrack, которая приведена в большинстве инструкций, и она же вызывает большинство проблем. Почему так? Да потому, что приведенное выше правило отправляет по быстрому пути все установленные и связанные соединения, без учета их направления и назначения. При этом становятся недоступны фильтрация и маркировка трафика брандмауэром, очереди и политики IPsec. Стоит ли удивляться, что все завязанные на данные технологии настройки перестают работать.
Как быть? Нужно конкретизировать правила, основная наша цель — снизить нагрузку на устройство, поэтому мы хотим использовать Fasttrack для обычного интернет трафика, но исключим оттуда все остальные соединения. Поэтому вместо одного правила используем два:
add action=fasttrack-connection chain=forward connection-state=established,related in-interface=bridge1 out-interface=ether10
add action=fasttrack-connection chain=forward connection-state=established,related in-interface=ether10 out-interface=bridge1
Где bridge1 — внутренний мост, а ether10 — внешний интерфейс, смотрящий в интернет.
Что изменилось? Теперь по быстрому пути идут пакеты только из локальной сети в интернет и обратно. Все остальные соединения полноценно обрабатываются ядром RouterOS и могут полностью использовать все ее возможности.
Если направлений трафика, который мы хотим направить по быстрому пути несколько, скажем, несколько каналов в интернет, либо межсетевой трафик, то создаем для каждого направления свою пару правил, с указанием входящего и исходящего интерфейсов.
Для IPsec в самое начало цепочки forward (т.е. обязательно выше правил с fasttrack) следует добавить еще два правила:
/ip firewall filter
add action=accept chain=forward ipsec-policy=in,ipsec
add action=accept chain=forward ipsec-policy=out,ipsec
Важно! Обратите внимание, так как Fast Path — это расширение драйвера интерфейса, то и в качестве критериев в правилах мы должны использовать именно интерфейсы, что позволит максимально корректно обрабатывать потоки трафика и избежать логических ошибок.
Также обратите внимание, что Fasttrack применяется именно для транзитных соединений, не влияя на входящие и исходящие соединения самого роутера. Мы бы не заостряли на этом внимание, но в сети нам попадались инструкции, когда пакеты маркировались в цепочках INPUT и OUTPUT, а затем эти метки соединений пытались использовать в цепочке FORWARD, надо ли говорить, что подобные конструкции работать не будут.
Ну и логическое завершение нашей статьи — практическая польза от Fasttrack. Мы провели простой тест, запустили на одном из узлов сети Speedtest от Ookla используя для выхода в интернет RB2011. С включенным Fasttrack роутер прокачал все 100 Мбит/с тарифа при нагрузке на CPU в пределах 30-32%:
А теперь выключаем Fasttrack и видим, что роутер полностью лег, но при этом даже не смог прокачать тариф, упершись в планку 80 Мбит/с:
Становится очевидно, что Fast Path и FastTrack — важные технологии, позволяющие существенно увеличить производительность Mikrotik, но применять их следует обдуманно, учитывая все плюсы и минусы данного решения. Надеемся, что данная статья окажется вам полезна и вы теперь будете использовать все возможности Fast Path без каких-либо затруднений и будете понимать как именно это работает.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Дополнительные материалы:
Mikrotik
- Оборудование MikroTik класса SOHO. Общий обзор и сравнение возможностей
- Производительность младших моделей Mikrotik hEX и hAP. Экспресс-тестирование
- Базовая настройка роутера MikroTik
- Расширенная настройка DNS и DHCP в роутерах Mikrotik
- Автоматическое резервное копирование настроек Mikrotik на FTP
- Проброс портов и Hairpin NAT в роутерах Mikrotik
- Настройка IPTV в роутерах Mikrotik на примере Ростелеком
- Настройка VPN-подключения в роутерах Mikrotik
- Настройка черного и белого списков в роутерах Mikrotik
- Настройка выборочного доступа к сайтам через VPN на роутерах Mikrotik
- Настройка OpenVPN-сервера на роутерах Mikrotik
- Безопасный режим в Mikrotik или как всегда оставаться на связи
- Настройка Proxy ARP для VPN-подключений на роутерах Mikrotik
- Настраиваем Port Knocking в Mikrotik
- Резервирование каналов в Mikrotik при помощи рекурсивной маршрутизации
- Настраиваем родительский контроль на роутерах Mikrotik
- Настраиваем IKEv2 VPN-сервер на роутерах Mikrotik с аутентификацией по сертификатам
- Расширенная настройка Wi-Fi на роутерах Mikrotik. Режим точки доступа
- Mikrotik CHR — виртуальный облачный роутер
- Настройка контроллера CAPsMAN (бесшовный Wi-Fi роуминг) на Mikrotik
- Настройка VPN-подключения на роутерах Mikrotik если подсети клиента и офиса совпадают
- Настраиваем использование DNS over HTTPS (DoH) на роутерах Mikrotik
- Настройка PPTP или L2TP VPN-сервера на роутерах Mikrotik
- Установка Mikrotik CHR на виртуальную машину Proxmox
- Защита RDP от перебора паролей при помощи оборудования Mikrotik
- Настройка SSTP VPN-сервера на роутерах Mikrotik
- Настройка выборочного доступа к сайтам через VPN с автоматическим получением маршрутов по BGP на роутерах Mikrotik
- Особенности эксплуатации CA на роутерах Mikrotik: резервное копирование, экспорт и импорт сертификатов
- Настройка туннелей GRE и IPIP на роутерах Mikrotik
- Правильное использование Fast Path и FastTrack в Mikrotik
- DHCP Snooping — настройка защиты от неавторизованных DHCP-серверов на оборудовании Mikrotik
- Работа оборудования Mikrotik в режиме беспроводной станции (клиента)
- Используем режим ARP reply-only для повышения безопасности сети на оборудовании Mikrotik
The Dude
- The Dude. Установка и быстрое начало работы
- Централизованное управление обновлением RouterOS при помощи The Dude
- Централизованный сбор логов Mikrotik на сервер The Dude
Помогла статья? Поддержи автора и новые статьи будут выходить чаще:
Или подпишись на наш Телеграм-канал:
Как настроить межсетевой экран в MikroTik, чтобы проходил трафик VPN?
Разрешить весь VPN-трафик через VPN-соединение
Надо учитывать, что некоторые виды подключения, например GRE не являются PPP.
/ip firewall filter
add chain=forward comment=»Permit all PPP» in-interface=all-ppp
Разрешить PPTP-подключение
/ip firewall filter
add chain=input dst-port=1723 protocol=tcp comment=»Permit PPTP»
add action=accept chain=input protocol=gre comment=»Permit GRE»
Разрешить L2TP-подключение
/ip firewall filter
add chain=input dst-port=1701 protocol=udp comment=»Permit L2TP»
Разрешить IPSec-подключение
/ip firewall filter
add chain=input port=500,4500 protocol=udp comment=»Permit IPSec ports 500 and 4500″
add chain=input protocol=ipsec-esp comment=»Permit IPSec protocol ipsec-esp»
Разрешить OpenVPN-подключение
/ip firewall filter
add action=accept chain=input dst-port=1194 protocol=tcp comment=»Permit OpenVPN»
Разрешить SSTP-подключение
/ip firewall filter
add action=accept chain=input dst-port=443 protocol=tcp comment=»Permit SSTP»
Разрешить GRE-подключение
/ip firewall filter
add action=accept chain=input protocol=gre comment=»Permit GRE»
Разрешить IPIP-подключение
/ip firewall filter
add action=accept chain=input protocol=ipip comment=»Permit IPIP»
Прохождение IPSec при использовании Fast Track
Fast Track это опция представленная в RouterOS 6.29. С помощью этой опции можно передавать пакеты в обход ядра Linux. За счет этого существенно повышается производительность маршрутизатора.
Включить Fast Track можно следующим образом:
/ip firewall filter add chain=forward action=fasttrack-connection connection-state=established,related
Это позволит пакетам у которых состояние «Established» или «Related» обходить ядро Linux и быть сразу перенаправленным к цели. Такие пакеты не будут проходить ни через одно правило файервола или другое правило обработки пакетов. Of course – a connection gains the state of established or related once it went through the firewall so it will still be secure.
Как результат появляется недостаток: соединения IPsec так же не будут обработаны. Решить эту проблему можно следующим образом.
Вначале надо пометить соединения IPsec:
/ip firewall mangle
add action=mark-connection chain=forward comment=»Mark IPsec» ipsec-policy=out,ipsec new-connection-mark=ipsec
add action=mark-connection chain=forward comment=»Mark IPsec» ipsec-policy=in,ipsec new-connection-mark=ipsec
Далее изменить стандартное правило Fast Track так, что бы оно не обрабатывало пакеты IPsec. Изменения внесенные в стандартное правило выделены красным.
/ip firewall filter add action=fasttrack-connection chain=forward comment=FastTrack
Mikrotik: используем FastTrak
Освоить MikroTik вы можете с помощью онлайн-курса «Настройка оборудования MikroTik». В курсе изучаются все темы из официальной программы MTCNA. Автор – официальный тренер MikroTik. Материал подходит и тем, кто уже давно работает с оборудованием MikroTik, и тем, кто еще не держал его в руках. В состав входят 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.
Узнать подробности
Что это: FastTrack это технология для разгрузки CPU при пересылке пакетов роутером — пакеты пересылаются без обработки. Таким образом ускоряется пересылка пакетов и уменьшается нагрузка на CPU.
Не все устройства поддерживают FastTrack, перечень можно посмотреть в документации на сайте http://wiki.mikrotik.com/wiki/Manual:Wiki/Fasttrack. Так же необходима версия MikroTik RouterOS начиная от 6.29
Как включить
Открываем IP → Settings и ставим галочку «Allow Fast Path»
Далее добавляем правило в IP → Firewall → Filter Rules:
Chain: forward
Connection State: established, related
Action: fasttrack connection
Автоматически создается правила, которые невозможно удалить:
Таблица Filter Rules: 1 правило в самом начале списка с комментарием «special dummy rule to show fasttrack counters»
Таблица Mangle: 3 правила в самом начале списка с комментарием «special dummy rule to show fasttrack counters»
То же самое командами:
> /ip settings set allow-fast-path=yes > /ip firewall filter add chain=forward action=fasttrack-connection connection-state=established,related
Как посмотреть кол-во обработанных пакетов
Открываем IP → Settings и смотрим счетчики — в них должно быть что-нибудь, отличное от ноля:
Инструкции по настройке MikroTik
Настройка MikroTik FastTrack Connection, быстрый FireWall
автор: adminse 20 Авг категория: Инструкции 2 комментария
Краткое описание: Руководство по настройке MikroTik FastTrack Connection, создание правила для разгрузки процессора(CPU).
Нужна настройка FastTrack Connection в MikroTik?
Настройка сервисов на маршрутизаторах MikroTik: подключение интернета, DHCP, brige, VLAN, WiFi, Capsman, VPN, IpSec, PPTP, L2TP, Mangle, NAT, проброс портов, маршрутизация(routing), удаленное подключение и объединение офисов.
Что такое Mikrotik FastTrack Connection
Частым являем у маршрутизаторов Mikrotik является чрезмерная нагрузка процессора(CPU). Это обуславливается двумя факторами:
- Оборудование подобрано не корректно и не справляется даже с штатными задачами;
- Расширение сетевой инфраструктуры(VPN туннели, WiFi контроллер Capsman, большое количество тяжелого трафика(приоритетного) – видео и голоса).
Маршрутизатор Mikrotik в этом случае начинает потреблять много процессорного времени, подвергая всю сеть к большим задержкам по сетевой маршрутизации. Самая первая настройка, с помощью которой можно снизить нагрузку на процессор(CPU) – Mikrotik Firewall.
Стоит отметить, это всего лишь один из методов по оптимизации нагрузки маршрутизаторов Mikrotik.
Настройка Mikrotik FastTrack Connection
Зафиксируем рабочую нагрузку на процессор(CPU) в диапазоне 40-60%.
/ip firewall filter add action=fasttrack-connection chain=forward connection-state=established,related
Что же такого написано в этом правиле? – для всех соединений типа established и related применять правило fasttrack-connection. Это трафик не попадает в разделы:
- Firewall filter;
- Firewall mangle;
- IPSec;
- Queues с parrent=global;
- Hotspot;
- VRF.
Т.е. не обрабатывается фильтрами firewall-а, не может быть промаркирован через Mangle, не попадает в очередь ограничения скорости Queues и тд.
После основного правила FastTrack Connection нужно добавить разрешающее правило для остального трафика
/ip firewall filter add action=accept chain=forward connection-state=established,related
На выходе получаем загрузку процессор(CPU) ~ в 2 раза меньше, чем исходное состояние.
Есть вопросы или предложения по настройке FastTrack Connection в MikroTik? Активно предлагай свой вариант настройки! Оставить комментарий →