Fastpath mikrotik что это
Парсер Хабра
Вас тоже достает, когда автор переносит топик в черновик?
вторник, 8 января 2019 г.
Пара слов про FastPath и FastTrack в MikroTik
Ни для кого не секрет, что MikroTik производит Software Baser роутеры и большую часть по обработке трафика берет на себя CPU. У данного подхода есть приимущество, т.к. можно напрограмировать практически любой функционал и поддерживать относительно единую систему для всех устройств. Но по скорости они всегда будут отставать от маршрутизаторов со специализированными чипами.
Программная обработка пакетов имеет ряд недостатков:
Разработчики идут на различные аппаратные и програмные решения для улучшения ситуации:
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. |
Прочие | Нет |
Для полноценной работы FastPath необходима поддержка как со стороны входящего, так и со стороны исходящего интерфейсов. На интерфейсах должны быть включены только аппаратные очереди.
И последнее, FastPath очень не любит фрагментированный трафик. Если пакет зафрагментирован — он однозначно застрянет на CPU.
FastPath и Bridge
Bridge — это програмный интерфейс используемый для создания Layer2 связи между несколькими аппаратными (или програмными) интерфейсами. Если объеденить на роутере 4 ethernet интерфейса в bridge (и включить hw=yes ) и один wireless, то трафик между ethernet интерфейсами будет ходить минуя программный интерфейс, а трафик между ethernet и wireless будет задействовать программный bridge. На роутерах с несколькими чипами (например RB2011) трафик между интерфейсами с разных чипов будет задействовать возможности програмного bridge (иногда для снижения нагрузки интерфейсы просто объединяют патч-кордом и в целом это работает).
На Packet Flow трафик проходящий через Bridge выглядит следующим образом:
И подробнее:
Включается в настройки bridge (настройка едина для всех bridge интерфейсов) [Bridge]->[Settings]->[Allow FastPath], там-же можно увидеть счетчики.
Для работы FastPath в Bridge необходимо соблюдать следующие условия:
FastPath и Tunnel
Если двумя словами: туннельный интерфейс — это инкапсуляция одних пакетов в нагрузочную часть других пакетов. Если идти по PacketFlow, то красными линиями отмечен оригинальный пакет, синими — оригинальный пакет инкапсулированный в пакет туннельного протокола (например ipip или gre; eoip попадает(и приходит из) в bridging decision; с туннельным ipsec все еще интереснее, но не имеет отношение к fastpath).
Туннельный трафик в FastPath не будет виден в: firewall, queues, hotspot, vrf, ip accounting. Но часть пакетов продолжит передаваться по SlowPath, это надо учитывать при конфигурации Firewall.
Для работы FastPath в туннельных интерфейсах необходимо соблюдать следующие условия:
FastPath и Layer3
Layer3 — это передача пакетов между подсетями, маршрутизатор строит таблицы маршрутизации и исходя из них направляет пакет следующему хопу.
На Trafic Flow транзитный трафик сетевого уровня выглядит так:
идем вглубь
и еще глубже
Для работы FastPath на Layer3 необходимо соблюдать следующие условия:
Включается в настройках ip: [IP]->[Settings], там-же можно увидеть счетчики успешно обработанных пакетов.
Скриншот с домашнего роутера. У меня достаточно нагруженный firewall, несколько постоянно включенных L2TP/IPSec соединений и очереди. Про FastPath можно и не мечтать.
FastTrack
Технология маркировки ip пакетов для быстрого прохождения через Packet Flow.
Для работы FastPath на Layer3 необходимо соблюдать следующие условия:
Трафик помеченный как fasttrack не будет обработан в:
Если что-то будет мешать прхождению пакета по fasttrack, он будет передан как и все оставшиеся пакеты по медленному пути.
Включается путем добавления правила (см. ниже) в Firewall. FastTrack маркируются только пакеты из установленного соединения (можно и new замаркировать, но тогда будут проблемы с NAT). Используется таблица filter, т.к. при маркировке fasttrack в prerouting опять-же возникнут проблемы с NAT.
Синтетический тест
FastPath | Connection Tracker | NAT | FastTrack | Speed | CPU |
---|---|---|---|---|---|
— | — | — | — | 100%(networking, ethernet) | |
+ | — | — | — | 65-75%(networking, ethernet, unclassified) | |
+ | + | — | — | 100%(networking, firewall, ethernet) | |
+ | + | + | — | 100%(networking, firewall, ethernet) | |
+ | + | + | + | 60-80%(networking, ethernet, unclassified) |
И (для последнего теста) что было настроено и как оно работало:
Правила фильтрации продолжали обрабатывать трафик (если отключить разрешающее для established, related трафик уходил в drop), в postrouting+mangle отлавливались пакеты, которые не попали в FastTrack.
В Connection Tracker можно отслеживать FastTrack соедиения по одноименному флагу.
В Счетчиках [IP]->[Settings] видно, что FastTrack активен и работает, а FastPath нет.
Вместо заключения
Использовать или нет?
Allow fast path mikrotik что это
Ни для кого не секрет, что MikroTik производит Software Baser роутеры и большую часть по обработке трафика берет на себя CPU. У данного подхода есть приимущество, т.к. можно напрограмировать практически любой функционал и поддерживать относительно единую систему для всех устройств. Но по скорости они всегда будут отставать от маршрутизаторов со специализированными чипами.
Программная обработка пакетов имеет ряд недостатков:
Разработчики идут на различные аппаратные и програмные решения для улучшения ситуации:
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. |
Прочие | Нет |
Для полноценной работы FastPath необходима поддержка как со стороны входящего, так и со стороны исходящего интерфейсов. На интерфейсах должны быть включены только аппаратные очереди.
И последнее, FastPath очень не любит фрагментированный трафик. Если пакет зафрагментирован — он однозначно застрянет на CPU.
FastPath и Bridge
Bridge — это програмный интерфейс используемый для создания Layer2 связи между несколькими аппаратными (или програмными) интерфейсами. Если объеденить на роутере 4 ethernet интерфейса в bridge (и включить hw=yes ) и один wireless, то трафик между ethernet интерфейсами будет ходить минуя программный интерфейс, а трафик между ethernet и wireless будет задействовать программный bridge. На роутерах с несколькими чипами (например RB2011) трафик между интерфейсами с разных чипов будет задействовать возможности програмного bridge (иногда для снижения нагрузки интерфейсы просто объединяют патч-кордом и в целом это работает).
На Packet Flow трафик проходящий через Bridge выглядит следующим образом:
И подробнее:
Включается в настройки bridge (настройка едина для всех bridge интерфейсов) [Bridge]->[Settings]->[Allow FastPath], там-же можно увидеть счетчики.
Для работы FastPath в Bridge необходимо соблюдать следующие условия:
FastPath и Tunnel
Если двумя словами: туннельный интерфейс — это инкапсуляция одних пакетов в нагрузочную часть других пакетов. Если идти по PacketFlow, то красными линиями отмечен оригинальный пакет, синими — оригинальный пакет инкапсулированный в пакет туннельного протокола (например ipip или gre; eoip попадает(и приходит из) в bridging decision; с туннельным ipsec все еще интереснее, но не имеет отношение к fastpath).
Туннельный трафик в FastPath не будет виден в: firewall, queues, hotspot, vrf, ip accounting. Но часть пакетов продолжит передаваться по SlowPath, это надо учитывать при конфигурации Firewall.
Для работы FastPath в туннельных интерфейсах необходимо соблюдать следующие условия:
FastPath и Layer3
Layer3 — это передача пакетов между подсетями, маршрутизатор строит таблицы маршрутизации и исходя из них направляет пакет следующему хопу.
На Trafic Flow транзитный трафик сетевого уровня выглядит так:
идем вглубь
и еще глубже
Для работы FastPath на Layer3 необходимо соблюдать следующие условия:
Включается в настройках ip: [IP]->[Settings], там-же можно увидеть счетчики успешно обработанных пакетов.
Скриншот с домашнего роутера. У меня достаточно нагруженный firewall, несколько постоянно включенных L2TP/IPSec соединений и очереди. Про FastPath можно и не мечтать.
FastTrack
Технология маркировки ip пакетов для быстрого прохождения через Packet Flow.
Для работы FastPath на Layer3 необходимо соблюдать следующие условия:
Трафик помеченный как fasttrack не будет обработан в:
Если что-то будет мешать прхождению пакета по fasttrack, он будет передан как и все оставшиеся пакеты по медленному пути.
Включается путем добавления правила (см. ниже) в Firewall. FastTrack маркируются только пакеты из установленного соединения (можно и new замаркировать, но тогда будут проблемы с NAT). Используется таблица filter, т.к. при маркировке fasttrack в prerouting опять-же возникнут проблемы с NAT.
Синтетический тест
FastPath | Connection Tracker | NAT | FastTrack | Speed | CPU |
---|---|---|---|---|---|
– | – | – | – |
И (для последнего теста) что было настроено и как оно работало:
Правила фильтрации продолжали обрабатывать трафик (если отключить разрешающее для established, related трафик уходил в drop), в postrouting+mangle отлавливались пакеты, которые не попали в FastTrack.
В Connection Tracker можно отслеживать FastTrack соедиения по одноименному флагу.
В Счетчиках [IP]->[Settings] видно, что FastTrack активен и работает, а FastPath нет.
Вместо заключения
Использовать или нет?
Приветствую, Уважаемые читатели!
Данная статья будет в основе своей познавательной. Её тему, я хотел посвятить одной очень интересной штуке.
А именно опции в RouterOS под названием FastTrack
Рассказывать я про неё буду с точки зрения продвинутого пользователя. Не профессионала, прошу это заметить!
Предисловие
Для начала давайте попробуем понять, что это такое вообще за опция.
Обратимся за официальной документацией на сайт компании MikroTik: Manual:IP/Fasttrack (ENG)
Данный функционал появился в 2015 году, вот вырезка из новости:
Страница и новости 2015 года
Обработчик IPv4 FastTrack автоматически используется для отмеченных соединений.
Используйте действие брандмауэра «fasttrack-connection» для отметки соединений как fasttrack.
В настоящее время применение правил Fasttrack возможно только для TCP и UDP соединений (даже при том, что любой тип соединений может быть помечен как fasttrack).
Обработчик IPv4 FastTrack поддерживает NAT (SNAT, DNAT или их оба).
Т.е. это говорит нам о том, что соединения помеченные, как Fasttrack будут проходить по самому быстрому маршруту, минуя большинство правил Firewall и минуя деревья очередей Queues.
Применив данную опцию для всех уже установленных(доверенных) соединений(например в локальной сети), можно существенно снизить нагрузку на CPU нашего роутера.
Обратите внимание, что не все пакеты в соединении могут быть быстро-отслеживаемыми, поэтому, вероятно, некоторые пакеты будут проходить медленным путем, даже если соединение отмечено как Fasttrack.
Использовать Fasttrack необходимо не абы как, а с пониманием, что и как работает.
Для работы IPv4 FastTrack также есть ряд требований:
Если не включены, то включить можно командой в терминале:
/ip settings
set allow-fast-path=yes route-cache=yes
Применимость в оборудовании MikroTik:
RouterBoard | Interfaces |
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 |
Все устройства | wireless interfaces если используются wireless-fp, wireless-cm2, wireless-rep или wireless (выпущен в RouterOS 6.37) пакеты |
Пример – FastTrack на RB2011:
FastTrack включен на RB2011 в Firewall через chain=forward и connection-state=established,related
Тестирование пропускной способности выполняется утилитой Bandwidth Test одним(single) потоком TCP(sent)
Без FastTrack | С включенным FastTrack |
360 Mbps | 890 Mbps |
CPU 100% | CPU 86% |
44% CPU на Firewall | 6% CPU на Firewall |
Настройка
Для включения данной опции достаточно просто добавить несколько правил в Firewall Filter
/ip firewall filter
add chain=forward action=fasttrack-connection connection-state=established,related
add chain=forward action=accept connection-state=established,related
В своих роутерах я немного конкретизировал данные правила исходя из замечаний в Wiki MikroTik о работе данных правил только для TCP и UDP протоколов.
Выглядит в Firewall роутера это так:
Консольно:
/ip firewall filter
add action=fasttrack-connection chain=forward connection-state=established,related protocol=tcp
add action=fasttrack-connection chain=forward connection-state=established,related protocol=udp
add action=accept chain=forward comment=»FastTrack Connection» connection-state=established,related
Выводы
Для себя я понял, что в домашнем использовании, где не нужны Деревья очередей и сложные схемы в Firewall, данные правила могут очень помочь в разгрузке CPU Вашего роутера.
Особенно если он одноядерный, как например мой hAP ac.
В нем действительно заметно снижение нагрузки на CPU, хоть и не фантастическое, но это лучше чем ничего!
Большое спасибо, что изучили данную статью, надеюсь она Вам помогла узнать больше!
Всего хорошего на просторах интернета 😉
Список всех статей в хронологическом порядке: История статей
Что это: FastTrack это технология для разгрузки CPU при пересылке пакетов роутером – пакеты пересылаются без обработки. Таким образом ускоряется пересылка пакетов и уменьшается нагрузка на CPU.
Как включить
Открываем IP → Settings и ставим галочку «Allow Fast Path»
Далее добавляем правило в IP → Firewall → Filter Rules:
Автоматически создается правила, которые невозможно удалить:
То же самое командами:
Как посмотреть кол-во обработанных пакетов
Открываем IP → Settings и смотрим счетчики – в них должно быть что-нибудь, отличное от ноля: