La version 1.4 de la plateforme LibreQoS a été publiée. Elle est conçue pour organiser une répartition équitable de la bande passante disponible entre les utilisateurs et pour réduire les effets négatifs causés par le tamponnage de paquets (Bufferbloat) sur le matériel réseau. La plateforme peut être utilisée par des fournisseurs ou des administrateurs de réseaux privés pour optimiser les flux de trafic, maintenir les délais au niveau le plus bas et répartir la bande passante en tenant compte des priorités. Le code du projet est écrit en C, Python et Rust, et est distribué sous la licence GPLv2. Le projet est dirigé par Dave Taht, co-fondateur du projet Bufferbloat, créateur de la distribution CeroWrt et auteur de nombreux RFC liés au traitement des files d'attente réseau.
LibreQoS permet de réduire les retards et d'améliorer la fiabilité des sessions interactives, des jeux, des plateformes de formation en ligne, du trafic VoIP et des appels vidéo en cas de forte charge sur le réseau, par exemple, à cause du téléchargement simultané de films en plusieurs flux par certains utilisateurs ou de l'activité des amateurs de torrents (LibreQoS résout le problème de la saccade des appels vidéo lorsque quelqu'un dans le même réseau commence à charger des vidéos en 4K). L'utilisation de LibreQoS réduit la bande passante maximale disponible par utilisateur, mais permet de réduire considérablement les retards et de répartir équitablement les ressources entre tous les participants à l'échange de données. Dans un test réalisé, l'utilisation de LibreQoS a permis de réduire les retards à la réception des données de 106 à 9 ms, et à l'envoi de 517 à 23 ms, au prix d'une diminution de la vitesse de téléchargement continu de 74 à 25 Mbps et de l'envoi de 29 à 8 Mbps.
LibreQoS repose sur l'utilisation du système de gestion des files d'attente réseau CAKE (Common Applications Kept Enhanced) et du planificateur de paquets fq_codel (Fair Queuing Controlled Delay), ainsi que sur l'utilisation de eBPF et XDP (Express Data Path) pour exécuter des gestionnaires au niveau du pilote réseau avec un accès direct aux buffers DMA des paquets. L'algorithme CAKE est conçu pour remplacer et simplifier la complexe hiérarchie des disciplines de traitement des files d'attente de paquets, capable de tirer le meilleur parti de la bande passante disponible et de fournir un niveau de latence minimal même sur les canaux de communication les plus lents avec le fournisseur et lors de l'utilisation d'appareils à faible puissance. LibreQoS
LibreQoS fournit également des outils pour surveiller les délais entre l'envoi d'une requête et la réception d'une réponse (RTT, round-trip time), en lien avec des utilisateurs, des points d'accès et des sites spécifiques. Une interface web a été développée pour analyser l'état, permettant de visualiser le trafic réseau, suivre l'évolution de la charge et des délais, et identifier les utilisateurs les plus actifs. Il est possible de créer des schémas hiérarchiques flexibles de limitation de trafic et d'intégrer UISP et Splynx pour le mapping des topologies et des clients.
LibreQoS s'installe sur serveur, déployé entre le routeur de bord du fournisseur et le routeur principal du réseau local. Un seul serveur avec LibreQoS peut gérer la limitation du trafic pour des milliers d'utilisateurs, par exemple, de serveurs avec un CPU Xeon Gold 16 cœurs suffisant pour traiter le trafic des clients ISP avec une bande passante de 11 gbit/s.
Dans la nouvelle version :
- Une nouvelle architecture basée sur un backend écrit en Rust a été mise en œuvre. Le backend comprend :
- Le processus en arrière-plan lqosd, responsable du chargement et de la configuration des programmes eBPF, de l'extraction des statistiques directement depuis l'eBPF et de la fourniture d'un bus pour l'échange de données entre les composants.
- L'outil lqtop pour consulter l'activité actuelle.
- L'interface web lqos_node_manager pour classer le trafic, surveiller, enregistrer l'état du système et analyser l'activité actuelle.
- Le wrapper lqos_python pour accéder au bus depuis des scripts Python.
- Le générateur de fichiers de configuration lqos_setup.
- Le système d'authentification des utilisateurs lqos_users.
- Ajout de la possibilité d'utiliser un accélérateur de ponts réseau basé sur XDP au lieu de la sous-système de noyau standard bridge. Dans ce mode, une augmentation de performance de 30% peut être atteinte.
- Ajout de la prise en charge de l'analyse des paquets et des flux de trafic.
- Un mode de fonctionnement Single-interface a été ajouté, permettant d'utiliser une seule interface réseau et des VLANs pour le trafic externe (fournisseur) et interne (réseau local).
- Une nouvelle interface web avec de nombreux nouveaux graphiques a été proposée.




Source : opennet.ru
