How-to traffic queueing with speedtouch
Intro
Door dat downloaden/uploaden tegewoordig een steeds 'normaler'word komen soms de verschillende streams wel is in de knoei met elkaar.
Met behulp van queueing kunnen we dit in goede banen leiden. Omdat het mogelijk is om bepaald verkeer een hogere prioriteit te geven.
Vroeger was dit alleen voor bedrijven, maar de techniek heeft ook z'n weg gevonden naar de consumenten electronica. zoals onder andere Speedtouch ADSL modems.
Hard-/Software
Queueing kan niet met elke ADSL modem. Deze how-to is voor Speedtouch hardware. En werkt met de volgende producten.
Residential products:
* The SpeedTouch™510(i)/530(i) Multi-User ADSL Gateways (R4.2.7)
Business products:
* The SpeedTouch™605s Multi-User SHDSL Gateway (R4.2.7)
* The SpeedTouch™608(i) Business DSL Routers (R4.2.7)
* The SpeedTouch™610(i/s/v) Business DSL Routers (R4.2.7)
Firmware dient versie 4.2.7 of hoger te zijn. En deze is
hier te vinden.
How-to
Voor het gemak gaan we er vanuit dat er al een verbinding is met de provider. In dat geval hoeft alleen nog maar QoS queueing aangezet te worden.
Alles gebeurt door middel van de commandline, de webinterface biedt nog niet de mogelijkheid om dit te doen. Dus open een telnet sessie naar de Speedtouch.
het Default adres is 10.0.0.138, maar je kan ook een ander ipadres gebruiken als je dat in je speedtouch ingesteld hebt. Inloggen als admin met het bij behoorende wachtwoord.
Connected to 10.0.11.10.
Escape character is '^]'.
Username : admin
Password : ********
Voor de configuratie van QoS hebben we een destination nodig voor de queue's. Deze kan worden opgevraagd doormiddel van het phonebook commando.
Mocht deze nog niet bestaan dan kan deze met het zelfde commando ook aan gemaakt worden.
=>phonebook list
Name Type Use Address
PVC_1 any 1 8.48
Of aan maken met.
phonebook add name=PVC_1 addr=8*48 type=any
Nu dit allemaal goed staat kunnen we de queue's gaan configureren. Eerst kijken we of die al aan staan.
=>ipqos list
Name State Discard Packets Kbytes Rate Burstsize
PVC_1 enabled early 0 0 80% 2
in dit geval staan QoS aan. mocht dit niet het geval zijn, ze het dan aan met het ipqos commando.
ipqos config dest=PVC_1 state=enabled discard=early priority=strict
De speedtouch heeft voor de consumenten gebruik 4 verschillende queue's. Standaard staat er alleen de default queue aan en wordt al het verkeer daarin gegooit.
Ook de andere 3 queue's zetten we aan door middel van ipqos queue.
=>ipqos queue config dest=PVC_1 queue=0
=>ipqos queue config dest=PVC_1 queue=1 propagate=enabled
=>ipqos queue config dest=PVC_1 queue=2 propagate=enabled
=>ipqos queue config dest=PVC_1 queue=3 propagate=enabled
=>ipqos queue list
Name Queue Propagate Packets Kbytes
PVC_1 0 0 24
1 enabled 0 24
2 enabled 0 24
3 enabled 0 20
Nu de queue's geactiveerd zijn kunnen het juiste verkeer naar de goede queue sturen. door het verkeer te labelen weet de speedtouch welk verkeer in welke queue moet. zoals eerder te zien is zijn er 4 queue's.
* 3 is the Real Time queue
* 2 is the High queue
* 1 is the Medium queue
* 0 is the Best Effort queue.
We maken voor elke queue een label aan. en configureren die dat verkeer met dat label in de goede queue terecht komt.
de betekennis van alle opties kunnen in de CLIguide van de speedtouch worden opgezocht.
label add name=default
label add name=lowid
label add name=mediumid
label add name=highid
label config name=default classification=overwrite defclass=4 ackclass=4
label config name=lowid classification=increase defclass=6 ackclass=6
label config name=mediumid classification=increase defclass=10 ackclass=10
label config name=highid classification=increase defclass=14 ackclass=14
=>label list
Name Class Defclass Ackclass Ttlover Ttl Tosmark Tos Use Trace
default overwrite 4 4 disabled 0 disabled 0 0 disabled
lowid increase 6 6 disabled 0 disabled 0 0 disabled
mediumid increase 10 10 disabled 0 disabled 0 0 disabled
highid increase 14 14 disabled 0 disabled 0 0 disabled
Nu het verkeer met de juiste labels naar de goede queue gestuurd wordt kunnen we gaan bepalen welk verkeer dat is.
aangezien er standaard geen mogelijkheid is voor gebruikers om labels aan te maken, maken we eerst zelf een chain user_labels aan.
label chain create chain=user_labels
=>label chain list
:label chain create chain=user_labels
:label chain create chain=_auto_labels
Aan deze chain kunnen we dan rules gaan toevoegen. hier onder een voorbeeld van mogelijkheden. er is nog veel meer mogelijk, maar dit is een kleine selectie. in de CLIguide staan nog meer opties.
Een van de rules is dat verkeer van het protocol icmp(ping) in de hoogste queue geplaatst moet worden.
deze regel was ook goed te zien in mijn ping grafieken.

verder heeft ook dns verkeer voorang. smtp en www hebben ook voorrang op de rest van het verkeer. aangezien ik zelf ook thuis een mail en webserver draai heeft het verkeer wat daarvandaan komt ook voorand.
de rest van het verkeer komt vanzelf in de default queue terecht. en zal dus als best effort behandeld worden. op deze manier heeft het torrent en p2p verkeer geen invloed op de rest van het surfen. wat wel zo prettig is.
label rule create chain=user_labels index=0 srcintfgrp=lan prot=icmp label=highid
label rule create chain=user_labels index=1 srcintfgrp=lan prot=udp dstport=dns label=highid
label rule create chain=user_labels index=4 srcintfgrp=lan prot=tcp dstport=smtp label=mediumid
label rule create chain=user_labels index=5 srcintfgrp=lan prot=tcp dstport=www-http label=mediumid
label rule create chain=user_labels index=6 srcintfgrp=lan prot=tcp srcport=smtp label=mediumid
label rule create chain=user_labels index=7 srcintfgrp=lan prot=tcp srcport=www-http label=mediumid
Erik de Mare 2000-2005