|
|
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
Zeile 1: |
Zeile 1: |
| === Quality of Service (QoS) ===
| |
| IPv6 unterstützt QoS durch die Anwendung von Flow Labels und Traffic Classes.
| |
|
| |
| Zusätzliche Infos:
| |
|
| |
| * <nowiki>RFC 3697</nowiki> / IPv6 Flow Label Specification
| |
|
| |
| === General ===
| |
| Vernünftig funktionierendes QoS ist nur an der ausgehenden Schnittstelle eines Routers oder Host möglich, wo der Flaschenhals anfängt. Alles andere bereitet nur Probleme und funktioniert wahrscheinlich nicht so, wie erwartet.
| |
| {| class="wikitable"
| |
| |
| |
| |}
| |
|
| |
| === Linux QoS mit ”tc” ===
| |
| Linux benutzt ”tc” vom Paket ”iproute2”, um das Bandbreitenmanagement zu konfigurieren, allgemein beschrieben in Linux Advanced Routing & Traffic Control HOWTO.
| |
|
| |
| ==== Beispiel für eine Warteschlange mit konstanter Bitrate ====
| |
| Mit dem ”cbq” Planer können Röhren mit konstanter Bitrate definiert werden.
| |
|
| |
| ===== Root qdisc Definition =====
| |
| Definition einer root qdisc mit einer Bandbreite von 1000 MBit/s an eth1
| |
| {| class="wikitable"
| |
| |
| |
| |}
| |
|
| |
| ===== QoS class Definition =====
| |
| Definition einer Klasse 1:1 mit 1 MBit/s
| |
| {| class="wikitable"
| |
| |
| |
| |}
| |
| Definition einer Klasse 1:2 mit 50 MBit/s
| |
| {| class="wikitable"
| |
| |
| |
| |}
| |
| Definition einer Klasse 1:3 mit 10 MBit/s
| |
| {| class="wikitable"
| |
| |
| |
| |}
| |
| Definition einer Klasse 1:4 mit 200 kBit/s
| |
| {| class="wikitable"
| |
| |
| |
| |}
| |
|
| |
| ===== QoS filter Definition =====
| |
| Definition eines Filters für IPv4 (''protocol ip''), TCP (''match ip protocol 6 0xff'') Zielport 5001 (''match ip dport 5001 0xffff'') unter Benutzung der Klasse 1:2 von oben
| |
| {| class="wikitable"
| |
| |
| |
| |}
| |
| Definition eines Filters für IPv6 (''protocol ip''), TCP (''match ip6 protocol 6 0xff'') Zielport 5001 unter der Benutzung der Klasse 1:2 von oben
| |
| {| class="wikitable"
| |
| |
| |
| |}
| |
| Definition eines Filters für IPv6 für Pakete mit Flowlabel 12345 (''match ip6 flowlabel 0x12345 0x3ffff'') unter der Benutzung der Klasse 1:3 von oben
| |
| {| class="wikitable"
| |
| |
| |
| |}
| |
| Definition eines Filters für IPv6 für Pakete mit der Linux iptables Markierung 32 (''handle 32 fw'') unter der Benutzung der Klasse 1:4 von oben
| |
| {| class="wikitable"
| |
| |
| |
| |}
| |
| Die letzte Filterdefinition benötigt auch einen Eintrag in ip6tables um das Paket zu markieren
| |
| {| class="wikitable"
| |
| |
| |
| |}
| |
|
| |
| ===== Testen der Filterdefinition mit iperf =====
| |
| Starten auf Serverseite in separaten Konsolen:
| |
| {| class="wikitable"
| |
| |
| |
| |}
| |
| Starten auf Clientseite und Vergleichen der Ergebnisse:
| |
| {| class="wikitable"
| |
| |
| |
| |}
| |
| Das Ergebnis der Transferraten sollten der Definitionen von oben entsprechen, das Ergebnis auf Port 5002 sollte ziemlich identisch unabhängig von der benutzten IP-Version sein.
| |
|
| |
|
| |
| [[Kategorie:IPv6]] | | [[Kategorie:IPv6]] |