Réseaux et performance 17 min de lecture

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.

TypeCe qu’il fait bienQuand le choisir
FIFOTraite les paquets dans l’ordre avec très peu de calculLien non congestionné ou matériel très limité ; pas de protection réelle contre le bufferbloat
PCQRépartit la capacité entre sous-flux, par exemple selon l’adresse source ou destinationPartage équitable entre de nombreux clients, notamment sur du matériel ancien
FQ-CoDelIsole les flux et réduit la file persistanteBon compromis quand CAKE consomme trop de processeur ou quand DiffServ n’est pas nécessaire
CAKECombine équité, AQM, façonnage, isolation des hôtes et classes DiffServChoix 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.

Schéma d’une file CAKE placée sous la capacité réelle, avec quatre classes de trafic et FastTrack désactivé
Le plafond crée une congestion contrôlée dans RouterOS ; CAKE répartit ensuite les flux et maintient une latence raisonnable sous charge.

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 WAN et les interfaces locales dans LAN ;
  • 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.

  1. Mesurez le ping au repos pendant une minute.
  2. Saturez le download, puis l’upload, puis les deux en même temps.
  3. Contrôlez que les compteurs de QoS Internet CAKE augmentent.
  4. Vérifiez le débit, la latence sous charge, les pertes et la charge CPU.
  5. 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ômeCause probableAction
Compteurs de file presque nulsFastTrack actif ou mauvaise cibleDé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 logicielEssayer FQ-CoDel/PCQ, réduire la vitesse ou renforcer le matériel
Latence toujours élevéePlafond trop proche du débit réel ou capacité variableRéduire le max-limit et mesurer à plusieurs heures
La voix ne prend pas la classe VoiceAdresse, ordre mangle ou marque de connexion incorrectsContrôler les compteurs, les listes d’interfaces et les marques existantes
Un poste accapare encore le lienMauvais flowmode ou NAT non pris en compteVérifier dual-srchost/dual-dsthost et cake-nat=yes
Le routeur devient instableFile 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

À propos de l’auteur

Jeremy Kraft administre les infrastructures et les services auto-hébergés de l’IBCSC. Ces guides reprennent des configurations réellement déployées, revérifiées avant publication.

Discussion

Commentaires

0

Aucun commentaire pour le moment. Vous pouvez ouvrir la discussion avec une question ou un retour d’expérience.

Vous avez un compte ? Se connecter

Texte simple, 2 000 caractères maximum. Les nouveaux commentaires sont modérés. Votre nom sera affiché avec le commentaire. Aucune adresse e-mail n’est demandée ; seule une empreinte non réversible de votre adresse IP est conservée pour lutter contre le spam.