![]() |
|
|
#1 | |
|
IPPF-Aufsteiger
Registriert seit: 18.10.2004
Beiträge: 28
|
QOS mit Linux Router
Hallo an alle,
ich habe ein Problem damit QOS auf meinem Linux Roter einzurichten. Ich hoffe Ihr könnt mir helfen. Etwas zur Konfiguration: Internes Netz IP:192.168.1.1 wird über eth0 IP:192.168.1.2 ins Netz geleitet. Handytone 486 IP:192.168.200.10 hängt als Client an eth2 IP:192.168.200.1. Download 1 Mbit Upload 128 Kbit. Auf dem Router selbst laufen http, ftp und mail Server auf die von Außen zugegriffen wird. VOIP Account bei sipgate. Alles funktioniert soweit auch super bis auf QOS. Ich wollte einfach nur 2 Klassen einrichten bei denen das Telefonieren immer Vorrang vor allem anderen Traffic hat. Das was ich vorgearbeitet habe sieht so aus: Zitat:
Gruß Peter |
|
|
|
|
|
|
#2 |
|
IPPF-Aufsteiger
Registriert seit: 18.10.2004
Beiträge: 28
|
QOS mit Linux Router
Nach tagelangem Rumexperimentieren und Anrufen, sieht mein Script nun folgendermaßen aus:
Code:
#!/bin/sh #Alles loeschen iptables -F -t mangle tc qdisc del dev ppp0 root 2> /dev/null > /dev/null tc qdisc del dev ppp0 ingress 2> /dev/null > /dev/null # root qdisc anlegen tc qdisc add dev ppp0 root handle 1:0 htb default 12 r2q 1 # Hauptklasse tc class add dev ppp0 parent 1:0 classid 1:1 htb rate 115kbit ceil 115kbit # Klasse fuer VoIP tc class add dev ppp0 parent 1:1 classid 1:10 htb rate 91kbit ceil 115kbit prio 0 # Klasse fuer ACK tc class add dev ppp0 parent 1:1 classid 1:11 htb rate 12kbit ceil 115kbit prio 1 # Klasse fuer Standard tc class add dev ppp0 parent 1:1 classid 1:12 htb rate 12kbit ceil 115kbit prio 2 iptables -t mangle -A POSTROUTING -o ppp0 -p udp -s 192.168.200.10/32 -j MARK --set-mark 10 iptables -t mangle -A POSTROUTING -o ppp0 -p tcp -m length --length :64 -j MARK --set-mark 11 tc filter add dev ppp0 parent 1:0 prio 2 protocol ip handle 12 fw flowid 1:12 tc filter add dev ppp0 parent 1:0 prio 0 protocol ip handle 10 fw flowid 1:10 tc filter add dev ppp0 parent 1:0 prio 1 protocol ip handle 11 fw flowid 1:11 Wenn es bei jemandem einwandfrei funktioniert, bitte helft mir, bin langsam am Verzweifeln. |
|
|
|
|
|
#3 |
|
IPPF-Aufsteiger
Registriert seit: 18.10.2004
Beiträge: 28
|
Gibt es den hier niemanden der mir helfen könnte?
|
|
|
|
|
|
#4 |
|
IPPF-Einsteiger
Registriert seit: 25.06.2004
Beiträge: 7
|
hi brunaxxl,
ich hab ein script, was bei mir ganz gut läuft. kann telefonieren, hab gute pings, surfe nebenbei, netradio ist an, der mldonkey macht seine arbeit und email kann ich auch noch verschicken ohne das es zu aussetzern kommt habe noch zusätzlich den l7-filter integriert, somit muss ich mir um ports beim donkey keine gedanken machen, da er bis auf layer7-ebene prüft. feines teil. du müsstest statt: iptables -t mangle -o $DEV -A POSTROUTING -m layer7 --l7proto rtp \ -j MARK --set-mark 1 ein: iptables -t mangle -o $DEV -A POSTROUTING -p tcp --sport $PORT <RTP-PORT> \ -j MARK --set-mark 1 eintragen. weiss jetzt allerdings nicht den port für RTP. das musst du überall da ändern, wo -m layer7 --l7proto steht. htb wollte bei mir auch nicht richtig, hiermit geht es. grüße jj mein script: ------------- #!/sbin/runscript # # UPLINK 85% of the real Uplink # DOWNLINK little bit more than half is good #DOWNLINK=800 UPLINK=163 DEV=ppp0 start() { ebegin "Starting Quality of Service" # clean existing down- and uplink qdiscs, hide errors tc qdisc del dev $DEV root 2> /dev/null > /dev/null tc qdisc del dev $DEV ingress 2> /dev/null > /dev/null # clean the mangle table iptables -t mangle -F POSTROUTING iptables -t mangle -F OUTPUT ########## uplink ############# # Configure outbound ethernet connection #ip link set dev $DEV txqlen 30 ip link set dev $DEV mtu 1500 # create queues # install root HTB, point default traffic to 1:50: #tc qdisc add dev $DEV root handle 1: htb default 1 tc qdisc add dev $DEV root handle 1: tbf rate ${UPLINK}kbit latency 1ms burst 1540 # shape everything at $UPLINK speed - this prevents huge queues in your # DSL modem which destroy latency: # tc class add dev $DEV parent 1: classid 1:1 htb rate ${UPLINK}kbit burst 6k #tc class add dev $DEV parent 1: classid 1:1 htb rate ${UPLINK}kbit tc qdisc add dev $DEV parent 1: handle 10: prio bands 5 tc qdisc add dev $DEV parent 10:1 handle 100: sfq perturb 10 tc qdisc add dev $DEV parent 10:2 handle 200: sfq perturb 10 tc qdisc add dev $DEV parent 10:3 handle 300: sfq perturb 10 tc qdisc add dev $DEV parent 10:4 handle 400: sfq perturb 10 tc qdisc add dev $DEV parent 10:5 handle 500: sfq perturb 10 # filters packets marked by iptables tc filter add dev $DEV parent 10: protocol ip prio 1 handle 1 fw classid 10:1 tc filter add dev $DEV parent 10: protocol ip prio 2 handle 2 fw classid 10:2 tc filter add dev $DEV parent 10: protocol ip prio 3 handle 3 fw classid 10:3 tc filter add dev $DEV parent 10: protocol ip prio 4 handle 4 fw classid 10:4 tc filter add dev $DEV parent 10: protocol ip prio 5 handle 5 fw classid 10:5 ######################################## # CLASS 1:10 / HIGH PRIO TRAFFIC / Voice-over-IP, Ping # iptables -t mangle -o $DEV -A POSTROUTING -m layer7 --l7proto sip \ # -j MARK --set-mark 1 iptables -t mangle -o $DEV -A POSTROUTING -m layer7 --l7proto rtp \ -j MARK --set-mark 1 iptables -t mangle -o $DEV -A POSTROUTING -p icmp -j MARK --set-mark 1 iptables -t mangle -o $DEV -A POSTROUTING -p icmp -j RETURN ########################################### # CLASS 1:20 / INTERACTIVE TRAFFIC / TOS Minimum Delay (ssh, NOT scp) iptables -t mangle -o $DEV -A POSTROUTING -m layer7 --l7proto ssh \ -j MARK --set-mark 2 ########################################## # CLASS 1:30 / ACKS # ACK: To speed up downloads while an upload is going on, put ACK packets in # the interactive class: iptables -t mangle -o $DEV -A POSTROUTING -p tcp \ -m length --length :64 -j MARK --set-mark 3 ############################################# # CLASS 1:40 / DEFAULT CLASS # iptables -t mangle -o $DEV -A POSTROUTING -m layer7 --l7proto smtp \ # -j MARK --set-mark 4 ############################################# # CLASS 1:50 / LOW PRIO TRAFFIC / PEER-2-PEER iptables -t mangle -o $DEV -A POSTROUTING -m layer7 --l7proto edonkey \ -j MARK --set-mark 5 ########## downlink ############# # slow downloads down to somewhat less than the real speed to prevent # queuing at our ISP. Tune to see how high you can set it. # ISPs tend to have *huge* queues to make sure big downloads are fast # attach ingress policer: #tc qdisc add dev $DEV handle ffff: ingress # filter *everything* to it (0.0.0.0/0), drop everything that's # coming in too fast: #tc filter add dev $DEV parent ffff: protocol ip prio 50 u32 match ip src \ # 0.0.0.0/0 police rate ${DOWNLINK}kbit burst 10k drop flowid :1 eend $? } stop() { ebegin "Stopping Quality of Service" # clean existing down- and uplink qdiscs, hide errors tc qdisc del dev $DEV root 2> /dev/null > /dev/null tc qdisc del dev $DEV ingress 2> /dev/null > /dev/null #tc qdisc del dev $DEVIMQ root 2> /dev/null > /dev/null tc qdisc del dev lo root 2> /dev/null > /dev/null # clean the mangle table #iptables -t mangle -F PREROUTING #iptables -t mangle -F OUTPUT iptables -F -t mangle eend $? } status() { iptables -vL POSTROUTING -t mangle #iptables -t mangle -L -v -x echo "--------------" tc -s qdisc ls dev $DEV echo "--------------" tc -s class ls dev $DEV } restart() { svc_stop sleep 1 svc_start } |
|
|
|
|
|
#5 |
|
IPPF-Aufsteiger
Registriert seit: 18.10.2004
Beiträge: 28
|
Danke JayJay,
werde es gleich ausprobieren.
__________________
Router: Fritz!Box Fon WLAN 7170 / Firmware 29.04.70 Telefone: Nokia E71 / TC-300 / Siemens Gigaset SL370 VoIP: GMX / Sipgate / carpo / dus.net Anbindung: 20000/1024 / Provider Unitymedia |
|
|
|
|
|
#6 |
|
IPPF-Einsteiger
Registriert seit: 25.03.2005
Beiträge: 5
|
JayJay: Danke für das Script, werde es auch mal testen. Ist es eigentlich die aktuelle Version?
Bist du dir mit " --l7proto rtp" sicher? In den l7-filter Protokollen auf http://l7-filter.sourceforge.net/protocols finde ich nur sip, aber kein rtp... |
|
|
|
|
|
#7 |
|
IPPF-Einsteiger
Registriert seit: 25.06.2004
Beiträge: 7
|
Hi b0fh,
ich hab mir selbst ein Pattern geschrieben. Für meine Ansprüche hat es gereicht. # RTP - Real-Time Transport Protocol - http://www.ietf.org/rfc/rfc1889.txt?number=1889 # rtp ^\x80\x08 Viele Grüße JJ
__________________
Router: Juniper NetScreen 5GT Extended Telefon: Siemesn Gigaset A260 VoIP: Sipgate, dus.net Anbindung: Alice 16000/1000 |
|
|
|
|
|
#8 |
|
IPPF-Einsteiger
Registriert seit: 25.03.2005
Beiträge: 5
|
Ich habe mir auch mal die Mühe gemacht und aus vorhandenen Skripten die (wie ich finde) besten Ansätze zusammengebaut: http://www.robert-peter.de/yats/
Habe dazu auch ein kleines HOWTO geschrieben, da die meisten Skripte die ich fand meistens schlecht dokumentiert waren. Ich hoffe es hilft dem einen oder anderen sich mit, dem zugegeben nicht einfachen, QoS auseinanderzusetzen... Noch eine Frage an die QoS Anwender hier: Wie würdet ihr eine prozentuale Aufteilung zwischen den Queues machen? Ich bin mit meiner noch nicht wirklich glücklich... |
|
|
|
|
|
#9 | |
|
IPPF-Einsteiger
Registriert seit: 25.03.2005
Beiträge: 5
|
Zitat:
|
|
|
|
|
|
|
#10 |
|
IPPF-Tausend-VIP
Registriert seit: 13.03.2005
Ort: Vogtland
Beiträge: 1.456
|
@b0fh:
Hallo und beste Grüße; ich interessiere mich für das QoS, ober habe so gut wie NULL Ahnung. Wahrscheinlich ging es dir am Anfang ebenso. Kannst Du mir bitte einen Tipp geben, wie ich Dein obengenanntes script auf http://www.robert-peter.de/yats/ auf meinen Router mit Fli4l einbinden kann? Es gibt da ein opt QoS, da sind standardmäßige Einstellungen vorgegeben. Nur kann ich damit noch viel weniger anfangen als mit Deinem Script auf der Site. Vielen Dank schonmal jetzt. Grüße Günter
__________________
Box: Fritz!Box Fon Speedport W 900V Labor-Version 34.04.99freetz-devel-4492 Telefone: 3 DECT-Telefone ; am externen S0-Bus ein ISDN-Telefon Anbindung: ADSL mit 3072 down/384 up | Provider: T-Online Call and Surf Comfort |
|
|
|
|
|
#11 |
|
IPPF-Einsteiger
Registriert seit: 25.03.2005
Beiträge: 5
|
ploieel: Kann dir leider nicht helfen, weiß nicht wie unter fli4l sowas eingebunden wird.
|
|
|
|
![]() |
| Themen-Optionen | Thema durchsuchen |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Erstellt von | Forum | Antworten | Letzter Beitrag |
| Howto: ADSL 24h disconnect macht Router Probleme | Blackvel | Asterisk Allgemein | 8 | 12.01.2006 10:56 |
| ATA 486 und zwei Router | napsspan | BT10x /ATA286 /ATA486 | 4 | 11.11.2005 15:26 |
| Lancom Router + QoS + Asterisk im LAN | weistedv | Asterisk Allgemein | 0 | 18.10.2005 11:50 |
| Firewallscripts für VOIP und Linux als router | Sveni | Allgemeines | 0 | 24.05.2005 20:35 |
| ATA 486 als Client hinter Linux Router..Keine Funktion | kawafan | BT10x /ATA286 /ATA486 | 35 | 27.09.2004 23:25 |