Archive for the ‘QoS’ Category

QoS in IP-Netzwerken testen

1 April 2017

QoS also Quality of Service soll dabei helfen Datenpakete zu priorisieren damit z. B. ein VoIP-Telefonat reibungslos läuft. Nur leider hat die Sache wie immer einen Haken.

Man muss im Zusammenhang mit QoS in IP-Netzten aktuell RSVP (IntServ) und ToS (DiffServ) unterscheiden. https://de.wikipedia.org/wiki/Quality_of_Service#Realisierung_in_IP-Netzen. Wann immer man über RSVP liest kann man es eigentlich gleich abhaken, denn es hat sich nicht durchgesetzt und wurde einer breiten Basis mit der Aufgabe von Windows XP beraubt. Dieser Artikel geht zum Beispiel auf den Ping.EXE –v Parameter ein und welche Änderungen bei Windows Vista bzw. Windows 7 gekommen sind: http://htluo.blogspot.de/2016/05/qos-test-tool-on-windows-7-or-above.html. Ich möchte noch auf diesen Artikel verweisen wo beim Server 2012 von RSVP in Verbindung mit QWave die Rede ist: https://technet.microsoft.com/de-de/library/hh831592(v=ws.11).aspx. Aber ich gehe davon aus, dass dies ein Versehen ist oder MS?

Windows, auch ein aktuelles Windows 10 ist also ein Totalreinfall in Sachen QoS-Tests. Zum Glück gibt es Linux, dort kann man fast mit Bordmitteln einen Endpunkt auf QoS Unterstützung testen.

Man benötigt also ein Ubuntu oder Debian System, dort hat der Ping-Befehl den Parameter –Q. Mit diesem kann man die TOS-Angabe übergeben. Ein Mapping zwischen DSCP und TOS-Werten ist hier zu finden: https://www.tucny.com/Home/dscp-tos. Hier wird auch gleich noch auf ein paar Besonderheiten eingegangen. Die gängigsten Werte sind 104 (DSCP 26) für SIP und 184 (DSCP 46) für RTP.

Nun zur praktischen Anwendung. So prüft man z. B. sipgate, genauso gut könnte man auch eine Fritzbox mittels fritz.box testen:

ping proxy.live.sipgate.de –Q 184

Man bekommt ganz normal Ping-Pakete zurück. Wie kann man nun aber nachvollziehen, ob die Gegenseite tatsächlich QoS unterstützt?

Man macht in einem zweiten Terminalfenster eine Abfrage mittels TCPDump. Gegebenenfalls muss man TCPDump noch mittels apt-get installieren.

tcpdump –i eth0 –v ip[1]==184 and icmp[0]==0

Wenn nun Antwortpakete von der Gegenseite kommen, werden diese hier angezeigt. Sobald hier etwas angezeigt wird, passt es. Wird nichts angezeigt hat man ein Problem.

Bei Problemen sollte man zuerst schauen, ob die ICMP-Requests auch rausgehen:

tcpdump –i eth0 –v ip[1]==184 and icmp[0]==8

Es sollte tos mit 0x8b was 184 Dezimal entspricht angezeigt werden.

Wenn man mehr Infos haben möchte, kann man noch TShark oder Wireshark bemühen. Wie man damit umgeht zeigt dieser Artikel sehr schön: http://conceptsfortheroad.com/2016/01/01/using-linux-to-verify-dscp/.