QoS: Bandbreite, Priorisierung und CAC

Sprache über LAN/WAN-Netzwerke zu übertragen, stellt neue Herausforderungen an die Netzwerkadministratoren. Damit meine ich nun wirklich die Personen, die für das physikalische Netzwerk, d.h. Router, Switches, WAN-Verbindungen etc., zuständig sind und nicht etwa der Windows „Netzwerk“-Administrator. VoIP belegt zwar nicht viel Bandbreite, aber stellt besondere Anforderungen an die Übertragung. Wer bisher sein LAN nur für „Daten“ genutzt hat, hat oftmals nicht die nun erforderlichen Kenntnisse. Dem möchte ich hier abhelfen.

Unterschiedliche Anforderungen

Die nun neu gestellten Anforderungen haben einen technischen Hintergrund: Sprache z.B. darf nicht zu lange warten, damit die Latenzzeit nicht zu lange wird aber in Überlastsituationen kann der Router schon mal ein paar Pakete „unter den Tisch“ fallen lassen. Paketverluste bei VoIP (UDP) sind bis zu einem bestimmten Maß durchaus erlaubt.

Bei interaktiven (Telnet, SAP-Gui, etc.) hingegen bedeutet ein Datenverlust, dass die Daten erneut angefragt werden (TCP Retransmit) und damit die Situation sogar verschlechtert wird. Die Latenzzeit sollte aber zumindest niedrig bleiben. Beide Lasten belegen aber meist wenig Bandbreite.

Anders ist es bei Datenübertragungen (SMB, FTP, http). Auch hier sollten keine Pakete verloren gehen aber es ist kein Echtzeit-Verkehr. In Überlastsituationen ist es aber besser, hier etwas zu „warten“ anstatt ein Telefonat zu stören. Zudem gibt es Lasten, die untergeordnet werden können wie z.B. Backup. Diese können meist „verlangsamt“ werden, um Platz für wichtigere Pakete zu machen. Wenngleich irgendwann natürlich auch ein Backup fertig werden muss. Bei der Steuerung von Netzwerkverkehr gibt es drei wesentliche Dinge zu regeln:

  • Bandbreite Die Übertragung von Informationen über eine Verbindung ist in der Regel „Sequentiell“, d.h. wenn wir von Bandbreite sprechend, dann ist dies keine Aussage über die Spuren einer Fahrbahn, sondern die Geschwindigkeit mit der gefahren werden kann. Technisch fahren aber alle immer „hintereinander“ und gleich schnell. Und da durch die Geschwindigkeit vorgegeben ist, wie viele Informationen pro Sekunde übertragen werden können, kann über Bandbreitenrichtlinien dafür gesorgt werden, dass alle mindestens das zugewiesene Stück von dem Kuchen bekommen.
  • Priorität Über eine Priorisierung kann aber einem Übergangspunkt gesteuert werden, welche Lasten vorgezogen werden und welche verzögert müssen. Da alle Pakete nacheinander über die gleiche Leitung unterwegs sind, kann ein „dickes“ Paket schon eine merkliche Verzögerung mitbringen. Ein 1500kByte SMB Paket blockiert über 2 Megabit die Leitung für ca. 7ms. Es macht also Sinn hier zwischen große Pakete entsprechend kleine RTP-Pakete einzubauen.
  • Paket Loss
    Es wird immer zu "Überlast"-Situationen kommen und selbst wenn ein Router eine Queue aufbaut und diese sehr lang sein könnte, macht es aber keinen Sinn, Pakete längere Zeit dort zu puffern. Es gibt Daten wie VoIP, die bis zu einem gewissen Prozentsatz Paketverluste sogar einfach kompensieren. Andere Daten, speziell per TCP gesichert, werden einen Verlust mit einem Retransmit heilen, der unterm Strich noch mehr Bandbreite belegt.

Aus diesen Vorgaben muss ein Router nun entscheiden, welche Pakete er wie für die Übertragung einreiht. All diese Überlegungen sind natürlich hinfällig, wenn einfach „genug“ Bandbreite vorhanden ist. In einem geswitchten LAN mit entsprechenden dimensionierten Trunks ist QoS möglich aber oft auch gar nicht erforderlich. Interessanter wird es auf langsameren Verbindungen oder z.B. Funkstrecken, die per Definition ein „Shared Medium“ sind. Wobei langsam immer auch eine Frage der Firmengröße ist. Selbst Gigabit kann wenig sind, wenn 250 Personen in einer Video-Konferenz sind.

Und so könnte dann eine Umsetzung der verschiedenen Anwendungen auf die entsprechenden Serviceklassen aussehen:

Anwendung Delay Bandbreite Loss Serviceklassen CoS

Sprache

min

wenig

wenig

Voice Class

Video

min

viel

wenig

Realtime Class

RDP, ICA, SAP, VT220

min

wenig

kein

Applikation

WWW, FTP, SMTP

unkritisch

hoch

kein

Unkritisch

SIP-Signalling

normal

gering

kein

kein

SNMP, BGP, OSPF

min

gering

kein

kein

Überlegen Sie einmal selbst, welche Transportleitung ihr Ethernet bereit stellt und wie Sie dieses priorisieren und reglementieren wollen. Denn die Grenzen sind durch die Physik vorgegeben. In Überlastsituationen ist ein effizientes "Mangel"-Management ein wesentlicher Faktor einer erfolgreichen VoIP Umgebung.

Definition der Bandbreite

Bandbreite sind „numerische“ Werte und entsprechend könnte man ein Maximum und/oder ein Minimum definieren. Beide Optionen sind denkbar und wenn sie ansonsten einen „freien Zugang“ zu ihrem Netzwerk gewähren aber eine Überlastung durch wenige Dienste (z.B. Surfen etc.) verhindern wollen, dann kann die Definition eines „Maximum“ für diese Last durchaus gangbar sein. Dies ist der einfachste Weg, wenn Sie die anderen Lasten nicht können oder nicht definieren können. Allerdings könnte es dabei passieren, dass bei einem unbelasteten Medium sie den Dienst völlig überflüssig einschränken.

Sinnvoller ist aber der umgekehrte Weg, indem die interessanten Lasten definiert und mit einer Mindestbandbreite versehen werden. Das bedeutet aber, dass Sie nicht nur VoIP sondern eben auch andere wichtige Dienste klassifizieren müssen, damit die Router eine entsprechende Entscheidung treffen können. Jeder Dienst kann dann ohne Einschränkung seine Bandbreite verwenden und über eventuell vorhandene Restbandbreite zumindest teilweise verfügen. Es soll Router geben, die bei der Vorgabe einer Mindestbandbreite diese auch statisch reservieren und damit Kapazität ungenutzt liegen lassen.

Definition der Priorität mit DiffServ (Layer 3)

Kniffliger wird es nun bei der Priorität. Eine einfache Einstufung von niedrig bis hoch ist zu kurz gedacht, weil dann nur noch die Bandbreite als „Schutz“ wirken würde, dass nicht eine Anwendung mit höherer Priorität alle anderen niedrigeren Kommunikationen quasi Ausblocken würde. Und weder Priorität noch Bandbreite sag an sich etwas über die Erlaubnis zum „verwerfen“ von Paketen aus. Im QoS Umfeld gibt es z.B. die Kennzeichnung „Expedited Forwarding (EF)“ um Pakete mit minimaler Verzögerung, Verlusten und Laufzeitunterschieden weiter zu geben. Um noch „Luft“ für andere Pakete zu lassen, sollte die Verwendung von EF-gekennzeichnetem Verkehr reglementiert werden. für Voice wird besser die Klassifizierung Voice Admit (VA) genutzt, die aus Netzwerksicht mit EF vergleichbar ist.

Alle anderen Verkehre werden mit verschiedenen Klassen unter Assured Forwarding (AF) übertragen, die unterschiedliche Bewertungen bezüglich Priorität und Drop-Verhalten haben. Die Bezeichnung Class Selector (CS) wird als Rückwärtskompatibilität zu früheren "Type of Service" (TOS) Werten genutzt.

Klasse

CS

DSCP
(dec)

TOS Name

Priorität

Drop

Einsatz

EF

 

46

Class 5(Höchst)

0

Lync Audio

VA

44

Class 5(Höchst)

0

AF41

34

Class 4

Niedrig

Lync Video

AF42

36

Class 4

Mittel

AF43

CS7

38

Network Control

Class 4

Hoch

IP Routing Protokolle

AF33

CS6

30

Internetwork Control

Class 3

Hoch

IP Routing Protokolle

AF32

CS5

28

CRITIC/ECP
Express Forwarding (EF)

Class 3

Mittel

AF31

26

Class 3

Niedrig

AF23

22

Class 2

Hoch

AF22

CS4

20

Flash Override

Class 2

Mittel

AF21

CS3

18

Flash

Class 2

Niedrig

Lync SIP Signalling

 

CS2

16

Immediate

-

Hoch

AF13

14

Class 1

Hoch

AF12

12

Class 1

Mittel

AF11

10

Class 1

Niedrig

 

CS1

8

Priority

-

Hoch

Default

Default

0

Routine

Unklassifiziert

Unklassifiziert

Priorität mit IEEE 802.1p (Layer 2)

DiffServ mit DSCP-Feldern bauen auf Layer 3 auf und werden von einfachen Switches nicht erfasst. Auf Layer2 hingegen arbeitet IEEE 802.1p. Allerdings gibt es hier nur 7 Klassen, die in dem 3-bit PCP Feld folgendermaßen unterteilt werden:

PCP

Netzwerkpriorität

Kürzel

Eigenschaften

1

0 (niedrigste)

BK

Hintergrund

0

1

BE

Best Effort

2

2

EE

Excellent Effort

3

3

CA

Kritische Anwendungen

4

4

VI

Video, < 100 ms Verzögerung

5

5

VO

Sprache, < 10 ms Verzögerung

6

6

IC

Internetwork Control

7

7 (höchste)

NC

Network Control

Die 3 Bits werden als Teil des VLAN-Taggings verwendet, welches nur 12 Bits (4096 VLANs) verwendet und direkt nach dem Ethernet-Frametype codiert ist. Diese Priorisierung sind auf Ethernet-Level (Layer 2) und damit auch protokollunabhängig.

Erst Windows 2012 unterstützt auch die Kennzeichnung mit 802.1p
http://technet.microsoft.com/en-us/library/hh831679

Lync Beispiele für QoS

Bringt man nun die Lync Protokolle in eine Tabelle, dann sieht dies in etwa so aus:

Medien QoS Klasse pro Hop Queuengi und Drop Notizen

Audio

EF

Priority Queue

Niedrige Verluste, Wenig Latenz, geringer Jitter, gesicherte Bandbreite. Abstimmung mit WAN-Reservierungen

Video

AF41

BW Queue und DSCP WRED

Klasse 4 mit wenig Verlust (Low Drop Policy)
Abstimmung mit WAN-Bandbreiten auf belasteten Leitungen

SIP Signalisierung

CS3

BW Queue

Klasse 3
Zugesicherte Bandbreite sollte "Drops" verhindern

App Sharing

AF21

BW Queue und DSCP WRED

Klasse 2 mit wenig Verlust (Low Drop Policy)
Abgestimmt auf die Policies der Endanwender

Dateitransfer

AF11

BW Queue und DSCP WRED

Klasse 1 mit wenig Verlust (Low Drop Policy)
Abgestimmt auf die Policies der Endanwender

Hier werden fünf Dienste unterschieden und es ist klar, dass das empfindliche Ohr mit "Audio" die höchste Bedeutung hat. Wenn wir mit Lync das Telefon ersetzen wollen, dann muss zumindest die gleiche oder bessere Qualität geboten werden. Bislang waren TK-Übertragungswege eigene (teure) Leitungen und durch VoIP müssen die Pakete priorisiert werden.

Klassifizierung

Nachdem wir nun so viel über die verschiedenen QoS und 802.1p Klassen gelesen haben und die Router gerne anhand dieser Kennzeichnungen die Pakete weiterleiten würden, muss natürlich eine entsprechende Kennzeichnung erfolgen. Auf dem Weg von Client über ClientSwitch, Trunk zum Coreswitch und Router werden mehrere Stationen durchlaufen. Je früher ein Paket klassifiziert wird, desto eher können Vermittlungssysteme dies nutzen. Zwei Stellen sind hierbei üblich:

Stelle Vorteil Nachteil

Client

  • Steuerung durch den Client Administrator
  • Je nach OS ist QoS-Tagging bis auf den Prozess möglich
  • Unabhängig von Ports
  • Windows: Einsatz von Gruppenrichtlinien.

  • Der Netzwerkbetreiber "vertraut" darauf, dass der Client die richtige Kennzeichnung nutzt.
  • Client muss QoS Tagging unterstützen
  • Anpassungen bei umbenennung von Prozessen erforderlich.

Switch

  • Unabhängig vom Client
  • Netzwerkverwaltung ist bestimmend
  • Meist nur PCB-Level

  • SwitchPort meist einziges Kriterium
  • Kann PCB-Klassifizierungen "überschreiben"
  • Eingie könnten auch DCSP-Kennzeichnung überschreiben.

Router

  • Unabhängig vom Client
  • Netzwerkverwaltung ist bestimmend

  • IP-Adressen und Ports sind einziges Kriterium
  • Abstimmung der Portranges mit den Anwendungsentwicklern.
  • Nutzt eine andere Anwendung auf dem Client zufällig die priorisierte Portbereiche, dann profitiert auch Sie davon.

Im Bezug auf Lync kann der Client z.B. über Gruppenrichtlinien entsprechende angewiesen werden, Pakete von "communicator.exe" (OCS2007/Lync2010) bzw. Lync.exe (Lync 2013) entsprechende Tags zu verpassen. Wenn der Netzwerkadministrator auf Portebene selbst taggen möchte, dann kann er dies immer noch tun. Allerdings sollte dann der Lync Administrator den Lync Client die zu verwendende Portbereiche vorgeben.

Hinweis: Einige "QoS"-Features von günstigen Switches haben nichts mit echtem QoS zu tun sondern priorisieren pauschal einen Ethernet Port.

In some ports that need to have a high priority to manage the data transfer, QoS should be change. Set the port’s QoS to high to determine the port will always transfer their data first.

Quelle: DLink DGS-1224T-Handbuch

Natürlich kann jeder gute Switch oder Router immer wieder die vorgefundene Einstufung eines eingehenden Paketes durch eigene Werte ersetzen. So sich ein Netzbetreiber zumindest partiell gegen Missbrauch schützen. Dies ersetzt aber nicht ein effektives Monitoring und Reporting der Bandbreitenverwendung.

Scheduler

Jede Netzwerkkomponente, die Daten von einer Schnittstelle auf eine andere Schnittstelle überträgt, muss daher entscheiden, welches Paket als nächstes auf die Reise geschickt wird In der Regel bauen die Geräte dazu mehrere Queues auf z.B. anhand der Priorität) und sortieren Pakete dort ein. Es ist die Aufgabe des Schedulers, das nächste Paket zu bestimmen. Es gibt statische Ansätze, bei der immer die Queue in der höher der Priorität zuerst abgearbeitet wird was dazu führen kann, dass niedrig priorisierte Pakete gar nicht mehr übertragen werden. Andere gewichten die Priorität, so dass niedrigere Queues auch, wenngleich seltener, an die Reihe kommen. Der Scheduler sollte nun aber auch die Gesamtbandbreiten die pro Nutzlast zugewiesen wurden und die erlaubten Loss-Raten berücksichtigen. Sie können sich vorstellen, dass dies kompliziert werden kann und neben der eigentlichen Konfiguration auch das Monitoring und die Auswertung ein wichtiger Faktor sind, um so ein System zu tunen

CAC mit VoIP

Ein wesentlicher Aspekt aller Bandbreitensteuerung ist die Begrenzung auf Seiten des Clients. Bei einer klassischen Telefonanlage gibt es nur eine konkrete Anzahl an Leitungen. Sind alle Leitungen belegt, dann erhält der nächste Anrufer ein besetzt. Bei einem paketvermittelten Netz gibt es keine „Leitungen“ die belegt sind aber eben überlastete Leitungen. Daher muss es ein Ziel sein die Nutzung von vor der eigentlichen Verbindung zu steuern. Dies kann z.B. Lync über die Funktion „Call Admission Control“. Der Administrator bestimmt, wie viel Bandbreite pro Verbindung und gesamt auf einem Netzwerklink durch Lync verwendet werden darf. Damit wird die maximal durch Lync genutzte Bandbreite seitens der Applikation vorgegeben. Wenn sich alle Clients daran halten, dann kann QoS auf dem Netzwerk bezüglich VoIP aber nicht verzichtet werden. Denn ohne entsprechende Kennzeichnung könnten andere Datenverkehre selbst die nun nach oben begrenzte durch Lync verwendete Bandbreite einschränken.

Der Einsatz von CAC schützt die Anwender eher vor der Problematik, dass die Qualität nicht gehalten werden kann. Ohne CAC können selbst mit QoS die Anwender weiter neue Verbindungen aufbauen. Zwar sichert QoS den Paketen die gewünschte Priorität zu aber eben nur bis zu den Grenzen der erlaubten Bandbreite. Lync wird dann anfangen den Codec zu wechseln (z.B. von Wideband auf Narrowband) oder die Videoauflösung reduzieren. Ganz so wie Lync es in einem nicht verwalteten Netzwerk (z.B. Internet) macht. Dies wird aber sehr bald Auswirkungen auf die Zufriedenheit der Anwender haben. Die Qualität stimmt einfach nicht mehr.

  • QoS priorisiert Pakete bzw. reserviert Bandbreite
  • CAC beschränkt die Bandbreite auf Software, d.h. verhindert Überschreitung der maximalen Bandbreite

Insofern sollte bei allem QoS auf dem Netzwerk auch die Anwendung limitiert werden, damit eine aufgebaute Verbindung auch eine „gute Verbindung“ bleibt und nicht die nächste zusätzliche Verbindung bei den bestehenden Verbindungen zum Codec-Wechsel führt, der sich sogar aufschwingen kann. Wenn viele Verbindungen die Bandbreite reduzieren, dann ist plötzlich wieder mehr Bandbreite verfügbar und der Codec wird wieder gewechselt. Solch eine Welle sollten Sie vermeiden.

Weitere Links