Configurer un QoS efficace sur MikroTik RouterOS
Réduire le bufferbloat avec CAKE, dimensionner la file sous le débit réel, classer seulement les flux utiles et éviter que FastTrack contourne le QoS.
Un accès Internet peut afficher 500 Mbit/s au test de débit et pourtant rendre une visioconférence pénible dès qu’une sauvegarde démarre. Le problème n’est pas toujours le manque de bande passante : il vient souvent d’une file trop longue, placée dans la box ou chez l’opérateur. Les gros transferts la remplissent, les petits paquets interactifs attendent, et la latence explose. Ce phénomène porte le nom de bufferbloat.
Le QoS ne crée pas de débit. Il organise une capacité limitée pour que la voix, les applications interactives et le Web restent réactifs pendant que les téléchargements utilisent ce qui reste. Sur RouterOS 7, CAKE réunit le façonnage, la gestion active des files, l’équité entre flux et la prise en charge de DiffServ. Pour beaucoup de petits réseaux, il permet d’obtenir un meilleur résultat avec moins de règles qu’une grande arborescence fondée sur les ports.
Choisir la bonne file
RouterOS propose plusieurs disciplines. Elles ne répondent pas toutes au même problème.
| Type | Ce qu’il fait bien | Quand le choisir |
|---|---|---|
| FIFO | Traite les paquets dans l’ordre avec très peu de calcul | Lien non congestionné ou matériel très limité ; pas de protection réelle contre le bufferbloat |
| PCQ | Répartit la capacité entre sous-flux, par exemple selon l’adresse source ou destination | Partage équitable entre de nombreux clients, notamment sur du matériel ancien |
| FQ-CoDel | Isole les flux et réduit la file persistante | Bon compromis quand CAKE consomme trop de processeur ou quand DiffServ n’est pas nécessaire |
| CAKE | Combine équité, AQM, façonnage, isolation des hôtes et classes DiffServ | Choix recommandé ici pour un accès Internet de domicile, de laboratoire ou de petite entreprise |
CAKE, FQ-CoDel et CoDel sont disponibles dans RouterOS depuis la branche 7.1. Leur coût CPU dépend du débit, de la taille des paquets et du modèle de routeur. Il n’existe donc pas de tableau universel garantissant qu’un appareil tiendra 500 Mbit/s ou 1 Gbit/s avec CAKE : mesurez la charge sur votre propre configuration.
Architecture retenue
Ce guide utilise une Simple Queue pour un réseau IPv4, avec un type CAKE distinct pour l’envoi et la réception. L’upload applique dual-srchost afin qu’un poste qui ouvre beaucoup de connexions ne monopolise pas la montée. Le download emploie dual-dsthost pour répartir équitablement les données entre les clients du LAN.
Les exemples supposent :
- un LAN
192.168.88.0/24; - un débit mesuré stable de 200 Mbit/s en réception et 20 Mbit/s en émission ;
- une interface WAN déjà placée dans la liste
WANet les interfaces locales dansLAN; - un routeur qui assure lui-même le NAT IPv4.
Remplacez ces valeurs par les vôtres. L’ordre upload/download d’une Simple Queue est important : dans notre exemple, 19M/190M signifie 19 Mbit/s vers Internet et 190 Mbit/s vers le LAN.
1. Mesurer avant de configurer
Branchez un ordinateur en Ethernet, interrompez les sauvegardes et répétez plusieurs tests à des heures différentes. Conservez la valeur basse qui reste réellement disponible, pas le meilleur résultat de la journée. Mesurez aussi la latence au repos et pendant un transfert saturant.
/ping 1.1.1.1 interval=200ms count=100
Lancez simultanément un téléchargement puis un upload depuis un client. Si le ping passe par exemple de 12 ms à 150 ms, le lien souffre d’une attente sous charge. Pour un accès fixe, commencez à 90–95 % du débit bas observé. Ici, 200/20 devient 190/19. Sur un lien radio ou cellulaire très variable, une marge plus grande peut être nécessaire.
2. Sauvegarder et travailler en Safe Mode
Une erreur sur FastTrack ou les files peut couper une session distante. Effectuez la première mise en service depuis le LAN, activez le Safe Mode avec Ctrl+X, puis enregistrez un export et une sauvegarde binaire.
/export file=avant-qos
/system backup save name=avant-qos
/system resource print
/queue type print
/queue simple print
/ip firewall filter print where action=fasttrack-connection
3. Créer les deux types CAKE
Le profil diffserv4 offre quatre classes faciles à auditer : Bulk, Best Effort, Video et Voice. Il est généralement plus simple à maintenir que huit niveaux. Le mode cake-nat=yes permet à CAKE de retrouver les hôtes internes derrière le NAT lorsqu’il applique l’équité.
/queue type
add name=cake-upload kind=cake \
cake-bandwidth=19M \
cake-flowmode=dual-srchost cake-nat=yes \
cake-diffserv=diffserv4 cake-rtt-scheme=internet
add name=cake-download kind=cake \
cake-bandwidth=190M \
cake-flowmode=dual-dsthost cake-nat=yes \
cake-diffserv=diffserv4 cake-rtt-scheme=internet
Les valeurs cake-bandwidth doivent rester cohérentes avec le max-limit de la Simple Queue. Le schéma RTT internet correspond à 100 ms et convient à la majorité des accès Internet. Ne choisissez pas lan pour façonner une connexion vers Internet : ce profil suppose un réseau Ethernet local d’environ 1 ms.
Si l’accès utilise PPPoE, VDSL, DOCSIS ou un VLAN, la compensation d’overhead peut améliorer la précision. Le bon cake-overhead-scheme dépend de l’encapsulation réelle. Ne copiez pas au hasard une valeur trouvée pour une autre technologie : demandez le mode d’accès à l’opérateur ou commencez avec une marge de débit prudente.
4. Créer la Simple Queue
/queue simple
add name="QoS Internet CAKE" target=192.168.88.0/24 \
max-limit=19M/190M \
queue=cake-upload/cake-download
Évitez target=0.0.0.0/0 lorsque le sous-réseau local est connu : une cible précise limite les ambiguïtés avec le trafic du routeur, les VPN et les autres réseaux. Si plusieurs VLAN doivent partager le même accès, ajoutez leurs préfixes à la cible ou concevez une hiérarchie explicite après avoir vérifié le sens des flux.
5. Empêcher FastTrack de contourner la file
FastTrack accélère les connexions IPv4 TCP et UDP en leur faisant éviter plusieurs fonctions RouterOS. La documentation MikroTik précise qu’il contourne notamment les Simple Queues et les Queue Trees dont le parent est global. Tant que la file CAKE doit traiter tout l’accès Internet, la règle FastTrack générale doit donc être désactivée.
/ip firewall filter
disable [find where action=fasttrack-connection]
Ne supprimez pas la règle : la désactivation facilite le retour arrière. La charge CPU augmentera, parfois fortement. Contrôlez-la pendant un test à pleine vitesse.
/tool profile cpu=all duration=30
/queue simple print stats-detail where name="QoS Internet CAKE"
/queue type print detail where name~"cake-"
Si le processeur atteint 100 % avant le débit cible, réduisez la vitesse, essayez FQ-CoDel, conservez PCQ pour le partage entre clients ou utilisez un équipement plus puissant. Un test limité par le CPU ne valide pas le QoS.
6. Ajouter DiffServ seulement là où il apporte quelque chose
CAKE fonctionne déjà sans aucune règle de classification : chaque flux reçoit une file équitable. Commencez donc par le mode Best Effort et mesurez. Ajoutez ensuite quelques classes fondées sur une politique claire, pas une centaine de ports.
Les ports ne permettent plus d’identifier proprement une application. HTTPS regroupe de nombreux usages sur TCP 443, QUIC transporte une grande partie du Web et de la vidéo en UDP 443, et les applications peuvent employer des plages dynamiques. Promouvoir tout le port 443 reviendrait à donner la priorité aux sauvegardes chiffrées autant qu’aux réunions.
Une méthode robuste consiste à classer des terminaux dédiés. L’exemple suivant accorde EF 46 à un téléphone IP et place un serveur de sauvegarde en CS1 8. La marque de connexion rend la décision symétrique : les paquets aller et retour de la même connexion reçoivent le même DSCP. Les règles connection-mark=no-mark évitent d’écraser une marque déjà utilisée par le policy routing ou un VPN.
/ip firewall address-list
add list=qos-voice address=192.168.88.20 comment="Téléphone IP"
add list=qos-bulk address=192.168.88.50 comment="Serveur de sauvegarde"
/ip firewall mangle
add chain=prerouting in-interface-list=LAN \
src-address-list=qos-voice connection-state=new \
connection-mark=no-mark action=mark-connection \
new-connection-mark=qos_voice passthrough=yes \
comment="QoS: connexion voix"
add chain=prerouting connection-mark=qos_voice \
action=change-dscp new-dscp=46 passthrough=no \
comment="QoS: voix EF"
add chain=prerouting in-interface-list=LAN \
src-address-list=qos-bulk connection-state=new \
connection-mark=no-mark action=mark-connection \
new-connection-mark=qos_bulk passthrough=yes \
comment="QoS: connexion sauvegarde"
add chain=prerouting connection-mark=qos_bulk \
action=change-dscp new-dscp=8 passthrough=no \
comment="QoS: sauvegarde CS1"
Pour une visioconférence, réservez AF41 34 à un terminal de salle ou à un VLAN géré. Évitez de promouvoir tout un ordinateur polyvalent : ses synchronisations et mises à jour hériteraient du même traitement. Le DNS, très léger, profite généralement davantage d’une file courte que d’un niveau exagérément élevé.
7. Tester le résultat
Le test utile ne consiste pas à retrouver exactement le débit contractuel. Il consiste à saturer les deux sens tout en mesurant la latence et en passant un appel.
- Mesurez le ping au repos pendant une minute.
- Saturez le download, puis l’upload, puis les deux en même temps.
- Contrôlez que les compteurs de
QoS Internet CAKEaugmentent. - Vérifiez le débit, la latence sous charge, les pertes et la charge CPU.
- Répétez avec une sauvegarde et une visioconférence réelles.
/queue simple print stats-detail where name="QoS Internet CAKE"
/ip firewall mangle print stats where comment~"QoS:"
/ip firewall connection print where connection-mark~"qos_"
/system resource print
Une légère baisse du débit maximal est normale : elle achète le contrôle de la file. Ajustez le plafond par pas de 1 à 2 %. Si la latence grimpe encore fortement, baissez-le. Si elle reste stable et que la ligne est sous-utilisée, remontez-le avec prudence.
Cas d’un débit variable
CAKE propose cake-autorate-ingress pour estimer une capacité entrante qui varie, par exemple sur un accès cellulaire. Cette fonction ne peut toutefois pas deviner correctement une limitation située plus loin dans le réseau dans toutes les conditions. Sur un lien stable, un plafond mesuré reste plus prévisible. Sur un lien variable, testez l’autorate pendant plusieurs jours et comparez-le à un plafond conservateur.
Alternative PCQ pour un routeur plus modeste
PCQ ne remplace pas l’AQM de CAKE, mais distribue simplement la capacité entre les hôtes. RouterOS fournit déjà pcq-upload-default avec le classificateur src-address et pcq-download-default avec dst-address. Pour un appareil limité, on peut conserver le même plafond et remplacer les types de file :
/queue simple
set [find where name="QoS Internet CAKE"] \
queue=pcq-upload-default/pcq-download-default
Le partage entre clients sera plus équitable, mais la latence sous congestion peut rester moins bien maîtrisée. FQ-CoDel constitue souvent l’étape intermédiaire : meilleure gestion de la file que PCQ, moins de fonctions intégrées que CAKE.
Dépannage
| Symptôme | Cause probable | Action |
|---|---|---|
| Compteurs de file presque nuls | FastTrack actif ou mauvaise cible | Désactiver FastTrack, vérifier le sous-réseau et le sens upload/download |
| Débit inférieur au plafond, CPU à 100 % | Routeur limité par le traitement logiciel | Essayer FQ-CoDel/PCQ, réduire la vitesse ou renforcer le matériel |
| Latence toujours élevée | Plafond trop proche du débit réel ou capacité variable | Réduire le max-limit et mesurer à plusieurs heures |
| La voix ne prend pas la classe Voice | Adresse, ordre mangle ou marque de connexion incorrects | Contrôler les compteurs, les listes d’interfaces et les marques existantes |
| Un poste accapare encore le lien | Mauvais flowmode ou NAT non pris en compte | Vérifier dual-srchost/dual-dsthost et cake-nat=yes |
| Le routeur devient instable | File trop coûteuse ou changement distant risqué | Revenir en Safe Mode, réactiver FastTrack et restaurer la file précédente |
Retour arrière
Les commentaires et les noms explicites permettent de retirer uniquement les éléments de ce guide.
/queue simple remove [find where name="QoS Internet CAKE"]
/ip firewall mangle remove [find where comment~"QoS:"]
/ip firewall address-list remove [find where list~"qos-"]
/queue type remove [find where name="cake-upload"]
/queue type remove [find where name="cake-download"]
/ip firewall filter enable [find where action=fasttrack-connection]
La dernière commande réactive toutes les règles FastTrack désactivées. Si plusieurs politiques existent, réactivez plutôt la règle exacte que vous aviez notée avant le changement.
Conclusion
Un QoS efficace repose d’abord sur un plafond réaliste et une file qui combat le bufferbloat. CAKE sait déjà partager les flux et les hôtes ; il n’est pas nécessaire de reconnaître chaque service du réseau. Quelques classifications fiables — téléphone administré, salle de réunion, sauvegarde — valent mieux qu’une longue liste de ports devenue fausse.
Le résultat se juge à la latence sous charge, aux pertes, à la qualité des appels et à la charge CPU, pas seulement au chiffre d’un speedtest. Avec une Simple Queue placée juste sous la capacité réelle, deux profils CAKE adaptés au sens du trafic et un FastTrack maîtrisé, RouterOS peut garder un lien réactif même lorsqu’il est pleinement utilisé.
Références techniques
- MikroTik : files RouterOS, Simple Queue, Queue Tree, PCQ, FQ-CoDel et CAKE
- MikroTik : paramètres CAKE, flow modes, DiffServ et compensation d’overhead
- MikroTik : Connection Tracking et fonctions contournées par FastTrack
- MikroTik : partage de bande passante avec PCQ
- IETF RFC 4594 : recommandations de classes DiffServ
Discussion
Commentaires
Aucun commentaire pour le moment. Vous pouvez ouvrir la discussion avec une question ou un retour d’expérience.