Moin Liste,
bin derzeit dabei mich mit tc/tcng bekanntzumachen und stosse schon auf die ersten Hürden. Zwar bekomme ich keinerlei Fehlermeldungen vom tc Compiler oder vom Kernel aber von Bandbreitenbegrenzung ist aber auch nichts zu spüren. Die vollen 100MBit/s gehen über eth0
hier das tcng file:
#include "fields.tc" #include "ports.tc"
$INTERFACE="eth0"; $MAX=20kbps; $RATE_USER1=10kbps; $RATE_USER2=20kbps;
dev $INTERFACE { egress { class (<$user1>) if ip_src == 192.168.1.6; class (<$user2>) if ip_src == 192.168.1.3; htb () { class (rate $MAX, ceil $MAX) { $user1 = class (rate $RATE_USER1, ceil $MAX) {sfq;}; $user2 = class (rate $RATE_USER2, ceil $MAX) {sfq;}; } } } }
und das was der tcc mittels tcc -r example.tcng draus macht:
tc qdisc del dev eth0 root
# ================================ Device eth0 ================================
tc qdisc add dev eth0 handle 1:0 root dsmark indices 4 default_index 0 tc qdisc add dev eth0 handle 2:0 parent 1:0 htb tc class add dev eth0 parent 2:0 classid 2:1 htb rate 2500bps ceil 2500bps tc class add dev eth0 parent 2:1 classid 2:2 htb rate 1250bps ceil 2500bps tc qdisc add dev eth0 handle 3:0 parent 2:2 sfq tc class add dev eth0 parent 2:1 classid 2:3 htb rate 2500bps ceil 2500bps tc qdisc add dev eth0 handle 4:0 parent 2:3 sfq tc filter add dev eth0 parent 2:0 protocol all prio 1 tcindex mask 0x3 shift 0 tc filter add dev eth0 parent 2:0 protocol all prio 1 handle 2 tcindex classid 2:3 tc filter add dev eth0 parent 2:0 protocol all prio 1 handle 1 tcindex classid 2:2 tc filter add dev eth0 parent 1:0 protocol all prio 1 u32 match u32 0xc0a80106 0xffffffff at 12 classid 1:1 tc filter add dev eth0 parent 1:0 protocol all prio 1 u32 match u32 0xc0a80103 0xffffffff at 12 classid 1:2
Ich habe das Spiel ebenso mit Begrenzung von Ports gemacht, wiederum keinerlei Erfolge.
hier noch kurz die Versionsnummern:
tc utility, iproute2-ss041019 kernel 2.6.8
QoS als Kernelmodule kompiliert
Grüsse
Rico