Перейти к содержимому

Fast track mikrotik что это

  • автор:

Записки 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-трафик, удовлетворяющий перечисленным выше условиям, будет автоматически отправлен по быстрому пути.

mikrotik-fastpath-fasttrack-001.png

Для мостов по умолчанию активируется опция Fast Forward, включающая для передаваемых пакетов быстрый путь, но при этом помним, что DHCP-snooping не должен быть включен, а также отсутствовать любая фильтрация трафика или VLAN внутри моста.

mikrotik-fastpath-fasttrack-002.png

А вот дальше уже становится интереснее. Туннельные соединения и L2TP поддерживают Fast Path, но это лишает нас возможности использовать IPsec, поэтому от Fast Path для данных видов соединений придется отказаться. Тем более что система не даст нам создать интерфейс, сочетающий Fast Path и IPsec.

mikrotik-fastpath-fasttrack-003.png

Правда для L2TP-соединений вы можете одновременно установить обе опции, но при включённом IPsec Fast Path будет игнорироваться. Тем не менее мы категорически не рекомендуем использовать такие неоднозначные варианты настройки, потому как при обновлении RouterOS поведение системы может измениться, что способно привести к неожиданным и непредсказуемым результатам.

mikrotik-fastpath-fasttrack-004.png

Коротко подведем итоги. 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%:

mikrotik-fastpath-fasttrack-005.png

А теперь выключаем Fasttrack и видим, что роутер полностью лег, но при этом даже не смог прокачать тариф, упершись в планку 80 Мбит/с:

mikrotik-fastpath-fasttrack-006.png

Становится очевидно, что Fast Path и FastTrack — важные технологии, позволяющие существенно увеличить производительность Mikrotik, но применять их следует обдуманно, учитывая все плюсы и минусы данного решения. Надеемся, что данная статья окажется вам полезна и вы теперь будете использовать все возможности Fast Path без каких-либо затруднений и будете понимать как именно это работает.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Дополнительные материалы:

Mikrotik
  1. Оборудование MikroTik класса SOHO. Общий обзор и сравнение возможностей
  2. Производительность младших моделей Mikrotik hEX и hAP. Экспресс-тестирование
  3. Базовая настройка роутера MikroTik
  4. Расширенная настройка DNS и DHCP в роутерах Mikrotik
  5. Автоматическое резервное копирование настроек Mikrotik на FTP
  6. Проброс портов и Hairpin NAT в роутерах Mikrotik
  7. Настройка IPTV в роутерах Mikrotik на примере Ростелеком
  8. Настройка VPN-подключения в роутерах Mikrotik
  9. Настройка черного и белого списков в роутерах Mikrotik
  10. Настройка выборочного доступа к сайтам через VPN на роутерах Mikrotik
  11. Настройка OpenVPN-сервера на роутерах Mikrotik
  12. Безопасный режим в Mikrotik или как всегда оставаться на связи
  13. Настройка Proxy ARP для VPN-подключений на роутерах Mikrotik
  14. Настраиваем Port Knocking в Mikrotik
  15. Резервирование каналов в Mikrotik при помощи рекурсивной маршрутизации
  16. Настраиваем родительский контроль на роутерах Mikrotik
  17. Настраиваем IKEv2 VPN-сервер на роутерах Mikrotik с аутентификацией по сертификатам
  18. Расширенная настройка Wi-Fi на роутерах Mikrotik. Режим точки доступа
  19. Mikrotik CHR — виртуальный облачный роутер
  20. Настройка контроллера CAPsMAN (бесшовный Wi-Fi роуминг) на Mikrotik
  21. Настройка VPN-подключения на роутерах Mikrotik если подсети клиента и офиса совпадают
  22. Настраиваем использование DNS over HTTPS (DoH) на роутерах Mikrotik
  23. Настройка PPTP или L2TP VPN-сервера на роутерах Mikrotik
  24. Установка Mikrotik CHR на виртуальную машину Proxmox
  25. Защита RDP от перебора паролей при помощи оборудования Mikrotik
  26. Настройка SSTP VPN-сервера на роутерах Mikrotik
  27. Настройка выборочного доступа к сайтам через VPN с автоматическим получением маршрутов по BGP на роутерах Mikrotik
  28. Особенности эксплуатации CA на роутерах Mikrotik: резервное копирование, экспорт и импорт сертификатов
  29. Настройка туннелей GRE и IPIP на роутерах Mikrotik
  30. Правильное использование Fast Path и FastTrack в Mikrotik
  31. DHCP Snooping — настройка защиты от неавторизованных DHCP-серверов на оборудовании Mikrotik
  32. Работа оборудования Mikrotik в режиме беспроводной станции (клиента)
  33. Используем режим ARP reply-only для повышения безопасности сети на оборудовании Mikrotik
The Dude
  1. The Dude. Установка и быстрое начало работы
  2. Централизованное управление обновлением RouterOS при помощи The Dude
  3. Централизованный сбор логов Mikrotik на сервер The Dude

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Подпишись на наш Telegram-канал

Или подпишись на наш Телеграм-канал:

Прочее:Fasttrack

Опция IPv4 FastTrack используется для автоматической маркировки соединений. Только TCP и UDP соединения могут быть маркированы. IPv4 FastTrack поддерживает NAT (SNAT, DNAT или оба). Обратите внимание, что не все пакеты в соединении могут быть переданы с помощью fasttrack, даже, если они промаркированы соответствующим образом. По этой причине fasttrack-соединение идет после идентичного правила action=accept. При использовании FastTrack в основной массе не будут работать файерволл, трассировка соединений, очереди, учет ip-трафика, IPSec, универсальный клиент hotspot, распределение vrf. По этой причине администратор должен внимательно следить что бы fasttrack не накладывалась с другими настройками маршрутизатора.

Полезные материалы по MikroTik

Углубленный курс "Администрирование сетевых устройств MikroTik" Онлайн-курс по MikroTik с дипломом государственного образца РФ. Много лабораторных работ с проверкой официальным тренером MikroTik. С нуля и до уровня MTCNA. 
На Telegram-канале Mikrotik сэнсей можно получить доступ к закрытой информации от официального тренера MikroTik. Подписывайтесь 

Требования

IPv4 FastTrack будет работать при условии выполнения следующих условий:

  • не используются mesh или metarouter;
  • sniffer, torch или traffic generator не запущены;
  • /tool mac-scan активно не используется;
  • /tool ip-scan активно не используется.

Поддерживаемые аппаратные платформы

Fasttrack поддерживается на следующих устройствах:

RouterBoard Интерфейс
RB6xx series ether1,2
RB7xx series all ports
RB800 ether1,2
RB9xx series all ports
RB1000 all ports
RB1100 series ether1-11
RB2011 series all ports
RB3011 series all ports
CRS series routers all ports
CCR series routers all ports
All devices wireless interfaces, if wireless-fp or wireless-cm2 package used

Пример

Первоначальная настройка

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

/ip firewall filter add chain=forward action=fasttrack-connection connection-state=established,related add chain=forward action=accept connection-state=established,related

Так же на вкладке Mangle появятся дополнительные правила, которые позволят использовать преимущество Fasttrack:

Настройка FastTrack на MikroTik, вкладка Filter Rules

  • /ip firewall filter

Настройка FastTrack на MikroTik, вкладка Mangle

  • /ip firewall mangle
 Если вы используете очереди, правила файерволла и правила mangle, то эти правила не будут применены для трафика Fasttrack. 
  • Соединение будет обрабатываться с помощью FastTrack до тех пор пока соединение не закроется, не наступит тайм-аут или маршрутизатор не будет перезагружен.
  • Dummy rule может быть убрано только после того, как правило FastTrack будет удалено или выключено и маршрутизатор будет перезагружен.

FastTrack на RB2011

Пример тестирования маршрутизатора RB2011 с одним потоком TCP.

Без FastTrack С FastTrack
360 Мб/c 890 Мб/c
загрузка ЦП 100% Загрузка ЦП 86%
44% ЦП задействовано на файервол 6% ЦП задействовано на файервол

Полезные материалы по MikroTik

Углубленный курс "Администрирование сетевых устройств MikroTik" Онлайн-курс по MikroTik с дипломом государственного образца РФ. Много лабораторных работ с проверкой официальным тренером MikroTik. С нуля и до уровня MTCNA. 
На Telegram-канале Mikrotik сэнсей можно получить доступ к закрытой информации от официального тренера MikroTik. Подписывайтесь 

FastTrack на MikroTik – уменьшаем нагрузку на CPU

FastTrack на MikroTik

Добрый вечер, уважаемые читатели моего скромного блога! Прошу прощения, что давно ничего не писал, я был занят одним проектом, да и идей особо не было. Однако сегодня я хочу поделиться с вами своей историей о нагрузке на CPU моего MikroTik hAP ac. Вы узнаете про FastTrack на MikroTikи оптимизацию Firewall.

Итак, что мы имеем:

  • 2 постоянно работающих L2TP+IPSec подключения
  • 18 правил Firewall
  • 13 правил NAT
  • 3 правила Mangle
  • 10 скриптов в Scheduler (5 из которых выполняются каждую минуту)
  • Один игровой сервер
  • Один личный компьютер
  • Мобильные устройства

Все это дело вроде бы работало без сбоев, пока однажды, когда я был на работе, у меня не пропала связь с Микротиком. Поскольку я работаю в провайдере и от него же у меня дома интернет, я зашел в биллинг – интернет оплачен, сессии нет. Зашел на свитч – линк на порту есть, ошибки не копятся, но маки не приходят. Перезагрузка порта не помогла.

Когда я наконец пришел домой после смены, было похоже что Микротик завис. Лампочки горели, но DHCP он не раздавал, по MAC к нему подключиться тоже не удалось. После его перезагрузки связь восстановилась. Подозреваю что причиной стала высокая и длительная нагрузка на CPU, но выяснил я это уже позже. Как оказалось, при скачивании торрента на компьютере со скоростью 25-30 МБ/сек, нагрузка на CPU Микротика держится в районе 90-100%. А перед уходом на работу я как раз поставил скачиваться 5 сезонов сериала.

Как же я решил проблему высокой нагрузки на CPU MikroTik?

  1. Оптимизация маркировки пакетов. Не помню почему, но у меня было сделано 2 правила маркировки и соответственно 2 маршрута на VPN – отдельно для Telegram и отдельно для всего остального. Практической необходимости для этого я не нашел, поэтому объединил все в одно правило и исправил Address Lists. Быть может это никак не сказывалось на производительности, но все же я решил сделать нормально.
  2. Оптимизация Firewall.
    • В первую очередь необходимо убедиться, что правила расположены в нужном порядке. Сделать это не трудно – достаточно посмотреть статистику трафика. Правила с наибольшим количеством трафика должны быть самыми первыми. В идеале, самым первым правилом должно быть action=accept chain=forward connection-state=established,related .
    • Далее, я сократил число правил, объединив некоторые правила. Например тот же forward портов, порты можно было указать в одном правиле через запятую. Не знаю, почему не сделал этого раньше.
  3. Настраиваем FastTrack на MikroTik.
    • Если у вас есть бридж, объединяющий локальные интерфейсы, убедитесь что у него включена галочка Fast Forward. Также не забываем отключить IP Firewall для бриджа: /interface bridge settings set use-ip-firewall=no
    • Добавляем правило Firewall: /ip firewall filter add action=fasttrack-connection chain=forward connection-state=established,related
    • Сразу под ним должно быть расположено правило: /ip firewall filter add action=accept chain=forward connection-state=established,related
    • Если вы маркируете часть трафика и заворачиваете его на VPN, проверьте, чтобы в IP => Settings не стояла галочка Route Cache. При одновременно включенных FastTrack и Route Cache, у меня сильно проседала скорость открытия сайтов, которые заворачиваются на VPN.
  4. Оптимизация торрент-клиента. Если не качаете торренты, можете не читать это. Если в вашем торрент-клиенте включен протокол uTP – выключите его. Практической пользы от него я не увидел, зато из-за него очень сильно возрастает количество сетевых пакетов и соответственно нагрузка на CPU. Живой пример: после отключения uTP на моем торрент-клиенте, нагрузка на CPU Микротика при скачивании торрента у меня упала на 40%.

Подводим итоги: после выполнения этих манипуляций, при скачивании торрента со скоростью 25-30 МБ/сек, а также работающем игровом сервере (с игроками онлайн), двумя активными VPN соединениями и параллельном серфинге интернета – нагрузка на CPU моего Микротика не превышает 20-25%.

Пара слов про FastPath и FastTrack в MikroTik 08.01.2019 09:47

Ни для кого не секрет, что MikroTik производит Software Baser роутеры и большую часть по обработке трафика берет на себя CPU. У данного подхода есть приимущество, т.к. можно напрограмировать практически любой функционал и поддерживать относительно единую систему для всех устройств. Но по скорости они всегда будут отставать от маршрутизаторов со специализированными чипами.

Программная обработка пакетов имеет ряд недостатков:

  1. Отсутствие wire speed — процессор (особенно одноядерный) не может работать быстрее, чем специализированные чипы.
  2. Блокировки. При реально больших объемах трафика (например DoS/DDoS) у вас может не быть возможности подключиться к роутеру даже через консольный интерфейс, т.к. все процессорное время будет занимать обработка трафика.
  3. Сложность масштабирования. Нельзя добавить модуль увеличивающий скорость обработки пакетов аппаратно.

Разработчики идут на различные аппаратные и програмные решения для улучшения ситуации:

  1. Switch-чип на недорогих моделях, позволяет обрабатывать Layer2 трафик минуя CPU.
  2. SoC с хорошим сетевым чипом (линейка CCR).
  3. Использование аппаратного шифрования
  4. Различные технологии снижающие число программных обработок для пакетов (FastPath и FastTrack), о них и пойдет речь.

SlowPath vs FastPath

SlowPath — это базовый путь трафика по внутренним подсистемам MikroTik, он может быть давольно разнообразным и, чем длинее путь, тем выше нагрузка на CPU и больше падает скорость.
FastPath — алгоритмы позволяющие передавать трафик, минуя достаточно большие блоки обработки.

Условия работы и поддержка на устройствах

Большинство современных роутеров и плат от MikroTik поддерживают FastPath, но на wiki есть подробный список:

Модель Поддержка на ethernet интерфейсах
RB6xx series ether1,2
Most of the RB7xx series all Ethernet ports
RB800 ether1,2
RB9xx series all Ethernet ports
RB1000 all Ethernet ports
RB1100 series ether1–11
RB2011 series all Ethernet ports
RB3011 series all Ethernet ports
CRS series routers all Ethernet ports
CCR series routers all Ethernet ports
Other devices Not supported

И отдельный список для интерфейсов отличных от ethernet:

Интерфейс Поддержка fastpath Примечание
Wireless Да
Bridge Да Начиная с 6.29
VLAN, VRRP Да Начиная с 6.30
Bonding Да Только RX трафик, начиная с 6.30
EoIP, GRE, IPIP Да Начиная с 6.33. При включении опции не весь туннельный трафик пойдет по FastPath
L2TP, PPPoE Да Начиная с 6.35
MPLS Да Currently MPLS fast-path applies only to MPLS switched traffic. MPLS ingress and egress will operate as before.
Прочие Нет

mehwqzkzgzsofdkfqpi_c4pkfl4.png

Для полноценной работы FastPath необходима поддержка как со стороны входящего, так и со стороны исходящего интерфейсов. На интерфейсах должны быть включены только аппаратные очереди.

И последнее, FastPath очень не любит фрагментированный трафик. Если пакет зафрагментирован — он однозначно застрянет на CPU.

FastPath и Bridge

Bridge — это програмный интерфейс используемый для создания Layer2 связи между несколькими аппаратными (или програмными) интерфейсами. Если объеденить на роутере 4 ethernet интерфейса в bridge (и включить hw=yes ) и один wireless, то трафик между ethernet интерфейсами будет ходить минуя программный интерфейс, а трафик между ethernet и wireless будет задействовать программный bridge. На роутерах с несколькими чипами (например RB2011) трафик между интерфейсами с разных чипов будет задействовать возможности програмного bridge (иногда для снижения нагрузки интерфейсы просто объединяют патч-кордом и в целом это работает).

FatsPath — относится только к трафику приходящему через CPU (програмный bridge), обычно это трафик между интерфесов с разных чипов, либо отключена опция hw=yes .

На Packet Flow трафик проходящий через Bridge выглядит следующим образом:
ppc77pa8rlipu0g8ry_zqmnjmeo.png
И подробнее:
dig-sieg8ukdvjdigrqzi7clflg.jpeg

gnsydghupatn1sjekl83ezpaaag.png

Включается в настройки bridge (настройка едина для всех bridge интерфейсов) [Bridge]→[Settings]→[Allow FastPath], там-же можно увидеть счетчики.

Для работы FastPath в Bridge необходимо соблюдать следующие условия:

  1. Нет конфигурации vlan на bridge интерфейсах (думаю это не актуально для CRS серии, где vlan настраиваются на аппаратном уровне, но могу ошибаться)
  2. Нет правил в /interface bridge filter и /interface bridge nat , это те самые блоки из второй схемы, которые проходит фрейм.
  3. Не включен ip firewall ( use-ip-firwall=no ). Хорошая функция для захвата трафика и отладки сети, но на постоянной основе включается редко.
  4. Не использовать mesh и metarouter
  5. На интерфейсе не запущены: sniffer, torch и traffic generator.

FastPath и Tunnel

xp8zaooul-q3kiuxlyyubcdgtuo.png

Если двумя словами: туннельный интерфейс — это инкапсуляция одних пакетов в нагрузочную часть других пакетов. Если идти по PacketFlow, то красными линиями отмечен оригинальный пакет, синими — оригинальный пакет инкапсулированный в пакет туннельного протокола (например ipip или gre; eoip попадает (и приходит из) в bridging decision; с туннельным ipsec все еще интереснее, но не имеет отношение к fastpath).

Туннельный трафик в FastPath не будет виден в: firewall, queues, hotspot, vrf, ip accounting. Но часть пакетов продолжит передаваться по SlowPath, это надо учитывать при конфигурации Firewall.

Для работы FastPath в туннельных интерфейсах необходимо соблюдать следующие условия:

  1. Не использовать ipsec шифрование
  2. Избегать фрагментацию пакетов (правильно настраивать mtu)
  3. Включить allow-fast-path=yes на туннельном интерфейсе

FastPath и Layer3

Layer3 — это передача пакетов между подсетями, маршрутизатор строит таблицы маршрутизации и исходя из них направляет пакет следующему хопу.

ncbis-wyv_inqnc2lew-09xvr9a.png

На Trafic Flow транзитный трафик сетевого уровня выглядит так:

gikb0n8j2-iftzfjlsedahp_uau.jpeg

идем вглубь

peop-xdkh2t7awo75iftvgh6xb0.png

и еще глубже

Для работы FastPath на Layer3 необходимо соблюдать следующие условия:

  1. Не добавлять правила в firewall (совсем, даже nat).
  2. Не добавлять записи в Address Lists.
  3. Не настраивать Simple Queues и Queues Tree для parent=global , либо интерфейсов на которых планируется получить рабочий FastPath .
  4. Не использовать mesh и metarouter.
  5. Отключать Connection tracker. Опция auto была введена именно для работы FastPath при отсуствии правил в firewall.
  6. Не использовать /ip accounting .
  7. Не использовать /ip route vrf .
  8. Не конфигурировать /ip hotspot .
  9. Не добавлять политики ipsec.
  10. Route Cache должен быть включен.
  11. Не использовать активно: /tool mac-scan и /tool ip-scan .
  12. Запущенные sniffer, torch и traffic generator мешают работе FastPath.

cziuc4-sgpaithzactxeaegs8tw.png

Включается в настройках ip: [IP]→[Settings], там-же можно увидеть счетчики успешно обработанных пакетов.

Скриншот с домашнего роутера. У меня достаточно нагруженный firewall, несколько постоянно включенных L2TP/IPSec соединений и очереди. Про FastPath можно и не мечтать.

FastTrack

Технология маркировки ip пакетов для быстрого прохождения через Packet Flow.

Для работы FastPath на Layer3 необходимо соблюдать следующие условия:

  1. Route Cache и FastTrack должены быть включены и активны.
  2. Правильная конфигурация маркировки трафика.
  3. Работает только для UDP и TCP трафика.
  4. Не использовать mesh и metarouter.
  5. Не использовать активно: /tool mac-scan и /tool ip-scan .
  6. Запущенные sniffer, torch и traffic generator мешают работе FastPath.

Трафик помеченный как fasttrack не будет обработан в:

  1. Firewall filter (хотя это спорно, в примере покажу почему);
  2. Firewall mangle;
  3. IPSec;
  4. Queues с parrent=global;
  5. Hotspot;
  6. VRF.

Если что-то будет мешать прхождению пакета по fasttrack, он будет передан как и все оставшиеся пакеты по медленному пути.

Включается путем добавления правила (см. ниже) в Firewall. FastTrack маркируются только пакеты из установленного соединения (можно и new замаркировать, но тогда будут проблемы с NAT). Используется таблица filter, т.к. при маркировке fasttrack в prerouting опять-же возникнут проблемы с NAT.

Синтетический тест

15devdstho-ntmecg8kbxa9knha.png

FastPath Connection Tracker NAT FastTrack Speed CPU
~932Mb/sec 100%(networking, ethernet)
+ ~923Mb/sec 65–75%(networking, ethernet, unclassified)
+ + ~680Mb/sec 100%(networking, firewall, ethernet)
+ + + ~393Mb/sec 100%(networking, firewall, ethernet)
+ + + + ~911Mb/sec 60–80%(networking, ethernet, unclassified)

И (для последнего теста) что было настроено и как оно работало:
Правила фильтрации продолжали обрабатывать трафик (если отключить разрешающее для established, related трафик уходил в drop), в postrouting+mangle отлавливались пакеты, которые не попали в FastTrack.
vyjytppomdehblcxpodbidrfeh8.png
ph4djthfctdec-xwydab84yyxe4.png
kpc32ntq256zhqnft-w_k_l-uc0.png

j_y12gwaz-kb2kjp7lptpxr60gm.png

В Connection Tracker можно отслеживать FastTrack соедиения по одноименному флагу.

22_z_yrulp4pyyybigjvgcolqk4.png

В Счетчиках [IP]→[Settings] видно, что FastTrack активен и работает, а FastPath нет.

/ip firewall filter add action=fasttrack-connection chain=forward connection-state=established,related add action=accept chain=forward connection-state=established,related add action=accept chain=forward connection-state=new add action=drop chain=forward /ip firewall mangle add action=mark-packet chain=postrouting connection-state=established,related new-packet-mark=q1 passthrough=no src-address=20.20.20.0/24 /ip firewall nat add action=masquerade chain=srcnat out-interface=ether1 

Вместо заключения

Использовать или нет?

  • FastPath для Bridge — Однозначно да. По крайней мере снижает нагрузку на CPU.
  • FastPath для Туннелей — Нет. Работает мутно, отключается при наличии шифрования.
  • FastPath для Layer3 — Спорно, теряется большая часть возможностей роутера. В большой, закрытой от дикого интернета, сети может иметь свой (небольшой) выйгрыш.
  • FastPath для MPLS/VLAN/Bonding/VRRP — Включается автоматически, если есть возможноть. Отдельной опции для управления нет.
  • FastTrack — Для домашних и SOHO конфигураций без очередей и параноидального firewall подойдет. Синтетические тесты с одним клиентом выглядят хорошо, на практике требуется очень внимательно следить за трафиком который просочился мимо FastTrack и выискивать причину.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *