Probleme mit QoS tc :htb

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
seisop
Beiträge: 10
Registriert: 06.11.2006 23:16:00
Kontaktdaten:

Probleme mit QoS tc :htb

Beitrag von seisop » 06.11.2006 23:37:12

Guten Tag!

Da ich noch nicht wirklich lange mit linux arbeite (ca. 1 Jahr), bin ich vor allem auf dem Bereich der Serveradministration ein bischen schwach! Ich habe dieses Jahr ein Netzwerk mit 250 Usern in einem Internat übernommen.

Wir haben eine 9mbit XDSL leitung, die ich mit QoS aufteilen will!
Unsere Server laufen unter debian und der kernel für QoS kompiliert!
Mein Problem ist, dass mein programm einfach nicht funktioniert. Ich habe mich zwar in QoS lange eingelesen, aber so einfach zu verstehen ist es dann für einen 17 jährigen wie mich auch wieder nicht!

Naja, lange rede kurzer sinn....
Kann mir bitte wer helfen? ich habe total den überblick verloren!
Das eigentliche script von mir war zwar umfangreicher, aber i möchte im moment einfach jeden user eine best. Bandbreite geben.

Code: Alles auswählen

TC="/sbin/tc"

	######################################
	##		Layer 1
	$TC qdisc add dev eth0 root handle 1: htb
	$TC qdisc add dev eth1 root handle 2: htb
	
	$TC class add dev eth0 parent 1: classid 1:1 htb rate 9mbit ceil 9mbit
	$TC class add dev eth1 parent 2: classid 2:1 htb rate 9mbit ceil 9mbit
	
	$TC class add dev eth0 parent 1: classid 1:2 htb rate 100mbit ceil 100mbit
	$TC class add dev eth1 parent 2: classid 2:2 htb rate 100mbit ceil 100mbit

	$TC filter add dev eth0 parent 1: protocol ip handle $OUTPUT_INT_MARK fw classid 1:2
	$TC filter add dev eth1 parent 2: protocol ip handle $OUTPUT_EXT_MARK fw classid 2:2

	######################################	
	##		Layer 2
	
	## create qdisc in prev classes : prio
	$TC qdisc add dev eth0 parent 1:1 handle 10: prio
	$TC qdisc add dev eth1 parent 2:1 handle 20: prio
	
	######################################	
	##		Layer 3
	
	## create qdisc in prev : htb	
	$TC qdisc add dev eth0 parent 10:1 handle 40: htb
	$TC qdisc add dev eth1 parent 20:1 handle 50: htb
	
	## create class in prev qdisc : htb
	$TC class add dev eth0 parent 40: classid 40:1 htb rate $BAND_RATE ceil $BAND_RATE
	$TC class add dev eth1 parent 50: classid 50:1 htb rate $BAND_RATE ceil $BAND_RATE

	######################################	
	##		Layer 4
	
	## create qdisc in prev class : htb
	$TC qdisc add dev eth0 parent 40:1 handle 60: htb
	$TC qdisc add dev eth1 parent 50:1 handle 70: htb
Und dan die User funktion:

Code: Alles auswählen

		
# create class in qdisc : htb
$TC class add dev eth0 parent 60: classid 60:$NETWORK_QOS_MARK htb rate $HOST_RATE ceil $HOST_CEIL #burst 64kb
$TC class add dev eth1 parent 70: classid 70:$NETWORK_QOS_MARK htb rate $HOST_RATE ceil $HOST_CEIL #burst 64kb
		
# create filter in qdisc : htb
$TC filter add dev eth0 parent 60: protocol ip handle $NETWORK_QOS_MARK fw classid 60:$NETWORK_QOS_MARK
$TC filter add dev eth1 parent 60: protocol ip handle $NETWORK_QOS_MARK fw classid 70:$NETWORK_QOS_MARK 
Naja ich habe mein script auf einen bestehenden aufgebaut, dass mein vorgänger geschrieben hat. Das hat funktioniert,also sind irgendwelche versionsprobeme ausgeschlossen.

Danke für Eure Hilfe und Antworten im vorraus!

MFG seisop[/code]
Zuletzt geändert von seisop am 07.11.2006 12:25:11, insgesamt 2-mal geändert.

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 07.11.2006 09:35:21

Hm, zum ersten benutz bitte Code-Tags fuer Quellcode.
Dann, das ist doch nicht das komplette Skript oder?
Die Shellvariablen wie OUTPUT_INT_MARK sind da nirgends zu sehen. Die einzige, die bei dir definiert wird ist TC.

Dann waere es nicht schlecht, wenn du genauer sagen wuerdest, wie du den Traffic aufteilen willst und was genau nun nicht klappt.
Wenn das gepostete dein gesamtes Skript ist, dann kanns schon mal aufgrund der nicht definierten Variablen nicht klappen, da an ihrer Stelle einfach nix eingefuegt wird und damit die Syntax fuer das tc-Kommando nicht mehr passt.

seisop
Beiträge: 10
Registriert: 06.11.2006 23:16:00
Kontaktdaten:

Beitrag von seisop » 07.11.2006 12:23:53

Danke für deine Antwort!

Also das ist nur der teil meines script für das reine tc!
Ich habe sehrwohl ein ca. 400 zeilen langes script mit den definitionen mit iptables, chains, marks(für die einzelnen User),..... aber das ist nicht das Prob!
Ja die IFACE_ habe ich vergessen zum umschreiben, habe das ganze script mit variablen, aber jetzt umgeschriebn zur besseren leserlichkeit!

Also, ich möchte ganz einfach jeden user eine bestimmte Bandbreite geben!
Nicht mehr und nicht weniger!
Und es funktioniert gar nichts, keine änderung ersichtlich!
weder speedtest, ping, pathchar,...

MFG seisop

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 07.11.2006 12:48:04

Ok "jedem User" wird per se wohl nicht gehen. Wenn du mit "jeder User" eine jeweils dem User zuordenbare IP verbindest, dann gehts. Aber iptables weiss prinzipiell nix von Usern und wenn, dann auch nur von denen, die auf dem lokalen System vorhanden sind.

Leider bin ich mit tc nicht so fit, als dass ich dir hier nun gezielter helfen kann.
Aber trotzdem noch paar Fragen:
- klappt denn das markieren der Pakete ueberhaupt?
- wie sehen die Regeln dazu aus?

seisop
Beiträge: 10
Registriert: 06.11.2006 23:16:00
Kontaktdaten:

Beitrag von seisop » 07.11.2006 13:11:06

Ja sry! hab mich falsch oder nicht genau ausgedrückt!
Also ja in meinen chains sind die einzelnen ip's der user gemarkt!

Code: Alles auswählen

         
IPT="/sbin/iptables -t mangle"
TC="/sbin/tc"
NETWORK_QOS_MARK="255"
  
function qos_add_host()
{
HOST_ADDRESS="$1"
HOST_RATE="$2"
HOST_CEIL="$3"

######################################

##              iptabels
#       mark packages
$IPT -I QOS_INCOMING -d $HOST_ADDRESS -j MARK --set-mark $NETWORK_QOS_MARK
$IPT -I QOS_OUTGOING -s $HOST_ADDRESS -j MARK --set-mark $NETWORK_QOS_MARK

## tc

# create class in qdisc : htb
$TC class add dev eth0 parent 60: classid 60:$NETWORK_QOS_MARK htb rate $HOST_RATE ceil $HOST_CEIL #burst 64kb
$TC class add dev eth1 parent 70: classid 70:$NETWORK_QOS_MARK htb rate $HOST_RATE ceil $HOST_CEIL #burst 64kb
      
# create filter in qdisc : htb
$TC filter add dev eth0 parent 60: protocol ip handle $NETWORK_QOS_MARK fw classid 60:$NETWORK_QOS_MARK
$TC filter add dev eth1 parent 70: protocol ip handle $NETWORK_QOS_MARK fw classid 70:$NETWORK_QOS_MARK 

 ((NETWORK_QOS_MARK++))
iptables -t mangle -L:

Code: Alles auswählen

Chain QOS_INCOMING (0 references)
target     prot opt source               destination
MARK       all  --  anywhere             10.1.10.221         MARK set 0x111
MARK       all  --  anywhere             10.1.10.112         MARK set 0x110
MARK       all  --  anywhere             10.1.10.103         MARK set 0x10f
MARK       all  --  anywhere             10.1.10.32          MARK set 0x10e
MARK       all  --  anywhere             10.1.0.11           MARK set 0x10d
MARK       all  --  anywhere             10.1.10.225         MARK set 0x10c
MARK       all  --  anywhere             10.1.10.220         MARK set 0x10b
MARK       all  --  anywhere             10.1.0.18           MARK set 0x10a
MARK       all  --  anywhere             10.1.0.4            MARK set 0x109
MARK       all  --  anywhere             10.1.1.10           MARK set 0x108
MARK       all  --  anywhere             10.1.0.17           MARK set 0x107
MARK       all  --  anywhere             10.1.10.51          MARK set 0x106
MARK       all  --  anywhere             10.1.10.30          MARK set 0x105
MARK       all  --  anywhere             10.1.10.19          MARK set 0x104
MARK       all  --  anywhere             10.1.10.12          MARK set 0x103
MARK       all  --  anywhere             10.1.0.74           MARK set 0x102
MARK       all  --  anywhere             10.1.10.6           MARK set 0x101
MARK       all  --  anywhere             10.1.10.2           MARK set 0x100
MARK       all  --  anywhere             10.1.10.1           MARK set 0xff

Chain QOS_OUTGOING (0 references)
target     prot opt source               destination
MARK       all  --  10.1.10.221          anywhere            MARK set 0x111
MARK       all  --  10.1.10.112          anywhere            MARK set 0x110
MARK       all  --  10.1.10.103          anywhere            MARK set 0x10f
MARK       all  --  10.1.10.32           anywhere            MARK set 0x10e
MARK       all  --  10.1.0.11            anywhere            MARK set 0x10d
MARK       all  --  10.1.10.225          anywhere            MARK set 0x10c
MARK       all  --  10.1.10.220          anywhere            MARK set 0x10b
MARK       all  --  10.1.0.18            anywhere            MARK set 0x10a
MARK       all  --  10.1.0.4             anywhere            MARK set 0x109
MARK       all  --  10.1.1.10            anywhere            MARK set 0x108
MARK       all  --  10.1.0.17            anywhere            MARK set 0x107
MARK       all  --  10.1.10.51           anywhere            MARK set 0x106
MARK       all  --  10.1.10.30           anywhere            MARK set 0x105
MARK       all  --  10.1.10.19           anywhere            MARK set 0x104
MARK       all  --  10.1.10.12           anywhere            MARK set 0x103
MARK       all  --  10.1.0.74            anywhere            MARK set 0x102
MARK       all  --  10.1.10.6            anywhere            MARK set 0x101
MARK       all  --  10.1.10.2            anywhere            MARK set 0x100
MARK       all  --  10.1.10.1            anywhere            MARK set 0xff

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 07.11.2006 13:19:51

Mach mal

Code: Alles auswählen

iptables -t mangle -Lv
damit man sieht, ob bei den MARK-Regeln auch Pakete matchen.

seisop
Beiträge: 10
Registriert: 06.11.2006 23:16:00
Kontaktdaten:

Beitrag von seisop » 07.11.2006 13:30:01

Code: Alles auswählen

natnet3:/home/seisop/test# iptables -t mangle -Lv 
iptables: Table does not exist (do you need to insmod?)
Hmm, interessant! was nun?
Kanns daran liegen? =)

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 07.11.2006 13:56:15

Ne, anscheinend mein Fehler:

Code: Alles auswählen

iptables -t mangle -L -v
Sorry :?

seisop
Beiträge: 10
Registriert: 06.11.2006 23:16:00
Kontaktdaten:

Beitrag von seisop » 07.11.2006 14:01:30

Code: Alles auswählen

Chain QOS_INCOMING (0 references)
 pkts bytes target   prot opt in    out    source        destination
0   0 MARK     all  --  any   any  anywhere   10.1.10.221    MARK set 0x111
0   0 MARK     all  --  any   any  anywhere   10.1.10.112    MARK set 0x110
0   0 MARK     all  --  any   any  anywhere   10.1.10.103    MARK set 0x10f
0   0 MARK     all  --  any   any  anywhere   10.1.10.32      MARK set 0x10e
0   0 MARK     all  --  any   any  anywhere   10.1.0.11        MARK set 0x10d
0   0 MARK     all  --  any   any  anywhere   10.1.10.225    MARK set 0x10c
......

Chain QOS_OUTGOING (0 references)
 pkts bytes target     prot opt in     out     source         destination
0   0 MARK    all  --  any    any   10.1.10.221    anywhere   MARK set 0x111
0   0 MARK    all  --  any    any   10.1.10.112    anywhere   MARK set 0x110
0   0 MARK    all  --  any    any   10.1.10.103    anywhere   MARK set 0x10f
0   0 MARK    all  --  any    any   10.1.10.32      anywhere   MARK set 0x10e
0   0 MARK    all  --  any    any   10.1.0.11        anywhere   MARK set 0x10d
0   0 MARK    all  --  any    any   10.1.10.225    anywhere   MARK set 0x10c
...

Benutzeravatar
mistersixt
Beiträge: 6601
Registriert: 24.09.2003 14:33:25
Lizenz eigener Beiträge: GNU Free Documentation License

Beitrag von mistersixt » 07.11.2006 14:42:57

Mmmh, irgendwie scheinen die Pakete gar nicht markiert zu werden (alle 0 Bytes/0 pkts), daher kann dann htb auch nichts "shapen", die Frage ist, was da schief läuft ... *grübel* ...vielleicht, weil eine (völlig andere) passende Regel schon vorher zutrifft und das Paket gar nicht bis zur Markieren-Regel kommt.

Ich hatte mal ein ähnliches Problem, wo gewisse ESP-Pakete (für IPSec) nicht korrekt markiert wurden, weil ich sie schon vorher in einer anderen mangle-Regel für htb "vorgesehen" hatte. Ich habe mehrere Tage gebraucht, bis ich das geschnallte hatte.

Gruss, mistersixt.
--
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 07.11.2006 14:51:15

Jo, daran scheint es wohl zu liegen. Wenn in der Liste alle Counter auf 0 stehen, hat da noch nie ein Paket auf die Regel gematched und wurde entsprechend markiert. Dann kann tc natuerlich nichts anders als nichts tun ;)

seisop
Beiträge: 10
Registriert: 06.11.2006 23:16:00
Kontaktdaten:

Beitrag von seisop » 07.11.2006 15:35:17

Jap danke!

ich habe die POSTROUTING chain nicht geflusht und prob mit dem markieren der einzelnen mackete gehabt! Jetzt steht alles schön eingetragen in meiner mangle und die counter zählen mit!

So, aber mein Problem mit dem tc besteht noch immer! .....

Benutzeravatar
mistersixt
Beiträge: 6601
Registriert: 24.09.2003 14:33:25
Lizenz eigener Beiträge: GNU Free Documentation License

Beitrag von mistersixt » 07.11.2006 15:39:13

Ok, da sind wir ja schon mal einen Schritt weiter, was sagen denn...

Code: Alles auswählen

tc -s qdisc ls dev eth0
tc -s class ls dev eth0
...bzw. bei eth1 ?

Gruss, mistersixt.
--
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE

seisop
Beiträge: 10
Registriert: 06.11.2006 23:16:00
Kontaktdaten:

Beitrag von seisop » 07.11.2006 16:00:48

eth0:

Code: Alles auswählen

qdisc ingress ffff: ----------------
 Sent 67796953 bytes 954762 pkts (dropped 5, overlimits 0)
qdisc htb 1: r2q 10 default 0 direct_packets_stat 71
 Sent 42135 bytes 129 pkts (dropped 0, overlimits 0)
qdisc prio 10: bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
qdisc htb 40: r2q 10 default 0 direct_packets_stat 0
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
qdisc htb 60: r2q 10 default 0 direct_packets_stat 0
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
eht1:

Code: Alles auswählen

qdisc ingress ffff: ----------------
 Sent 266554212 bytes 434696 pkts (dropped 0, overlimits 0)
qdisc htb 2: r2q 10 default 0 direct_packets_stat 815
 Sent 104337 bytes 815 pkts (dropped 0, overlimits 0)
qdisc prio 20: bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
qdisc htb 50: r2q 10 default 0 direct_packets_stat 0
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
qdisc htb 70: r2q 10 default 0 direct_packets_stat 0
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
MFG seisop

Benutzeravatar
TBT
Beiträge: 923
Registriert: 18.06.2003 08:39:36
Kontaktdaten:

Beitrag von TBT » 07.11.2006 19:00:52

so ein Problem habe ich auch gerade,
meine Pakete werden einfach nicht markiert?

mein aktuelles Script zum markieren sieht so aus:

Code: Alles auswählen

# Definitionen

EXTDEV="eth0"

# Funktion zum markieren von TCP Paketen

function markTcp() {
        echo "markiere $1 mit $2"
        iptables -t mangle -A INPUT -i $EXTDEV -p tcp --dport $1 -j MARK --set-mark $2
        iptables -t mangle -A FORWARD -i $EXTDEV -p tcp --dport $1 -j MARK --set-mark $2
        iptables -t mangle -A FORWARD -o $EXTDEV -p tcp --sport $1 -j MARK --set-mark $2
        iptables -t mangle -A OUTPUT -o $EXTDEV -p tcp --sport $1 -j MARK --set-mark $2
}

# html und proxy wird als 50 markiert
markTcp 80 50
markTcp 3128 50

# ftp als 40 markieren
markTcp 20 40
markTcp 21 40

# openvpn wird 30
markTcp 1194 30

# ssh wird 20
markTcp  22 20

# tcp ack wird 10 - hoechste Prioritaet
iptables -t mangle -A FORWARD -p tcp -m length --length :64 -j MARK --set-mark 10
iptables -t mangle -A OUTPUT -p tcp -m length --length :64 -j MARK --set-mark 10
wobei eth0 die externe Netzkarte ist.

klappen tut es aber nicht

Code: Alles auswählen

iptables -t mangle -L -v

Chain PREROUTING (policy ACCEPT 17M packets, 12G bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain INPUT (policy ACCEPT 5323K packets, 2839M bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 MARK       tcp  --  eth0   any     anywhere             anywhere            tcp dpt:www MARK set 0x32
    0     0 MARK       tcp  --  eth0   any     anywhere             anywhere            tcp dpt:3128 MARK set 0x32
    0     0 MARK       tcp  --  eth0   any     anywhere             anywhere            tcp dpt:ftp-data MARK set 0x28
    0     0 MARK       tcp  --  eth0   any     anywhere             anywhere            tcp dpt:ftp MARK set 0x28
    0     0 MARK       tcp  --  eth0   any     anywhere             anywhere            tcp dpt:openvpn MARK set 0x1e
    0     0 MARK       tcp  --  eth0   any     anywhere             anywhere            tcp dpt:ssh MARK set 0x14

Chain FORWARD (policy ACCEPT 10M packets, 8219M bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 MARK       tcp  --  eth0   any     anywhere             anywhere            tcp dpt:www MARK set 0x32
    0     0 MARK       tcp  --  any    eth0    anywhere             anywhere            tcp spt:www MARK set 0x32
    0     0 MARK       tcp  --  eth0   any     anywhere             anywhere            tcp dpt:3128 MARK set 0x32
    0     0 MARK       tcp  --  any    eth0    anywhere             anywhere            tcp spt:3128 MARK set 0x32
    0     0 MARK       tcp  --  eth0   any     anywhere             anywhere            tcp dpt:ftp-data MARK set 0x28
    0     0 MARK       tcp  --  any    eth0    anywhere             anywhere            tcp spt:ftp-data MARK set 0x28
    0     0 MARK       tcp  --  eth0   any     anywhere             anywhere            tcp dpt:ftp MARK set 0x28
    0     0 MARK       tcp  --  any    eth0    anywhere             anywhere            tcp spt:ftp MARK set 0x28
    0     0 MARK       tcp  --  eth0   any     anywhere             anywhere            tcp dpt:openvpn MARK set 0x1e
    0     0 MARK       tcp  --  any    eth0    anywhere             anywhere            tcp spt:openvpn MARK set 0x1e
    0     0 MARK       tcp  --  eth0   any     anywhere             anywhere            tcp dpt:ssh MARK set 0x14
    0     0 MARK       tcp  --  any    eth0    anywhere             anywhere            tcp spt:ssh MARK set 0x14
  392 21092 MARK       tcp  --  any    any     anywhere             anywhere            length 0:64 MARK set 0xa

Chain OUTPUT (policy ACCEPT 5767K packets, 3103M bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 MARK       tcp  --  any    eth0    anywhere             anywhere            tcp spt:www MARK set 0x32
    0     0 MARK       tcp  --  any    eth0    anywhere             anywhere            tcp spt:3128 MARK set 0x32
    0     0 MARK       tcp  --  any    eth0    anywhere             anywhere            tcp spt:ftp-data MARK set 0x28
    0     0 MARK       tcp  --  any    eth0    anywhere             anywhere            tcp spt:ftp MARK set 0x28
    0     0 MARK       tcp  --  any    eth0    anywhere             anywhere            tcp spt:openvpn MARK set 0x1e
    0     0 MARK       tcp  --  any    eth0    anywhere             anywhere            tcp spt:ssh MARK set 0x14
    6   312 MARK       tcp  --  any    any     anywhere             anywhere            length 0:64 MARK set 0xa

seisop
Beiträge: 10
Registriert: 06.11.2006 23:16:00
Kontaktdaten:

Beitrag von seisop » 08.11.2006 14:10:41

Sry, hab deine Frage falsch gelesen.... :/

eth10

Code: Alles auswählen

natnet3:/home/seisop#   tc -s qdisc ls dev eth0
qdisc htb 1: r2q 10 default 0 direct_packets_stat 2438
 Sent 1037612 bytes 2663 pkts (dropped 0, overlimits 0)
qdisc prio 10: bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
qdisc htb 40: r2q 10 default 0 direct_packets_stat 0
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
qdisc htb 60: r2q 10 default 0 direct_packets_stat 0
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
natnet3:/home/seisop#  tc -s class ls dev eth0
class htb 1:1 root leaf 10: prio 0 rate 1000Kbit ceil 1000Kbit burst 1724b cburs t 1724b
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
 lended: 0 borrowed: 0 giants: 0
 tokens: 14131 ctokens: 14131

class htb 1:2 root prio 0 rate 100000Kbit ceil 100000Kbit burst 14087b cburst 14 087b
 Sent 40965 bytes 230 pkts (dropped 0, overlimits 0)
 rate 3416bit 1pps
 lended: 230 borrowed: 0 giants: 0
 tokens: 1147 ctokens: 1147

class prio 10:1 parent 10: leaf 40:
class prio 10:2 parent 10:
class prio 10:3 parent 10:
class htb 40:1 root leaf 60: prio 0 rate 2000Kbit ceil 2000Kbit burst 1849b cbur st 1849b
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
 lended: 0 borrowed: 0 giants: 0
 tokens: 7577 ctokens: 7577

class htb 60:257 root prio 0 rate 80000bit ceil 80000bit burst 1609b cburst 1609 b
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
 lended: 0 borrowed: 0 giants: 0
 tokens: 164864 ctokens: 164864
 tokens: 164864 ctokens: 164864
....
eth1:

Code: Alles auswählen

natnet3:/home/seisop#   tc -s qdisc ls dev eth1
qdisc htb 2: r2q 10 default 0 direct_packets_stat 3910
 Sent 716068 bytes 4282 pkts (dropped 0, overlimits 0)
qdisc prio 20: bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
qdisc htb 50: r2q 10 default 0 direct_packets_stat 0
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
qdisc htb 70: r2q 10 default 0 direct_packets_stat 0
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
natnet3:/home/seisop#  tc -s class ls dev eth1
class htb 2:1 root leaf 20: prio 0 rate 1000Kbit ceil 1000Kbit burst 1724b cburst 1724b
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
 lended: 0 borrowed: 0 giants: 0
 tokens: 14131 ctokens: 14131

class htb 2:2 root prio 0 rate 100000Kbit ceil 100000Kbit burst 14087b cburst 14087b
 Sent 47067 bytes 376 pkts (dropped 0, overlimits 0)
 rate 1136bit 1pps
 lended: 376 borrowed: 0 giants: 0
 tokens: 1145 ctokens: 1145

class prio 20:1 parent 20: leaf 50:
class prio 20:2 parent 20:
class prio 20:3 parent 20:
class htb 50:1 root leaf 70: prio 0 rate 2000Kbit ceil 2000Kbit burst 1849b cburst 1849b
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
 lended: 0 borrowed: 0 giants: 0
 tokens: 7577 ctokens: 7577

class htb 70:257 root prio 0 rate 80000bit ceil 80000bit burst 1609b cburst 1609b
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
 lended: 0 borrowed: 0 giants: 0
 tokens: 164864 ctokens: 164864
...
MFG seisop

Benutzeravatar
mistersixt
Beiträge: 6601
Registriert: 24.09.2003 14:33:25
Lizenz eigener Beiträge: GNU Free Documentation License

Beitrag von mistersixt » 09.11.2006 08:57:25

TBT hat geschrieben:so ein Problem habe ich auch gerade,
meine Pakete werden einfach nicht markiert?

Mmmh, komisch, bei mir in Debian Sarge funktioniert das einwandfrei. Ich kann mich aber daran erinnern, dass ich auch am Anfang meine Probleme hatte, ich habe daraufhin sämtliche Pakete eines Protokolls geloggt via iptables um zu sehen, welche Regeln (Input, Output, Forward, Postrouting und Prerouting) sie durchlaufen und habe diese dann gezielt durch die Mangel genommen.

Veilleicht kommst Du auch so dahinter, wo es klemmt.

Gruss, mistersixt.
--
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE

seisop
Beiträge: 10
Registriert: 06.11.2006 23:16:00
Kontaktdaten:

Beitrag von seisop » 09.11.2006 13:52:10

Jap! es funktioniert!

ich habe einfach die Filter für die classen fergessen! Also ein ähnliches Problem wie bei den iptables... naja aller anfang ist schwer!

@mistersixt: Kennst du dich besser aus mit QoS und tc?? ich hätte da noch ein paar fragen!

Benutzeravatar
mistersixt
Beiträge: 6601
Registriert: 24.09.2003 14:33:25
Lizenz eigener Beiträge: GNU Free Documentation License

Beitrag von mistersixt » 09.11.2006 19:34:16

Uff, na ja, ich nutze es halt, um ein paar Dienste meiner DSL-Leitung zu drosseln. Ein- und ausgehende EMails werden halt gedrosselt (ist mir egal, ob eine EMail 10 oder 30 Sekunden braucht, bis sie reinkommt oder mein Mailserver sie verschicken kann), ssh wird priorisiert (wg. Remote-Access), ftp wiederum gedrosselt, ...etc. etc.

Frag einfach halt einfach mal ;) !

Gruss, mistersixt.

PS: vergessen - wird mit v geschrieben :) !
--
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE

seisop
Beiträge: 10
Registriert: 06.11.2006 23:16:00
Kontaktdaten:

Beitrag von seisop » 09.07.2007 14:01:23

So jetzt habe ich zwar Packete in den Klassen und die BB wird auch schön eingestellt, i habe aber immer noch Probleme damit.

HTB: quantum of class x0002 is big. Consider r2q change.
htb: class xx0001 isn't work conserving ?!

Auch nachdem ich die r2q und den quantum berechnet habe, und in das script eingesetzt, kommen diese Fehler immer noch vor.

und was hat es mit den Layern 1-4 aufsich? (ich weis was ein layer ist!)

Kann mir bitte jemand weiterhelfen?

Mit freundlichen Gruß,

seisop

Antworten