Deprecated: Function eregi() is deprecated in /var/www/web100515/html/mainfile.php on line 88

Deprecated: Function set_magic_quotes_runtime() is deprecated in /var/www/web100515/html/includes/mx_system.php on line 31

Willkommen bei eD2K-Serverboard
Suchen
Artikel
  · Registrieren/Einloggen Portal  ·  Artikel  ·  Artikel schreiben  ·  Lugdunix-/Eselforum  ·  Forum II  ·  Ausloggen  

  Hauptmenü
General
 Home
 Themen
 Artikel
 Downloads
 Links
 Bildergallerie
 Impressum

Community
 Ihr Account
 Memberliste
 Artikel schreiben
 Kalender
 Statistiken

Stuff
FAQ

Suchen

  Zusatz Menü

  
Heute haben keine Benutzer Geburtstag!

  Herzlichen Glückwunsch zum Geburtstag

Herzlichen Glückwunsch zum Geburtstag
Herzlichen Glückwunsch zum Geburtstag ]


  
1: +++ www.eMuleSite.de +++
   [Visits: 2290 x]
2: Windowsforum
   [Visits: 2048 x]
3: Turboforum
   [Visits: 2035 x]
5: Linux-Club
   [Visits: 1804 x]
6: Das Linuxbuch
   [Visits: 1779 x]
7: adslforum bei G. Schwarz
   [Visits: 1755 x]
8: Das eMule - Handbuch
   [Visits: 1694 x]
9: Atelier Web Remote Commander
   [Visits: 1617 x]

  Terminkalender
September 2019
  1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
Keine Termine fuer heute.

Termin vorschlagen Termin vorschlagen

  Menü II

Flatbooster


Serverboard Forum Sie sind nicht eingeloggt


Nach unten
« vorheriges  nächstes »
Aufsteigend sortiern Absteigend sortieren      print
Autor: Betreff: QoS-Skript, Erklärung
Super Moderator
Esel

Diesel
Beiträge: 49
Registriert: 30/12/2002
Status: Offline
red_folder.gif erstellt am: 21/1/2003 um 13:33  
Weil wiederholt nachgefragt wurde, was im QoS-Skript warum wie geregelt wurde, hier ein gut kommentiertes Skript. Es kann direkt übernommen werden und sollte sich selbst erklären.

Datei /root/qos-on:

#!/bin/sh
#
# Shell-Skript fuer Quality of Service mit HTB
#

EXTIF=ppp0
INTIF=eth1

############
# Outgoing
############
## Rootklassen-Definition
/sbin/tc qdisc add dev $EXTIF root handle 1:0 htb default 10 # Default ist die schnellste ID > ID 10

# Der Grund, weshalb der gesamte Datenstrom auf 120kbit/s begrenzt wird, obwohl 128kbit/s zur Verfuegung stehen ist, dass vermieden werden soll,
# dass die Modemwarteschlange anwaechst. Dies wuerde eine effektive Regelung unmoeglich machen, weil ein /UEBERHOLEN/ von Paketen dann unmoeglich waere.
# Die Warteschlange verlagert sich also vom Modem, bzw. dem Router in der Telekom-Vermittlungsstelle, in die Lugdunix selbst. Hier ist ein /UEBERHOLEN/ moeglich
# Bei abweichender Upstream-Bandbreite muessen die zugewiesenen Bandbreiten angepasst, oder dieses Skript abgeschaltet werden!
# Die nachfolgenden ID's erhalten garantiert (!) die ihnen zugewiesenen Bitraten. Ist Bandbreite uebrig, wird sie der ID zugeteilt,
# die zusaetzlich Bandbreite anfordert. Das /LIMIT/ ist allerdings FEST und kann NICHT ueberschritten werden.
# Insgsamt werden 80 + 20 + 5kbit/s = 105kbit/s zugewiesen. 15kbit/s bleiben zur freien Variation der Verwendung für alle IDs.


## Hauptklasse (GILT FUER ALLE SENDE-DATEN)
/sbin/tc class add dev $EXTIF parent 1:0 classid 1:1 htb rate 110kbit ceil 120kbit # Gesamte Klasse! Bitrate: 120kbit/s, Limit 120kbit/s (T-DSL > 128kbit/s)

# Klasse für alle Datenpakete aus dem LAN > ID 10, Bitrate: 80kbit/s, Limit 120kbit/s, maximale Prioritaet
/sbin/tc class add dev $EXTIF parent 1:1 classid 1:10 htb rate 80kbit ceil 120kbit prio 0

# Klasse fuer Server-TCP-Pakete und UDP-Verbindungsaufbau-Pakete > ID 11, Bitrate: 20kbit/s, Limit 110kbit/s, naechstniedrigere Prioritaet
/sbin/tc class add dev $EXTIF parent 1:1 classid 1:11 htb rate 20kbit ceil 110kbit prio 1

# Klasse fuer die restlichen Server-UDP-Pakete (Antworten auf Quellenrequests) > ID 12, Bitrate: 5kbit/s, Limit 50kbit/s, niedrigste Prioritaet
/sbin/tc class add dev $EXTIF parent 1:1 classid 1:12 htb rate 5kbit ceil 50kbit prio 2

# Alles was vom LAN kommt > als ID 10 markieren
iptables -A PREROUTING -i eth1 -t mangle -j MARK --set-mark 10
# Proxy-Pakete auf Zielport TCP:80 in Klasse 10 einordnen
iptables -A OUTPUT -t mangle -o $EXTIF -p tcp --dport 80 -j MARK --set-mark 10

# eDonkey-Server TCP-Daten > als ID 11 markieren
iptables -A OUTPUT -t mangle -o $EXTIF -p tcp --sport 4661 -j MARK --set-mark 11

# Definitionen der ID-Umleitungen
# Dies ist /DEFAULT/, braucht also nicht extra zugewiesen zu werden!
# tc filter add dev $EXTIF parent 1:0 prio 0 protocol ip handle 10 fw flowid 1:10

# Dies sind normale /EXTEND-SEARCH/ > Niedrige Priorität
tc filter add dev $EXTIF parent 1:0 prio 0 protocol ip handle 11 fw flowid 1:11

tc filter add dev $EXTIF parent 1:0 prio 2 protocol ip u32 match ip dport 4665 0xffff match ip protocol 17 0xff match u16 0xe399 0xffff at 28 flowid 1:12

# Dies sind alle UDP-Serverdaten /AUSSER EXTEND-SEARCH/ > höhere Priorität (z.B. noetig fuer Verbindungsaufbau zwischen Client und Server!)
tc filter add dev $EXTIF parent 1:0 prio 1 protocol ip u32 match ip dport 4665 0xffff match ip protocol 17 0xff flowid 1:11

#########
# SFQ (Soll fuer eine gewisse /FAIRNESS/ zwischen den Klassen sorgen, korrekte Funktion ist aber ungewiss)
#########
tc qdisc add dev $EXTIF parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev $EXTIF parent 1:11 handle 11: sfq perturb 10
tc qdisc add dev $EXTIF parent 1:12 handle 12: sfq perturb 10

#ENDE

Es wird klar, daß dieses Skript nur für eine Art von Netzanbindung gut ist: Für T-DSL mit 128kbit/s Upstream! Wer andere Upstream-Bandbreiten benutzt, muß das Skript entweder anpassen, oder QoS abschalten. Der Downstream kann nur VOR der Durchquerung des Flaschenhalses (also der Begrenzung beim ISP) mittels QoS beeinflusst werden, weshalb dieses Skript auch ausschließlich den Upstream beeinflußt.

Ich wurde wiederholt nach Dokumentationen von QoS gefragt. Kurze Antwort: Es gibt zwar ein paar sehr detaillierte Dokus zu manchen Untergliederungen, aber kein umfassendes Kompendium! Unglaublich? Aber trotzdem wahr. Ich habe mir den Kram über Monate mühsam zusammengesucht und mich bemüht, etwas sinnvolles daraus zu machen.

Einige meiner Quellen:

1. http://luxik.cdi.cz/~devik/qos/htb/
2. http://lartc.org/howto/lartc.cookbook.fullnat.intro.html
3. https://www.entropia.de/els/Workshops/QoS_Vortrag/qos_mit_lin ux.pdf
4. http://talk.trekweb.com/~jasonb/articles/linux_tc_minihowto.s html
5. http://board.thedonkeynetwork.com/thread.php?threadid=56&boar did=25&styleid=1

Desweiteren befindet sich eine kurze Erklärung zu HTB in der c't 24/2002, Seite 224.

Viel Erfolg. Über Informationsrückflüsse bei erfolgreicher Anwendung neuer (besserer?) Techniken wäre ich sehr erfreut.

Greetz, Diesel
Profil anzeigen E-mail senden Homepage besuchen Nach allen Beiträgen dieses Users suchen
« vorheriges  nächstes »        print
Nach oben


mxBoard, © 2006 by pragmaMx.org, based on eBoard, XMB and XForum


-
Alle Logos und Warenzeichen auf dieser Seite sind Eigentum der jeweiligen Besitzer und Lizenzhalter.
Im übrigen gilt Haftungsausschluss. Weitere Details finden Sie im Impressum.
Die Artikel sind geistiges Eigentum des/der jeweiligen Autoren, alles andere © 2003 - 2007 by eD2K-Serverboard
Diese Webseite basiert auf pragmaMx 0.1.9. Dieses CMS ist frei erhältlich.