Product SiteDocumentation Site

10.4. Qualitat del servei

10.4.1. Principis i mecanisme

Qualitat del Servei (o QoS per l'acrònim en anglès) es refereix a un conjunt de tècniques que garanteixen o milloren la qualitat del servei proporcionat a les aplicacions. La tècnica més popular consisteix a classificar el trànsit de xarxa en categories, i diferenciar el tractament del trànsit segons la categoria a la qual pertany. L'aplicació principal d'aquest concepte de serveis diferenciats és el «traffic shaping» o “modelatge del trànsit”, que limita les taxes de transmissió de dades per a connexions relacionades amb alguns serveis i/o servidors per no saturar l'amplada de banda disponible i fer que altres serveis es degradin. El «traffic shaping» és una tècnica especialment bona per al trànsit TCP, ja que aquest protocol s'adapta automàticament a l'amplada de banda disponible.
També és possible alterar les prioritats del trànsit, que permet prioritzar paquets relacionats amb serveis interactius (com ara ssh i telnet) o amb serveis que només tracten amb petits blocs de dades.
Els nuclis de Debian inclouen les característiques necessàries per a QoS juntament amb els seus mòduls associats. Aquests mòduls són molts, i cadascun d'ells proporciona un servei diferent, sobretot a través de planificadors especials per a les cues de paquets IP; l'àmplia gamma de comportaments de planificadors disponibles abasta tot el rang de possibles requisits.

10.4.2. Configuració i implementació

QoS parameters are set through the tc command (provided by theiproute or the iproute2 package). Since its interface is quite complex, using higher-level tools is recommended.

10.4.2.1. Reducció de latències: wondershaper

El propòsit principal de wondershaper (al paquet del mateix nom) és minimitzar les latències independentment de la càrrega de la xarxa. Això s'aconsegueix limitant el trànsit total a un valor que quedi per sota del valor de saturació de l'enllaç.
Un cop que s'ha configurat una interfície de xarxa, la limitació del trànsit s'aconsegueix executant wondershaper interfície taxa_de_baixadataxa_de_pujada. La interfície pot ser enp1s0, eth0 o ppp0, per exemple, i ambdues taxes s'expressen en kilobits per segon. El wondershaper remove interfície inhabilita el control de trànsit a la interfície especificada.
Per a una connexió Ethernet, històricament aquest script s'havia executat just després que la interfície estés configurada. Això es fa afegint directives up i down al fitxer /etc/network/interfaces que permet executar ordres declarades, respectivament, després que la interfície estigui configurada i abans que es desconfiguri. O en el cas del PPP, creant un script que cridi wondershaper a /etc/ppp/ip-up.d/ activarà el control del trànsit així que la connexió s'estableixi. Tot seguit hi ha un exemple usant el primer mètode:

Exemple 10.9. Canvis al fitxer /etc/network/interfaces

iface eth0 inet dhcp
    up /sbin/wondershaper eth0 500 100
    down /sbin/wondershaper remove eth0

10.4.2.2. Configuració estàndar

A manca d'una configuració específica de QoS, el nucli de Linux utilitza el planificador de cua pfifo_fast que proporciona algunes característiques interessants per si mateix. La prioritat de cada paquet IP processat es basa en el camp DSCP («Differentiated Services Code Point» o “punt de codi de serveis diferenciats”) del propi paquet; modificar aquest camp de 6 bits és suficient per aprofitar les característiques de planificació. Consulteu https://en.wikipedia.org/wiki/Differentiated_services#Class_Selector per a més informació.
El camp DSCP pot ser establert per aplicacions que generen paquets IP, o modificat sobre la marxa per netfilter. Les següents regles són suficients per augmentar la capacitat de resposta per al servei d'SSH d'un servidor, però tingueu en compte que el camp DSCP s'ha d'establir en hexadecimal:
nft add table ip mangle
nft add rule ip mangle PREROUTING tcp sport 22 counter ip dscp set 0x04
nft add rule ip mangle PREROUTING tcp dport 22 counter ip dscp set 0x04