QoS. Patrick Röder (Mai 2003)

Ähnliche Dokumente
Traffic Control & QoS mit Linux 2.4. Heiko Reese

Trafficshaping Bandbreitenmanagement und Latenzzeiten

Konfigurationsanleitung Quality of Service (QoS) Funkwerk. Copyright Stefan Dahler Oktober 2008 Version 1.1.

Anbindung des eibport an das Internet

mit ssh auf Router connecten

Bandbreitenmanagement mit Freier Software

Registrierung eines VPN-Zuganges ins Hamnet

Collax Bandbreitenmanagement

Konfigurationsanleitung Access Control Lists (ACL) Funkwerk. Copyright Stefan Dahler Oktober 2008 Version 1.0.

Firewall Implementierung unter Mac OS X

Firewalling. Michael Mayer IAV0608 Seite 1 von 6

Quality of Service. Traffic Shaping. Dienstgüte mit Linux analysieren und verbessern. Traffi c Open Students Lounge

Quality of Service. Howto QOS unter Linux mit Iptables-Netfilter

Grundlagen der Rechnernetze. Internetworking

Erstellen von x-y-diagrammen in OpenOffice.calc

Abwesenheitsnotiz im Exchange Server 2010

Zwischenablage (Bilder, Texte,...)

Diese Prozesse und noch viele andere Tricks werden in der Digitalfotografie mit Hilfe von Bildbearbeitungsprogrammen, wie z. B. Gimp, bewältigt.

Software- und Druckerzuweisung Selbstlernmaterialien

SMS-Dienst SMS-Dienst procar informatik AG Stand: FS 04/2011 Eschenweg Weiterstadt 1

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version Optional einen DHCP Server.

NoClick. Eine kurze Anleitung. Kommhelp e.v Vereinsregister. Spendenkonto kommhelp e. V. Konto Horstweg 25

Lehrer: Einschreibemethoden

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel

Multimedia und Datenkommunikation

Enigmail Konfiguration

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

Wir machen neue Politik für Baden-Württemberg

1. EINLEITUNG 2. GLOBALE GRUPPEN Globale Gruppen anlegen

Internet Security 2009W Protokoll Firewall

Zehn SSH Tricks. Julius Plen z

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

Übung - Konfigurieren einer Windows 7-Firewall

Primzahlen und RSA-Verschlüsselung

Was meinen die Leute eigentlich mit: Grexit?

Grundlagen Firewall und NAT

-Virtuelle Jagdfliegerschule- Teamspeak Seite 1 von 6

WLAN Konfiguration. Michael Bukreus Seite 1

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Der zweite all unsere Datenbanken. Dieser Befehl ist etwas komplexer, aber bis auf das Passwort (kursiv fett) so zu übernehmen:

Anleitung über den Umgang mit Schildern

Netzwerke 3 Praktikum

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Auswertung JAM! Fragebogen: Deine Meinung ist uns wichtig!

MARCANT - File Delivery System

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

==============================!" ==

BANKETTprofi Telefonschnittstelle

Mit einem Mausklick sind s aus ACT! heraus in Outlook geschrieben, die dann wiederum auf Wunsch in ACT! dokumentiert werden.

Erfahrungen mit Hartz IV- Empfängern

Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten

A Lösungen zu Einführungsaufgaben zu QueueTraffic

SUDOKU - Strategien zur Lösung

AutoCAD Dienstprogramm zur Lizenzübertragung

GEVITAS Farben-Reaktionstest

Toolbeschreibung: EVERNOTE

Voice over IP (VoIP) PING e.v. Weiterbildung Blitzvortrag. Dennis Heitmann

Internationales Altkatholisches Laienforum

HBF IT-Systeme. BBU-NPA Übung 4 Stand:

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Software zur Anbindung Ihrer Maschinen über Wireless- (GPRS/EDGE) und Breitbandanbindungen (DSL, LAN)

1 Mit einem Convision Videoserver über DSL oder ISDN Router ins Internet

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

C.M.I. Control and Monitoring Interface. Zusatzanleitung: Datentransfer mit CAN over Ethernet (COE) Version 1.08

8. Bintec Router Redundancy Protocol (BRRP) 8.1 Einleitung

Netzwerkeinstellungen unter Mac OS X

Handbuch ECDL 2003 Professional Modul 3: Kommunikation Kalender freigeben und andere Kalender aufrufen

SCHRITT 1: Öffnen des Bildes und Auswahl der Option»Drucken«im Menü»Datei«...2. SCHRITT 2: Angeben des Papierformat im Dialog»Drucklayout«...

SEK II. Auf den Punkt gebracht!

Viele Bilder auf der FA-Homepage

Switching. Übung 7 Spanning Tree. 7.1 Szenario

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version Deutsch

Stepperfocuser 2.0 mit Bootloader

How-To-Do. Fernwartung einer VIPA Steuerung via Ethernet

1 topologisches Sortieren

Stand: Adressnummern ändern Modulbeschreibung

Security. Stefan Dahler. 4. Internet Verbindung. 4.1 Einleitung

Anleitung zur Einrichtung Ihres PPPoE-Zugangs mit einer AVM FritzBox 7270 Inhalt

Lichtbrechung an Linsen

Clustering (hierarchische Algorithmen)

Urlaubsregel in David

Webstream.eu Live Streaming mit ManyCam

Kurzanleitung für Verkäufer

bagfa ist die Abkürzung für unseren langen Namen: Bundes-Arbeits-Gemeinschaft der Freiwilligen-Agenturen.

Informations- und Kommunikationsinstitut der Landeshauptstadt Saarbrücken. Upload- / Download-Arbeitsbereich

STRATO Mail Einrichtung Android 4.4

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

Dokumentation IBIS Monitor

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

V o r w o r t. A n l e i t u n g

ASA Schnittstelle zu Endian Firewall Hotspot aktivieren. Konfiguration ASA jhotel

Installationsanleitung Maschinenkonfiguration und PPs

TK-Schnittstelleneinrichtung. Redundante Softswitches

Technical Note ewon über DSL & VPN mit einander verbinden

Lernerfolge sichern - Ein wichtiger Beitrag zu mehr Motivation

teamsync Kurzanleitung

IPv6. Übersicht. Präsentation von Mark Eichmann Klasse WI04f 22. November 2005

Transkript:

QoS Patrick Röder (Mai 2003)

Übersicht Was ist QoS? Typische Anwendungen für QoS? Downloads beschleunigen? Ping/Reaktionzeit verbessern? Konfiguration mit Linux 2.4 Beispiele

Was ist QoS? Deutsch: Dienstegüte Verschiedene Prioritäten für verschiedene Dienste Bandbreite begrenzen/einteilen Latenz/Ping verbessern Durchsatz verbessern

Typische Anwendungen Leitung zwischen mehreren Nutzern aufteilen Downloaden und Online Zocken Downloads beschleunigen Latenz verbessern: SSH, Chat, VoIP, Videokonferenzing

Stau verlagern Alle Devices in Netz besitzen Buffer bzw. Queues DSL-Modem oder Border-Gateway haben auch Queues wird mehr Traffic verschickt als die Leitung transportieren kann, so staut sich der Traffic in der Queue des DSL-Modems/Gateway Wichtig: Durch den Router den Traffic begrenzen und im Router zwischenspeichern Dadurch kann man überhaupt erst priorisieren

Stau verlagern Stau im Router Queue ist leer PC 1 PC 2 Router DSL- Modem

ACKs priorisieren Alle per TCP eingehenden Daten müssen mit ACKs quittiert werden Windowsize gibt an wieviele Bytes unquittiert eingehen dürfen Wird bis dann nicht quittiert, wartet der Sender ACKs sind in der Regel kleine Pakete, meist 64 Bytes Upstream blockiert -> Download ausgebremst Große Pakete (1492 Bytes) belegen DSL-Upstream für ganze 91 ms

ACKs priorisieren Download alleine mit Mail senden Download Download KB/s KB/s Mail senden Zeit Zeit

Latenz / Ping verbessern Selbst mit Priorisierung und Bandbreitenkontrolle hat man noch schlechten Ping Dies tritt auch schon bei sehr geringer Auslastung der Leitung auf Ist die Queue im Router leer, dann werden auch Bulk-Traffic Pakete mit niedrigster Priorität versendet Kurz später kann aber ein hochpriorisiertes Paket eintreffen Dieses muss warten bis die Leitung wieder frei wird Grosse Pakete belegen den Upstream relativ lange Kleinere Pakete schaffen Abhilfe, erzeugen aber mehr Overhead

Blockierzeiten (128 Kbit/s) Grösse Blockierzeit Overhead 1492 91 ms 3,4 % 800 48 ms 6,5 % 576 35 ms 9 % 256 16 ms 20,3 %

Typisches Szenario Zwei oder mehr Nutzer teilen Leitung Nutzer 1: Online-Gaming Nutzer 2: Voice Chat Nutzer 3: Surfen Nutzer 4: P2P - Filesharing Nutzer 1 bis 3 kein Problem für gutes Prio-Routing P2P macht Leitung teilweise übel dicht P2P verträgt sich schlecht mit Online-Gaming

Zwei Lösungen 1. MTU Reduzieren Overhead nimmt stark zu Ping noch nicht sehr gut für online Gaming 2. Bulktraffic abwürgen Optimaler Ping gute kurzeitige Lösung Keine Downloads mehr

QoS mit Linux 2.4 Voraussetzungen: QoS im Kernel aktivieren, dann diesen neu kompilieren Userlandtool: tc Sonst ist alles an Board Eigene Scripte zum Konfigurieren schreiben

Weg eines Paketes Höhere Layer (TCP, UDP,...) Input de-multiplexing Forwarding Output queuing Hier setzen wir an Wir können nur kontrollieren, was wir selber schicken Was wir geschickt bekommen, ist nur schwer zu kontrollieren

Queuing Disciplines Eine qdisc sendet in letzter Instanz die Pakete für ein Netzinterface Es gibt simple classless qdiscs und verschachtelbare class-based qdiscs letzere können mit der Firewall (ipchains, iptables) kombiniert werden

Classless qdisc: pfifo_fast Jedem Netzinterface wird standartmässig die qdisc pfifo_fast zugewiesen eine einfache FIFO, die aus mehrern priorisierten Bändern ( bands ) besteht Pakete werden nach einer einfachen priority map (TOS-Flag wird überprüft) einsortiert solange noch Pakete in Band 0 vorhanden sind, werden Band 1... nicht abgearbeitet die Anzahl der Bänder und die priority map können mit tc verändert werden, die Länge der Bänder muss beim Anlegen des Netzinterfaces angegeben werden (also mit ifconfig oder ip)

Classless qdisc: sfq Stochastic Fair Queueing Jede Session (TCP-Session oder UDP-Stream) bekommt eine eigene FIFO. Alle FIFOs werden per Round Robin abgearbeitet Realisierung: Eine Hashfunktion verteilt alle Sessions auf wenige FIFOs. Um eine faire Verteilung der Sessions auf die FIFOs zu gewährleisten, wird nach einer kurzen Zeit (default: 10sec) die Hashfunktion ausgewechselt.

Classless qdisc: Token Bucket Filter Packete werden nur bis zu einem bestimmten Datendurchsatz weitergeleitet, alles darüber wird verworfen Kleine Bursts sind erlaubt tbf ist sehr präzise sowie netzwerk- und prozessorfreundlich. Es stellt die beste Möglichkeit dar, die Geschwindigkeit eines Netzinterfaces zu verringern. Algorithmus: Ein Puffer (bucket) wird mit einer bestimmten Rate (token rate) mit sog. tokens gefüllt. Jedes Token schnappt sich ein Paket und wird aus dem bucket entfernt. Sehr gut geeignet in Kombination mit einem DSL-Modem, um bei vielen Uploads die Latenz niedrig zu halten...

Classful Queueing Disciplines Manche qdiscs können andere qdiscs enthalten, diese heissen dann plötzlich classes, inner qdisc oder sub-qdisc. Sub-qdiscs müssen sich die Bandbreite ihrer äusseren qdisc teilen Traffic wird durch sog. filter auf die classes verteilt. Classful qdiscs werden in einem Baum angeordnet Jede qdisc bekommt eine eindeutige Nummer, bestehend aus einer Major-Number und einer Minor-Number; z.b. 1:10 Jedes Interface hat mindestens eine root-qdisc mit der ID 1:

Klassenhierarchie 1: 1:1 10: 11:1 12: 10:1 10:2 12:1 12:2 oben: Wurzel Eigenschaften werden vererbt (Bandbreite etc.) Verteilung in Klassen über Filter

PRIO qdisc Ähnlich pfifo_fast, nur das die einzelnen Bänder wieder qdiscs sind Aufteilung wieder über TOS-Field Macht zusätzlich Accounting, kann also leicht für Messungen/Benchmarks verwendet werden

CBQ qdisc almost famous Kompliziert Ungenau Unschön Basiert auf Idletime-Berechnungen, setzt genau Kenntnis des Interfaces voraus (Probleme z.b. bei PCMCIA-Karten) Alternative: HTB

HTB qdisc Hierarchical Token Bucket ( Classful Token Bucket Filter ) Benötigt nur wenige Parameter rate: die gewünschte Übertragungsrate ceil: die maximale Übertragungsrate burst: wieviel darf kurzzeitig überzogen werden Die Verhältnisse der inner qdiscs werden bei Überlast weniger inner qdiscs berücksichtigt.

Verteilung anhand von rate 100 kbit/s 50 kbit/s 10 kbit/s 40 kbit/s 100 kbit/s 50 kbit/s 10 kbit/s 40 kbit/s bekommt 20 kbit/s bekommt 80 kbit/s

Filter: Übersicht Filter werden vor dem Einfügen der Paktete in die Queue abgearbeitet, bis eine Regel zutrifft oder nicht (dann geht's in die Defaultqueue) Filter können auf fast alles reagieren: Alle Felder im Header Auf markierte Pakete: ipchains und iptables können Pakete markieren, diese Markierung kann dann später zum Einsortieren verwendet werden Eigene Filter können leicht geschrieben werden

Beispielscript: Queues erzeugen ## Root /sbin/tc qdisc add dev ppp0 root handle 1:0 htb default 13 ## Hauptklasse /sbin/tc class add dev ppp0 parent 1:0 classid 1:1 htb rate 125kbit ceil 125kbit ## Klasse fuer ACK /sbin/tc class add dev ppp0 parent 1:1 classid 1:11 htb rate 15kbit ceil 20kbit prio 0 ## Klasse fuer UT/SSH /sbin/tc class add dev ppp0 parent 1:1 classid 1:12 htb rate 90kbit ceil 125kbit prio 1 ## Klasse fuer normalen Traffic /sbin/tc class add dev ppp0 parent 1:1 classid 1:13 htb rate 20kbit ceil 125kbit prio 2 ## Klasse fuer Bulk (emule,ftp-data,mail) /sbin/tc class add dev ppp0 parent 1:1 classid 1:14 htb rate 5kbit ceil 120kbit prio 3

Beispielscript: Filter anlegen ## ACKS iptables -A POSTROUTING -t mangle -o ppp0 -p tcp -m length --length :64 -j MARK --set-mark 11 ## SSH iptables -A POSTROUTING -t mangle -o ppp0 -p tcp --dport 22 -j MARK --set-mark 12 ## emule iptables -A POSTROUTING -t mangle -o ppp0 -p tcp --dport 4662 -j MARK --set-mark 14 ## Mail iptables -A POSTROUTING -t mangle -o ppp0 -p tcp --dport 25 -j MARK --set-mark 13 ## FTP iptables -A POSTROUTING -t mangle -o ppp0 -p tcp --dport 20 -j MARK --set-mark 14 ## Filter zum Einordnen in die Streams tc filter add dev ppp0 parent 1:0 prio 0 protocol ip handle 11 fw flowid 1:11 tc filter add dev ppp0 parent 1:0 prio 0 protocol ip handle 12 fw flowid 1:12 tc filter add dev ppp0 parent 1:0 prio 0 protocol ip handle 13 fw flowid 1:13 tc filter add dev ppp0 parent 1:0 prio 0 protocol ip handle 14 fw flowid 1:14

Feintuning QoS Regeln optimal an Situation anpassen Beispiel von vorhin: Beim Online Spielen emule abwürgen Für jede Situation eigenes Routing-Konfig-Script schreiben Periodisch aufgerufenes Shellscript prüft die Leitung und ruft das spezialisierte Script auf

Beispiel: Umschaltscript UTSCRIPT=/home/proeder/shapeut NORMALSCRIPT=/home/proeder/shapenormal # UDP Pakete zaehlen cnt=$(tcpdump -i ppp0 -c 50 2> /dev/null grep udp -c) if [ $cnt -gt 10 ] then $UTSCRIPT else $NORMALSCRIPT fi

Trafficanalyse

Traffic-Analyse-Script