Po dwóch latach opracowań dostępna jest wersja platformy LibreQoS 2.0, zaprojektowanej do sprawiedliwego przydzielania dostępnej przepustowości między użytkownikami oraz zmniejszania negatywnych efektów wynikających z buforowania pakietów (Bufferbloat) przez urządzenia sieciowe. Platforma może być wykorzystywana przez dostawców usług lub administratorów prywatnych sieci w celu optymalizacji ruchu, utrzymania minimalnych opóźnień i przydzielania przepustowości zgodnie z priorytetami. Kod projektu napisany jest w językach C, JavaScript, Python i Rust, a jego dystrybucja odbywa się na licencji GPLv2. Platforma jest instalowana na serwer, umiejscowionym pomiędzy routerem brzegowym dostawcy a podstawowym routerem lokalnej sieci.
LibreQoS pozwala na zmniejszenie opóźnień i zwiększenie niezawodności interaktywnych sesji, gier, platform online-learning, ruchu VoIP oraz wideokonferencji w warunkach dużego obciążenia sieci, na przykład spowodowanego przez użytkowników ściągających filmy w wielu strumieniach lub działających na torrentach (LibreQoS rozwiązuje problem zacinania się wideokonferencji, gdy ktoś w tej samej sieci zaczyna ściągać wideo w rozdzielczości 4K). Zastosowanie LibreQoS zmniejsza szczytową przepustowość dostępną dla jednego użytkownika, ale znacznie redukuje opóźnienia oraz sprawiedliwie przydziela zasoby między wszystkimi uczestnikami wymiany danych.
LibreQoS opiera się na zastosowaniu systemu zarządzania kolejkami sieciowymi CAKE (Common Applications Kept Enhanced) oraz planisty pakietów fq_codel (Fair Queuing Controlled Delay), a także wykorzystuje eBPF i XDP (Express Data Path) do wykonywania handlerów na poziomie sterownika sieciowego z możliwością bezpośredniego dostępu do bufora DMA pakietów. Algorytm CAKE został zaprojektowany w celu zastąpienia i uproszczenia złożonej hierarchii dyscyplin przetwarzania kolejek pakietów, zdolny jest do wykorzystania maksymalnej możliwej przepustowości oraz zapewnienia minimalnych opóźnień nawet na najwolniejszych łączach z dostawcą i przy pracy na słabych urządzeniach.
Projekt zapewnia również narzędzia do monitorowania opóźnień między wysłaniem zapytania a otrzymaniem odpowiedzi (RTT, round-trip time), z uwzględnieniem poszczególnych użytkowników, punktów dostępu i stron internetowych. Do analizy stanu stworzono interfejs webowy, który umożliwia wizualną ocenę ruchu w sieci, monitorowanie zmian obciążenia i opóźnień, a także identyfikację najbardziej aktywnych użytkowników. Możliwe jest tworzenie elastycznych hierarchicznych schematów ograniczania ruchu oraz integracja z UISP i Splynx w celu mapowania topologii i klientów.
Wydanie LibreQoS 2.0 jest dedykowane Dave'owi Tahtowi, który zmarł niespodziewanie rok temu w wieku 59 lat. Dave kierował rozwojem LibreQoS i był współzałożycielem projektu Bufferbloat, twórcą dystrybucji CeroWrt oraz autorem licznych RFC związanych z obsługą kolejek sieciowych.
Kluczowe zmiany w wersji LibreQoS 2.0:
- Zmodernizowano interfejs webowy operatora, w którym rozszerzono możliwości diagnostyki problemów sieciowych oraz dodano nowe raporty i wykresy.

- W trybie widoku drzewa (Tree view) zapewniono wyświetlanie hierarchicznej struktury sieci, poprawiono przetwarzanie topologii i szczegółowo opisano zachowanie węzłów.
- Dodano nowe narzędzia diagnozowania problemów, umożliwiające analizowanie stanu kolejek sieciowych, śledzenie przepływów ruchu, wizualizowanie ruchu w postaci diagramów Sankey, monitorowanie retransmisji pakietów oraz wizualizację cykli odbioru-przesyłania TCP (RTT).

- Dodano nowe tryby wizualizacji map i przepływów ruchu oraz analizator systemów autonomicznych (ASN Analysis).

- Udoskonalono integrację z systemami organizacji interakcji z klientami (CRM) i systemami zarządzania siecią (NMS). Dodano wsparcie dla integracji z UISP, Splynx, Netzur, VISP, WISPGate, Powercode i Sonar.
- Ulepszono możliwości ograniczania przepustowości (shaping), związane z zarządzaniem kolejkami oraz używaniem TreeGuard i StormGuard do zapobiegania przeciążeniom.
- Poprawiono monitorowanie stanu planisty oraz informowanie o krytycznych problemach.
Źródło: opennet.ru



