- PVSM.RU - https://www.pvsm.ru -
Ни для кого не секрет, что MikroTik производит Software Baser роутеры и большую часть по обработке трафика берет на себя CPU. У данного подхода есть приимущество, т.к. можно напрограмировать практически любой функционал и поддерживать относительно единую систему для всех устройств. Но по скорости они всегда будут отставать от маршрутизаторов со специализированными чипами.
Программная обработка пакетов имеет ряд недостатков:
Разработчики идут на различные аппаратные и програмные решения для улучшения ситуации:
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.
Bridge — это програмный интерфейс используемый для создания Layer2 связи между несколькими аппаратными (или програмными) интерфейсами. Если объеденить на роутере 4 ethernet интерфейса в bridge (и включить hw=yes
) и один wireless, то трафик между ethernet интерфейсами будет ходить минуя программный интерфейс, а трафик между ethernet и wireless будет задействовать программный bridge. На роутерах с несколькими чипами (например RB2011) трафик между интерфейсами с разных чипов будет задействовать возможности програмного bridge (иногда для снижения нагрузки интерфейсы просто объединяют патч-кордом и в целом это работает).
FatsPath — относится только к трафику приходящему через CPU (програмный bridge), обычно это трафик между интерфесов с разных чипов, либо отключена опция hw=yes
.
На Packet Flow трафик проходящий через Bridge выглядит следующим образом:
И подробнее:
Включается в настройки bridge (настройка едина для всех bridge интерфейсов) [Bridge]->[Settings]->[Allow FastPath], там-же можно увидеть счетчики.
Для работы FastPath в Bridge необходимо соблюдать следующие условия:
/interface bridge filter
и /interface bridge nat
, это те самые блоки из второй схемы, которые проходит фрейм.use-ip-firwall=no
). Хорошая функция для захвата трафика и отладки сети, но на постоянной основе включается редко.Если двумя словами: туннельный интерфейс — это инкапсуляция одних пакетов в нагрузочную часть других пакетов. Если идти по PacketFlow, то красными линиями отмечен оригинальный пакет, синими — оригинальный пакет инкапсулированный в пакет туннельного протокола (например ipip или gre; eoip попадает(и приходит из) в bridging decision; с туннельным ipsec все еще интереснее, но не имеет отношение к fastpath).
Туннельный трафик в FastPath не будет виден в: firewall, queues, hotspot, vrf, ip accounting. Но часть пакетов продолжит передаваться по SlowPath, это надо учитывать при конфигурации Firewall.
Для работы FastPath в туннельных интерфейсах необходимо соблюдать следующие условия:
allow-fast-path=yes
на туннельном интерфейсеLayer3 — это передача пакетов между подсетями, маршрутизатор строит таблицы маршрутизации и исходя из них направляет пакет следующему хопу.
На Trafic Flow транзитный трафик сетевого уровня выглядит так:
идем вглубь
и еще глубже
Для работы FastPath на Layer3 необходимо соблюдать следующие условия:
parent=global
, либо интерфейсов на которых планируется получить рабочий FastPath ./ip accounting
./ip route vrf
./ip hotspot
./tool mac-scan
и /tool ip-scan
.Включается в настройках ip: [IP]->[Settings], там-же можно увидеть счетчики успешно обработанных пакетов.
Скриншот с домашнего роутера. У меня достаточно нагруженный firewall, несколько постоянно включенных L2TP/IPSec соединений и очереди. Про FastPath можно и не мечтать.
Технология маркировки ip пакетов для быстрого прохождения через Packet Flow.
Для работы FastPath на Layer3 необходимо соблюдать следующие условия:
/tool mac-scan
и /tool ip-scan
.Трафик помеченный как fasttrack не будет обработан в:
Если что-то будет мешать прхождению пакета по fasttrack, он будет передан как и все оставшиеся пакеты по медленному пути.
Включается путем добавления правила (см. ниже) в Firewall. FastTrack маркируются только пакеты из установленного соединения (можно и new замаркировать, но тогда будут проблемы с NAT). Используется таблица filter, т.к. при маркировке fasttrack в prerouting опять-же возникнут проблемы с NAT.
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.
В Connection Tracker можно отслеживать FastTrack соедиения по одноименному флагу.
В Счетчиках [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
Использовать или нет?
https://wiki.mikrotik.com/wiki/Manual:Fast_Path [4]
https://wiki.mikrotik.com/wiki/Manual:IP/Fasttrack [5]
http://mum.mikrotik.com/presentations/UA15/presentation_3077_1449654925.pdf [6]
Автор: Bulroh
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/sistemnoe-administrirovanie/304526
Ссылки в тексте:
[1] Switch-чип : https://i.mt.lv/cdn/rb_files/Block-RB2011UAS-2HnD.pdf
[2] хорошим сетевым чипом: https://www.terraelectronica.ru/pdf/show?pdf_file=%2Fpdf%2FEZCHIP%2Fdrim__TILE-Gx8009_PB036-02_WEB_7663.pdf
[3] аппаратного шифрования: https://wiki.mikrotik.com/wiki/Manual:IP/IPsec#Hardware_acceleration
[4] https://wiki.mikrotik.com/wiki/Manual:Fast_Path: https://wiki.mikrotik.com/wiki/Manual:Fast_Path
[5] https://wiki.mikrotik.com/wiki/Manual:IP/Fasttrack: https://wiki.mikrotik.com/wiki/Manual:IP/Fasttrack
[6] http://mum.mikrotik.com/presentations/UA15/presentation_3077_1449654925.pdf: http://mum.mikrotik.com/presentations/UA15/presentation_3077_1449654925.pdf
[7] Источник: https://habr.com/post/435372/?utm_campaign=435372
Нажмите здесь для печати.