Was ist Traffic-Shaping?

 

Einführung in Traffic-Shaping / QoS mit pfSense

 
Quality-of-service (QoS) ist laut Wikipedia "eine Menge von Qualitätsanforderungen an das gemeinsame Verhalten bzw. Zusammenspiel von mehreren Objekten", die den Nutzern möglichst hochwertige Kommunikationsdienste bereitstellen soll.
Maßgebliche Größen sind die Bandbreite, Latenzen, Paketverluste, Verfügbarkeit etc.
 
Die QoS ist also ein Konzept mit dem Ziel, Netzwerkressourcen zu Optimieren, um die Priorisierung von Daten umzusetzen.
Nur so lassen sich Dienste wie VoIP, Videokonferenzen etc. erfolgreich implementieren.
Die unten stehende Tabelle zeigt die Anforderungen einzelner Dienste an:
 
 
Anwendung Datenverlust Bandbreite Zeitempfindlich
FTP nein flexibel nein
Email nein  flexibel nein
Webseiten nein   flexibel  (einige kbit/s) nein

Videokonferenzen

VoIP

tolerant ggü. Datenverlust

Audio : 1 kbit/s- 1 Mbit/s

Video:  10 kbit/s - 5 Mbit/s

 ja, einige Hundert Millisekunden 
Multimedia-streaming / -hosting tolerant ggü. Datenverlust

Audio : 1 kbit/s - 1 Mbit/s

Video: 10 kbit/s - 5 Mbit/s

 ja, einige Sekunden
Online-Spiele tolerant ggü. Datenverlust  10 kbit/s max.  ja, je nach Art bis zu 200 ms
Instant-Messaging nein flexibel  je nach Dienst
 
Es gibt also mehr als genügend Gründe, QoS im eigenen Netzwerk anzuwenden bzw. einzuführen:
  • Benötigte Qualität für geschäftskritische Anwendungen (VoIP, Video, Fernwartung etc.)
  • Politischer Wille, bestimmte Daten zu bevorzugt zu behandeln
  • Politischer Wille, bestimmte Nutzer zu privilegieren
  • Politischer Wille, bestimmte Anwendungen privilegiert auszuführen
 

Worauf beruhen die Queuing-Mechanismen in pfSense 2.0?

Auf die Frameworks pf / AltQ und Dummynet
AltQ wird verwendet, um ein Queuing-System sowie andere Mechanismen des QoS bereit zu stellen, das die Zuweisung der Ressourcen und die Steuerung des QoS übernimmt. Die verwendeten Scheduler sind CBQ, PRIQ und HFSC.
 
Dummynet verwendet seinerseits ein Queuing-System, das auf WFQ2+ beruht.
 
Das Hauptprinzip des QoS unter pf / AltQ ist das Queuing (Einreihen bzw. Priorisierung von Paketen). Die Queues sind ein Puffer für die Datenpakete, in dem sie verweilen bis sie durch eine spezifische Regel weitergeleitet oder verworfen werden. 
 
Die Queues sind Schnittstellen-spezifisch; auch die Bandbreite wird je nach Schnittstelle verwaltet und im Anschluß über die Queues der jeweiligen Schnittstellen verteilt. 
 
Die Queues sind definiert durch:
  • die Bandbreite oder
  • Anteile der verfügbaren Bandbreite oder
  • gegebenenfalls durch hierarchische Priorität im Kontext der Definition der unterschiedlichen Queues nach Priorität.
 
Sind die Queues definiert, erfolgt das Traffic-shaping durch die Firewalling-Regeln, die die Datenpakete dann entsprechend den jeweiligen Queues zuweisen.
 
Das Traffic-Shaping in pfSense erfolgt nunmehr in den OSI-Schichten 3 und 4: anhand der IP-Header oder der TCP/UDP-Ports. Seit kurzem kann man die Filterung nach der 7. Schicht (Anwendungsschicht) des OSI-Modells filtern. Dies ist dank der Implementierung von ipfw-classifyd möglich. Um einen Überblick über die Möglichkeiten von pfSense mit der 7. Schicht des OSI-Modells zu erhalten, empfehle ich Ihnen die Lektüre von André Ribeiro udn Helder Pereira: L7 Classification and Policing in the pfSense Platform.
 

Was sind die unterschiedlichen Funktionsweisen der in pfSense beinhalteten Queue-Verwaltungen?

Es gibt vier Hauptmechanismen zur Steuerung von Queues in pf / AltQ, die auch in pfSense verfügbar sind.
 
PRIQ (Priority based queue)
Hier erfolgt die Zuweisung der Datenpriorität in Abhängigkeit der gesamten verfügbaren Bandbreite. Je nachdem, welches Prioritätsbit gesetzt ist (von 0 bis 15, der höchste Wert erhält die höchste Priorität), erhalten die Datenpakete die entsprechende Vorzugsbehandlung.
 
CBQ (Class based queue)
Hier wird die Bandbreite vorab fest zugewiesen: entweder in Form eines Prozentsatzes oder in Kb/s, Mb/s, Gb/s. Eine CBQ kann in Unter-Queues unterteilt werden, die wiederum in 8 Queue-Ebenen (von 0 bis 7) unterteilt werden können. Dabei bleiben die Datenpakete solange in der Queue, bis die entsprechende Bandbreite wieder verfügbar ist.
 
FAIRQ (Fair queue)
Auf diese Queue wird mangels Informationen hier nicht eingegangen.
 
HSFC (Hierarchichal Fair Service Curve)
Dieser Algorithmus erlaubt eine "gerechtere" Verteilung der Ressourcen unter den Queues. Dieser erlaubt, für Queues garantierte Minimum- oder Maximumwerte zu spezifizieren. Auch ist es möglich, innerhalb dieser Queues Variationen zu haben. Die Komplexität von HFSC erschwert den sicheren Umgang damit. 
 
Nehmen Sie sich also die Zeit, Ihre Bedürfnisse zu verstehen, oder benutzen Sie einen einfacheren Queuing-Mechanismus als HSFC. Solide Ergebnisse werden Sie nur mit der Lösung erzielen, die Sie sicher beherrschen!
 

Wie finde ich die gesamte Bandbreite heraus?

Sie können die Geschwindigkeit Ihres Links mit Webseiten wie Speedtest herausfinden.
Es ist ratsam, als Wert nur 97% der gesamten Bandbreite zu verwenden, damit sichergestellt ist, dass ihre Verbindung niemals zu 100% ausgelastet ist. So ist sichergestellt, dass QoS funktioniert und ihre Bandbreite optimal ausgenutzt ist!
 
Falls Ihnen dieser Artikel gefallen hat uns Sie mehr über das Thema erfahren möchten, können Sie [LINK zu FRZ TUT] lesen, der auf diesen Artikel logisch aufbaut.
 
Mit den im Shop angebotenen Lösungen können Sie gleich mit dem Aufbau Ihrer Open-Source-Firewall beginnen!