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-parametrene settes med tc-kommandoen (gitt av iproute-pakken). Siden grensesnittet er ganske komplisert, anbefales det å bruke et høyere-nivå verktøy.

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 grensesnitt download_rate upload_rate. Grensesnittet kan for eksempel være eth0 eller ppp0, og begge hastighetene er uttrykt i kilobit per sekund. Kommandoen wondershaper remove grensesnitt deaktiverer trafikk-kontroll for det angitte grensesnittet.
For en Ethernet-forbindelse, er dette skriptet best tilgjengelig rett etter at grensesnittet er konfigurert. Dette gjøres ved å legge til up og 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-tjeneste (0);
  • Minimer-kostnad (2);
  • Maksimer-pålitelighet (4);
  • Maksimer-gjennomstrømming (8);
  • Minimer-forsinkelse (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