È stata pubblicata la versione 1.4 della piattaforma LibreQoS, progettata per organizzare una distribuzione equa della larghezza di banda disponibile tra gli utenti e ridurre gli effetti negativi causati dal buffering intermedio dei pacchetti (Bufferbloat) nelle attrezzature di rete. La piattaforma può essere utilizzata da provider o amministratori di reti private per ottimizzare i flussi di traffico, mantenere le latenze al minimo e distribuire la larghezza di banda tenendo conto delle priorità. Il codice del progetto è scritto in C, Python e Rust e viene distribuito sotto licenza GPLv2. Il progetto è sviluppato sotto la direzione di Dave Taht, cofondatore del progetto Bufferbloat, creatore della distribuzione CeroWrt e autore di numerosi RFC riguardanti la gestione delle code di rete.
LibreQoS consente di ridurre le latenze e aumentare l'affidabilità delle sessioni interattive, dei giochi, delle piattaforme di apprendimento online, del traffico VoIP e delle videochiamate in condizioni di elevato carico di rete, ad esempio, a causa del caricamento da parte di alcuni utenti di film in streaming o dell'attività degli appassionati di torrent (LibreQoS risolve il problema dei lag nelle videochiamate quando qualcuno nella stessa rete inizia a scaricare video in 4K). L'uso di LibreQoS riduce la larghezza di banda massima disponibile per un singolo utente, ma consente di ridurre significativamente le latenze e distribuire equamente le risorse tra tutti i partecipanti allo scambio di dati. In un test condotto, l'utilizzo di LibreQoS ha permesso di ridurre le latenze nella ricezione dei dati da 106 a 9 ms e nella trasmissione da 517 a 23 ms, a scapito di una diminuzione della velocità di caricamento continuo da 74 a 25 Mbps e della trasmissione da 29 a 8 Mbps.
Alla base di LibreQoS c'è l'implementazione del sistema di gestione delle code di rete CAKE (Common Applications Kept Enhanced) e del pianificatore di pacchetti fq_codel (Fair Queuing Controlled Delay), nonché l'uso di eBPF e XDP (Express Data Path) per eseguire gestori a livello di driver di rete con accesso diretto al buffer DMA dei pacchetti. L'algoritmo CAKE è progettato per sostituire e semplificare la complessa gerarchia delle discipline di gestione delle code di pacchetti, capace di ottenere la massima larghezza di banda possibile e fornire un livello minimo di latenze anche sui canali di comunicazione più lenti con il provider e durante l'uso di dispositivi a bassa potenza.
LibreQoS fornisce anche strumenti per monitorare la latenza tra l'invio di una richiesta e la ricezione di una risposta (RTT, round-trip time), in relazione a singoli utenti, punti di accesso e siti. Per analizzare lo stato è stata sviluppata un'interfaccia web che consente di valutare visivamente il traffico nella rete, monitorare il cambiamento del carico e della latenza, e identificare gli utenti più attivi. È possibile creare schemi gerarchici flessibili di limitazione del traffico e integrare con UISP e Splynx per la mappatura delle topologie e dei clienti.
LibreQoS si installa su server, collocato tra il router di confine del provider e il router della rete locale. Un server con LibreQoS può gestire la limitazione del traffico per molte migliaia di utenti, ad esempio, server un CPU Xeon Gold a 16 core è sufficiente per gestire il traffico dei clienti ISP con una larghezza di banda di 11 gbit/s.
Nella nuova versione:
- È stata implementata una nuova architettura basata su un backend scritto in Rust. Il backend include:
- Un processo in background lqosd, responsabile del caricamento e della configurazione dei programmi eBPF, dell'estrazione delle statistiche direttamente da eBPF e della fornitura di un bus per lo scambio di dati tra i componenti.
- L'utilità lqtop per visualizzare l'attività corrente.
- L'interfaccia web lqos_node_manager per la categorizzazione del traffico, il monitoraggio, il conteggio dello stato del sistema e l'analisi dell'attività corrente.
- Il wrapper lqos_python per organizzare l'accesso al bus da script in Python.
- Il generatore di file di configurazione lqos_setup.
- Il sistema di autenticazione degli utenti lqos_users.
- È stata aggiunta la possibilità di utilizzare un acceleratore di bridge di rete basato su XDP invece del sottosistema di bridge del kernel. In questa modalità, è possibile ottenere un aumento delle prestazioni del 30%.
- È stata aggiunta la supporto per l'analisi dei pacchetti e dei flussi di traffico.
- È stata aggiunta una modalità di funzionamento Single-interface, che consente di utilizzare un'interfaccia di rete e VLAN per il traffico esterno (provider) e interno (rete locale).
- È stata proposta una nuova interfaccia web con un numero maggiore di nuovi grafici.




Fonte: opennet.ru
