Product SiteDocumentation Site

10.3. Tjenestekvalitet

10.3.1. Prinsipp og mekanisme

Quality of Service (eller i kortform QoS) refererer til et sett av teknikker som garanterer eller forbedrer kvaliteten på tjenesten som leveres til programmer. Den mest populære teknikken innebærer å klassifisere nettverkstrafikk i kategorier, og differensiere håndtering av trafikken etter hvilken kategori den tilhører. Den viktigste anvendelsen av dette differensierte tjenesteopplegget er traffic shaping, som begrenser dataoverføringshastigheten for forbindelser knyttet til enkelte tjenester og/eller verter for ikke å mette den tilgjengelige båndbredden og sulte/bremse viktige andre tjenester. «Traffic shaping» er spesielt god egnet for TCP-trafikk, siden denne protokollen automatisk tilpasser seg til tilgjengelig båndbredde.
Det er også mulig å endre trafikkprioriteringene, slik at de tillater prioritering av pakker knyttet til interaktive tjenester (som for eksempel ssh og telnet), eller av tjenester som kun omfatter små blokker av data.
Debian-kjerner inkluderer funksjonene som kreves for QoS og sammen med de modulene som hører til. Disse modulene er mange, og hver av dem gir en annen tjeneste, særlig i form av spesielle planleggere for køer av IP-pakker; det brede utvalget av oppgaver for de tilgjengelige planleggere spenner over hele spekteret av mulige krav.

10.3.2. Konfigurering og implementering

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

10.3.2.1. Redusere ventetider : wondershaper

Hovedformålet til wondershaper (i pakken med tilsvarende navn) er å minimalisere ventetider uavhengig av nettverksbelastning. Dette oppnås ved å begrense den totale trafikken til en verdi som faller like under lenkens metningsverdi.
Når et nettverkskort er konfigurert, settes denne trafikkbegrensning opp ved å kjøre wondershaper interface download_rate upload_rate. Grensesnittet kan for eksempel være eth0 eller ppp0, og begge hastighetene er uttrykt i kilobit per sekund. wondershaper remove interface-kommandoen deaktiverer trafikk-kontroll for det angitte grensesnittet.
For en Ethernet-forbindelse, er dette skriptet best påkalt rett etter at grensesnittet er konfigurert. Dette gjøres ved å legge til up and down-direktiver til /etc/network/interfaces-filen som tillater at de meldte kommandoer kan kjøres, respektivt, etter at grensesnittet er konfigurert og før det er dekonfigurert. For eksempel:

Eksempel 10.9. Forandringer i /etc/network/interfaces-filen

iface eth0 inet dhcp
    up /sbin/wondershaper eth0 500 100
    down /sbin/wondershaper remove eth0
I PPPs tilfelle, å lage skript som påkaller wondershaper i /etc/ppp/ip-up.d/ vil slå på trafikkontroll så snart forbindelsen er aktivert.

10.3.2.2. Standardkonfigurasjon

For å sperre en bestemt QoS konfigurasjon, bruker Linux-kjernen pfifo_fast-tidsplanlegger, som i seg selv gir noen interessante funksjoner. Prioritering av hver behandlede IP-pakke er basert på ToS-feltet (Type of Service) i denne pakken; Å endre dette feltet er nok til å dra nytte av tidsplanleggingsfunksjonene. Det er fem mulige verdier:
  • Normal-Service (0);
  • Minimize-Cost (2);
  • Maximize-Reliability (4);
  • Maximize-Throughput (8);
  • Minimize-Delay (16).
TOS-feltet kan settes med programmer som genererer IP-pakker, eller modereres underveis med netfilter. Følgende regler er tilstrekkelige til å øke reaksjonsevne for en tjeners SSH-tjeneste:
iptables -t mangle -A PREROUTING -p tcp --sport ssh -j TOS --set-tos Minimize-Delay
iptables -t mangle -A PREROUTING -p tcp --dport ssh -j TOS --set-tos Minimize-Delay