Die Version 1.4 der Plattform LibreQoS wurde veröffentlicht. Sie dient der gerechten Verteilung der vorhandenen Bandbreite zwischen den Nutzern und der Reduzierung negativer Effekte, die durch Packet-Buffering (Bufferbloat) in Netzwerkgeräten entstehen. Die Plattform kann von Anbietern oder Administratoren privater Netzwerke genutzt werden, um den Datenverkehr zu optimieren, die Latenz auf einem Minimum zu halten und die Bandbreite entsprechend der Prioritäten zu verteilen. Der Projektcode ist in C, Python und Rust geschrieben und wird unter der GPLv2-Lizenz veröffentlicht. Das Projekt wird unter der Leitung von Dave Taht, Mitbegründer des Bufferbloat-Projekts, Entwickler der Distribution CeroWrt und Autor zahlreicher RFCs zur Netzwerk-Queue-Verwaltung, weiterentwickelt.
LibreQoS trägt zur Verringerung der Latenzzeiten und zur Erhöhung der Zuverlässigkeit interaktiver Sitzungen, Spiele, Online-Lernplattformen, VoIP-Datenverkehr und Videoanrufe unter hoher Netzwerkbelastung bei. Dies kann beispielsweise durch das Herunterladen von Filmen in mehreren Streams durch einige Benutzer oder durch torrent-begeisterte Nutzer verursacht werden. LibreQoS behebt das Problem von ruckelnden Videoanrufen, wenn jemand im selben Netzwerk beginnt, 4K-Videos herunterzuladen. Der Einsatz von LibreQoS verringert die verfügbare Spitzenbandbreite für einen einzelnen Nutzer, ermöglicht jedoch eine signifikante Reduzierung der Latenzzeiten und eine faire Verteilung der Ressourcen unter allen Teilnehmern des Datenaustauschs. Tests haben gezeigt, dass der Einsatz von LibreQoS die Latenzzeiten beim Empfang von Daten von 106 ms auf 9 ms und beim Senden von 517 ms auf 23 ms senken konnte, wobei die kontinuierliche Downloadgeschwindigkeit von 74 auf 25 Mbps und die Übertragung von 29 auf 8 Mbps gesenkt wurde.
Die Grundlage von LibreQoS ist die Anwendung des CAKE-Netzwerkqueue-Managementsystems (Common Applications Kept Enhanced) und des fq_codel-Paketplaners (Fair Queuing Controlled Delay) sowie die Nutzung von eBPF und XDP (Express Data Path) zur Ausführung von Handlers auf der Ebene des Netzwerkdrivers mit direktem Zugriff auf die DMA-Pakete. Der CAKE-Algorithmus ist so konzipiert, dass er eine komplexe Hierarchie der Paketqueue-Bearbeitungsdisziplinen ersetzt und vereinfacht, die maximal mögliche Bandbreite ausnutzt und selbst bei den langsamsten Verbindungen mit dem Provider und beim Betrieb auf leistungsschwachen Geräten ein minimales Verzögerungsniveau bietet. LibreQoS
LibreQoS bietet auch Werkzeuge zur Überwachung der Verzögerungen zwischen dem Senden einer Anfrage und dem Erhalten einer Antwort (RTT, Round-Trip-Time), die an bestimmte Benutzer, Zugangspunkte und Websites gebunden sind. Für die Analyse des Status wurde eine Web-Oberfläche entwickelt, die es ermöglicht, den Netzwerkverkehr anschaulich zu bewerten, Änderungen der Last und Verzögerungen zu verfolgen sowie die aktivsten Benutzer zu identifizieren. Es ist möglich, flexible hierarchische Verkehrsbeschränkungen zu erstellen und eine Integration mit UISP und Splynx für das Mapping von Topologien und Kunden zu realisieren.
LibreQoS wird installiert auf der Server, das zwischen dem Gateway-Router des Anbieters und dem lokalen Netzwerk-Router platziert wird. Ein Server mit LibreQoS kann den Datenverkehr für viele Tausend Nutzer verwalten, beispielsweise Server mit einem 16-Kern-CPU Xeon Gold, das ausreichend ist, um den Datenverkehr für ISP-Kunden mit einer Bandbreite von 11 gbit/s zu verarbeiten.
In der neuen Version:
- Es wird eine neue Architektur auf Basis eines Backends verwendet, das in Rust geschrieben ist. Das Backend umfasst:
- den Hintergrundprozess lqosd, der für das Laden und die Konfiguration von eBPF-Programmen verantwortlich ist, die Statistiken direkt aus eBPF extrahiert und eine Datenbus-Schnittstelle zwischen den Komponenten bereitstellt.
- das Werkzeug lqtop zur Anzeige der aktuellen Aktivitäten.
- die Web-Oberfläche lqos_node_manager zur Kategorisierung des Datenverkehrs, Überwachung, Systemstatusberichterstattung und Analyse der aktuellen Aktivitäten.
- die lqos_python-Bindung zur Bereitstellung des Zugriffs auf den Bus aus Python-Skripten.
- den Konfigurationsdatei-Generator lqos_setup.
- das Benutzerauthentifizierungssystem lqos_users.
- Die Möglichkeit zur Verwendung eines auf XDP basierenden Netzwerkbrückenbeschleunigers wurde hinzugefügt, anstelle der Standard-Kernel-Bridgesubsystem. In diesem Modus kann eine Leistungssteigerung von 30 % erreicht werden.
- Es wurde Unterstützung für die Analyse von Paketen und Datenströmen hinzugefügt.
- Der Einzel-Schnittstellenmodus wurde hinzugefügt, der die Verwendung einer einzigen Netzwerkschnittstelle und VLANs für externen (Provider) und internen (lokale Netzwerke) Datenverkehr ermöglicht.
- Ein neues Web-Interface mit einer Vielzahl neuer Diagramme wurde vorgestellt.




Quelle: opennet.ru
