Ce n'est un secret pour personne que MikroTik fabrique des routeurs Software-Baser et que le processeur prend en charge la majeure partie du traitement du trafic. Cette approche présente un avantage, car Vous pouvez programmer presque toutes les fonctionnalités et maintenir un système relativement uniforme pour tous les appareils. Mais en vitesse, ils seront toujours à la traîne des routeurs avec des puces spécialisées.
Le traitement des packages logiciels présente plusieurs inconvénients:
- Manque de vitesse de fil - un processeur (en particulier un seul cœur) ne peut pas fonctionner plus rapidement que les puces spécialisées.
- Serrures. Avec de très gros volumes de trafic (par exemple, DoS / DDoS), vous ne pourrez peut-être pas vous connecter au routeur même via l'interface de la console, car tout le temps processeur sera occupé par le traitement du trafic.
- La complexité de la mise à l'échelle. Vous ne pouvez pas ajouter un module qui augmente la vitesse de traitement des paquets dans le matériel.
Les développeurs utilisent différentes solutions matérielles et logicielles pour améliorer la situation:
- Switch-chip sur les modèles à faible coût, vous permet de traiter le trafic Layer2 en contournant le CPU.
- SoC avec une bonne puce réseau (ligne CCR).
- Utilisation du chiffrement matériel
- Diverses technologies qui réduisent le nombre de traitements logiciels pour les packages (FastPath et FastTrack), et elles seront discutées.
SlowPath vs FastPath
SlowPath est le chemin de trafic de base à travers les sous-systèmes internes MikroTik, il peut être assez varié et plus le chemin est long, plus la charge sur le CPU est élevée et plus la vitesse baisse.
FastPath - algorithmes qui vous permettent de transférer du trafic en contournant des unités de traitement assez grandes.
Environnement de travail et prise en charge des appareils
La plupart des routeurs et cartes modernes de MikroTik prennent en charge FastPath, mais le wiki a une liste détaillée:
Modèle | Prise en charge sur les interfaces Ethernet |
---|
Série RB6xx | éther1,2 |
La plupart de la série RB7xx | tous les ports Ethernet |
RB800 | éther1,2 |
Série RB9xx | tous les ports Ethernet |
RB1000 | tous les ports Ethernet |
Série RB1100 | ether1-11 |
RB2011 series | tous les ports Ethernet |
RB3011 series | tous les ports Ethernet |
Routeurs de la série CRS | tous les ports Ethernet |
Routeurs série CCR | tous les ports Ethernet |
Autres appareils | Non pris en charge |
Et une liste séparée pour les interfaces non Ethernet:
Interface | Prise en charge de Fastpath | Remarque |
---|
Sans fil | Oui |
Pont | Oui | À partir de 6,29 |
VLAN, VRRP | Oui | À partir de 6h30 |
Collage | Oui | Seul le trafic RX à partir de 6h30 |
EoIP, GRE, IPIP | Oui | À partir de 6.33. Lorsque cette option est activée, tout le trafic du tunnel ne passera pas par FastPath |
L2TP, PPPoE | Oui | À partir de 6,35 |
MPLS | Oui | Actuellement, le raccourci MPLS s'applique uniquement au trafic commuté MPLS. L'entrée et la sortie MPLS fonctionneront comme auparavant. |
Autre | Non |
FastPath nécessite une prise en charge complète des interfaces entrantes et sortantes. Seules les files d'attente matérielles doivent être activées sur les interfaces.

Enfin, FastPath déteste vraiment le trafic fragmenté. Si le paquet est fragmenté, il restera définitivement coincé sur le CPU.
FastPath et Bridge
Bridge est une interface logicielle utilisée pour créer des communications de couche 2 entre plusieurs interfaces matérielles (ou logicielles). Si vous combinez 4 interfaces Ethernet dans le pont sur le routeur (et activez hw=yes
) et une sans fil, le trafic entre les interfaces Ethernet contournera l'interface logicielle et le trafic entre Ethernet et sans fil utilisera le pont logiciel. Sur les routeurs avec plusieurs puces (par exemple RB2011), le trafic entre les interfaces de différentes puces utilisera les capacités du pont logiciel (parfois, pour réduire la charge, les interfaces combinent simplement le cordon de raccordement et en général cela fonctionne).
FatsPath - se réfère uniquement au trafic passant par le CPU (pont logiciel), il s'agit généralement du trafic entre les interfaces de différentes puces, ou l'option hw=yes
est désactivée.
Sur Packet Flow, le trafic passant par Bridge est le suivant:

Et plus de détails:

Il est inclus dans les paramètres du pont (le paramètre est le même pour toutes les interfaces de pont) [Pont] -> [Paramètres] -> [Autoriser FastPath], là vous pouvez également voir les compteurs.

Pour que FastPath fonctionne dans Bridge, les conditions suivantes doivent être remplies:
- Il n'y a pas de configuration vlan sur les interfaces de pont (je pense que cela n'est pas pertinent pour la série CRS, où les vlan sont configurés au niveau matériel, mais je peux me tromper)
- Il n'y a pas de règles dans le
/interface bridge filter
/interface bridge nat
, ce sont les mêmes blocs du deuxième circuit que la trame traverse. - Pare
use-ip-firwall=no
feu IP non activé ( use-ip-firwall=no
). Une bonne fonctionnalité pour capturer le trafic et déboguer le réseau, mais rarement activée de manière continue. - N'utilisez pas de mesh et de metarouter
- Sur l'interface ne fonctionnent pas: renifleur, torche et générateur de trafic.
FastPath et Tunnel
En bref: l'interface du tunnel est l'encapsulation de certains paquets dans la partie de chargement d'autres paquets. Si vous suivez PacketFlow, le paquet d'origine est marqué de lignes rouges, le paquet d'origine encapsulé dans le paquet de protocole de tunnel (par exemple, ipip ou gre; eoip obtient (et vient) dans la décision de pontage; le paquet de tunnel est encore plus intéressant, mais n'est pas lié à fastpath).

Le trafic du tunnel dans FastPath ne sera pas visible dans: pare-feu, files d'attente, hotspot, vrf, comptabilité ip. Mais certains des paquets continueront à être transmis via SlowPath, cela doit être pris en compte lors de la configuration du pare-feu.
Pour que FastPath fonctionne dans les interfaces de tunnel, les conditions suivantes doivent être remplies:
- N'utilisez pas le cryptage IPSec
- Évitez la fragmentation des paquets (configurez mtu correctement)
- Activer
allow-fast-path=yes
sur l'interface du tunnel
FastPath et Layer3
La couche 3 est la transmission de paquets entre les sous-réseaux; le routeur construit des tables de routage et les transmet au saut suivant.
Sur Packet Flow, le trafic de transit de la couche réseau ressemble à ceci:

aller en profondeur

et encore plus profond

Pour utiliser FastPath sur Layer3, les conditions suivantes doivent être remplies:
- N'ajoutez pas de règles au pare-feu (du tout, même nat).
- N'ajoutez pas d'entrées aux listes d'adresses.
- Ne configurez pas les files d'attente simples et l'arborescence des files d'attente pour
parent=global
ou les interfaces sur lesquelles vous prévoyez d'obtenir un FastPath fonctionnel. - N'utilisez pas de mesh et de métarouteur.
- Désactivez le suivi des connexions. L'option auto a été introduite spécifiquement pour que FastPath fonctionne lorsqu'il n'y avait pas de règles dans le pare-feu.
- N'utilisez pas la
/ip accounting
. - N'utilisez pas
/ip route vrf
. - Ne configurez pas
/ip hotspot
. - N'ajoutez pas de stratégies IPSec.
- Le cache d'itinéraire doit être activé.
- N'utilisez pas activement:
/tool mac-scan
et /tool ip-scan
. - L'exécution de renifleur, de torche et de générateur de trafic interfère avec FastPath.
Il est inclus dans les paramètres IP: [IP] -> [Paramètres], vous pouvez également voir les compteurs des paquets traités avec succès.

Capture d'écran d'un routeur domestique. J'ai un pare-feu assez chargé, plusieurs connexions et files d'attente L2TP / IPSec activées en permanence. Vous ne pouvez même pas rêver de FastPath.
Fasttrack
Technologie d'étiquetage des paquets IP pour un passage rapide à travers le flux de paquets.
Pour que FastTrack fonctionne, les conditions suivantes doivent être respectées:
- Le cache d'itinéraire et FastPath doivent être activés et actifs.
- La configuration correcte pour l'étiquetage du trafic.
- Fonctionne uniquement pour le trafic UDP et TCP.
- N'utilisez pas de mesh et de métarouteur.
- N'utilisez pas activement:
/tool mac-scan
et /tool ip-scan
. - L'exécution de renifleur, de torche et de générateur de trafic interfère avec FastTrack.
Le trafic marqué comme fasttrack ne sera pas traité dans:
- Filtre pare-feu (bien que cela soit discutable, je montrerai pourquoi dans l'exemple);
- Pare-feu mangle;
- IPsec
- Files d'attente avec parrent = global;
- Hotspot;
- VRF
Si quelque chose interfère avec le paquet passant par fasttrack, il sera transmis comme tous les paquets restants le long du chemin lent.
Il est activé en ajoutant une règle (voir ci-dessous) dans le pare-feu. FastTrack seuls les paquets de la connexion établie sont marqués (vous pouvez en marquer de nouveaux, mais il y aura ensuite des problèmes avec NAT). La table de filtres est utilisée car lors du marquage de fasttrack dans le pré-routage, il y aura à nouveau des problèmes avec NAT.
Test synthétique

Fastpath | Suivi de connexion | NAT | Fasttrack | La vitesse | CPU |
---|
- | - | - | - | ~ 932 Mo / sec | 100% (réseau, Ethernet) |
+ | - | - | - | ~ 923 Mo / sec | 65-75% (réseau, Ethernet, non classifié) |
+ | + | - | - | ~ 680 Mo / s | 100% (réseau, pare-feu, Ethernet) |
+ | + | + | - | ~ 393 Mo / s | 100% (réseau, pare-feu, Ethernet) |
+ | + | + | + | ~ 911 Mo / s | 60-80% (réseau, Ethernet, non classé) |
Et (pour le dernier test) ce qui a été configuré et comment cela a fonctionné:
Les règles de filtrage ont continué à traiter le trafic (si vous désactivez l'autorisation du trafic établi et connexe, il est abandonné), les paquets qui ne sont pas entrés dans FastTrack ont été capturés dans postrouting + mangle.



Dans Connection Tracker, vous pouvez suivre les connexions FastTrack par l'indicateur du même nom.

Dans les compteurs [IP] -> [Paramètres], vous pouvez voir que FastTrack est actif et fonctionne, mais pas 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
Au lieu d'une conclusion
Utiliser ou non?
- FastPath for Bridge - Certainement oui. Réduit au moins la charge sur le CPU.
- FastPath pour les tunnels - Non. Cela fonctionne boueux, il s'éteint s'il y a du cryptage.
- FastPath pour Layer3 - En controverse, la plupart des capacités du routeur sont perdues. Dans un grand réseau fermé à l'Internet sauvage, le réseau peut avoir ses propres (petits) gains.
- FastPath pour MPLS / VLAN / Bonding / VRRP - S'active automatiquement, si possible. Il n'y a pas d'option distincte pour le contrôle.
- FastTrack - Pour les configurations domestiques et SOHO sans files d'attente et un pare-feu paranoïaque convient. Les tests synthétiques avec un seul client semblent bons, dans la pratique, vous devez surveiller attentivement le trafic qui a fui devant FastTrack et rechercher la cause.
Liens en plus
https://wiki.mikrotik.com/wiki/Manual:Fast_Path
https://wiki.mikrotik.com/wiki/Manual:IP/Fasttrack
http://mum.mikrotik.com/presentations/UA15/presentation_3077_1449654925.pdf