[linux] CBQ a problem s definiciou podtried
root
root na procomp-ap2.procomp.sk
Pondělí Listopad 10 17:58:52 CET 2003
Ahojte vospolok
Zoznamujem sa s cbq, ale akosi sa mi nedari spravne zadefinovat
triedy. Delim linku 128kbit na 6 tried a to 2 x 32 + 4 x 16.
Toto mi prejde. Ale potom chcem este 4 16-stky rozdelit kazdu na
8 x 2kbit a toto mi uz neprejde.
Ide mi o to, ze dvom praccovnym skupinam, pridelim po 32k.
A potom pre 32 pocitacov chcem dat zdielat zvysok,
ale tak, aby mal kazdy zarucenych aspon 2kbit a po 8 kusoch
aby boli zdruzene v 16-kach, aby si poziciavali pasmo v ramci
svojej 16-ky a vsetky tie 16-ky spolu s 32-mi si poziciavali
nevyuzitu kapacitu zo 128.
Ale nieco robim, zle a pri definovani tych 2-ovych tried
pod 16-mi mi skript neprejde s chybou "invalid argument".
Co robim zle ? Ved 2-ove tiedy v 2. urovni stromu definujem
presne ako triedy v 1. urovni, kde to prejde.
Vid skript prilozeny v prilohe.
Dakujem za kazdu radu.
Rony
------------- další část ---------------
#!/bin/sh
# Nastavenia
TC=/sbin/tc
TRIEDA="$TC class add dev"
echo "OK 00"
# Vymazat vsetky qdisc-i
$TC qdisc del dev eth0 root
#korenove radenie do front
$TC qdisc add dev eth0 root handle 1: cbq bandwidth 100Mbit allot 1514 cell 8 avpkt 1000 mpu 64
#korenova trieda v 0 urovni hierarchie tried
$TRIEDA eth0 classid 1:1 parent 1:0 cbq bandwidth 100Mbit rate 128kbit maxburst 20 allot 1514 cell 8 avpkt 1000 mpu 64
#skupinove triedy v 1 urovni hierarcie tried
$TRIEDA eth0 classid 1:11 parent 1:1 cbq allot 1514 bandwidth 100Mbit rate 16kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 1:12 parent 1:1 cbq allot 1514 bandwidth 100Mbit rate 16kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 1:13 parent 1:1 cbq allot 1514 bandwidth 100Mbit rate 16kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 1:14 parent 1:1 cbq allot 1514 bandwidth 100Mbit rate 16kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 1:15 parent 1:1 cbq allot 1514 bandwidth 100Mbit rate 32kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 1:16 parent 1:1 cbq allot 1514 bandwidth 100Mbit rate 32kbit maxburst 20 avpkt 1000
echo "OK 01"
#triedy na 2 urovni hierarcie s uz s nominalnymi rychlostami
## rodicovska 1:11
$TRIEDA eth0 classid 11:111 parent 1:11 cbq allot 1514 bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 11:112 parent 1:11 cbq allot 1514 bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 11:113 parent 1:11 cbq allot 1514 bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 11:114 parent 1:11 cbq allot 1514 bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 11:115 parent 1:11 cbq allot 1514 bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 11:116 parent 1:11 cbq allot 1514 bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 11:117 parent 1:11 cbq allot 1514 bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 11:118 parent 1:11 cbq allot 1514 bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
echo "OK 02"
## rodicovska 1:12
$TRIEDA eth0 classid 12:121 parent 1:12 cbq allot 1514 \
bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 12:122 parent 1:12 cbq allot 1514 \
bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 12:123 parent 1:12 cbq allot 1514 \
bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 12:124 parent 1:12 cbq allot 1514 \
bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 12:125 parent 1:12 cbq allot 1514 \
bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 12:126 parent 1:12 cbq allot 1514 \
bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 12:127 parent 1:12 cbq allot 1514 \
bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 12:128 parent 1:12 cbq allot 1514 \
bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
## rodicovska 1:13
$TRIEDA eth0 classid 13:131 parent 1:13 cbq allot 1514 \
bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 13:132 parent 1:13 cbq allot 1514 \
bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 13:133 parent 1:13 cbq allot 1514 \
bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 13:134 parent 1:13 cbq allot 1514 \
bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 13:135 parent 1:13 cbq allot 1514 \
bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 13:136 parent 1:13 cbq allot 1514 \
bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 13:137 parent 1:13 cbq allot 1514 \
bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 13:138 parent 1:13 cbq allot 1514 \
bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
## rodicovska 1:14
$TRIEDA eth0 classid 14:141 parent 1:14 cbq allot 1514 \
bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 14:142 parent 1:14 cbq allot 1514 \
bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 14:143 parent 1:14 cbq allot 1514 \
bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 14:144 parent 1:14 cbq allot 1514 \
bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 14:145 parent 1:14 cbq allot 1514 \
bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 14:146 parent 1:14 cbq allot 1514 \
bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 14:147 parent 1:14 cbq allot 1514 \
bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
$TRIEDA eth0 classid 14:148 parent 1:14 cbq allot 1514 \
bandwidth 100Mbit rate 2kbit maxburst 20 avpkt 1000
# tc qdisc add dev eth0 parent 1:11 handle 11:0 sfq perturb 10
# tc qdisc add dev eth0 parent 1:12 handle 12:0 sfq perturb 10
# tc qdisc add dev eth0 parent 1:13 handle 13:0 sfq perturb 10
# tc qdisc add dev eth0 parent 1:14 handle 14:0 sfq perturb 10
echo "OK 10"
# Znackovanie paketov podla pravidiel
# POZOR !!! Ak je ten isty packet oznackovany viac krat,
# plati znacka posledna
# Packety budema znackovat cislom poslednym z IP zakaznika
## nastavenie standardnej znacky, ktorou je 10000
iptables -t mangle -A POSTROUTING -j MARK --set-mark 10000
echo "OK 11"
## Zo sieti 172.16.1.0/24 znackujeme 1xxx , kde xxx je IP z 1 siete
# KAMENSKY
iptables -t mangle -A POSTROUTING -d 172.16.1.6 -j MARK --set-mark 1006
# HORVATH PROCOMP
iptables -t mangle -A POSTROUTING -d 172.16.1.6 -j MARK --set-mark 1007
iptables -t mangle -A POSTROUTING -d 172.16.1.8 -j MARK --set-mark 1008
# FABIAN
iptables -t mangle -A POSTROUTING -d 172.16.1.9 -j MARK --set-mark 1009
# KNIZNICA
iptables -t mangle -A POSTROUTING -d 172.16.1.10 -j MARK --set-mark 1010
iptables -t mangle -A POSTROUTING -d 172.16.1.11 -j MARK --set-mark 1011
iptables -t mangle -A POSTROUTING -d 172.16.1.12 -j MARK --set-mark 1012
iptables -t mangle -A POSTROUTING -d 172.16.1.13 -j MARK --set-mark 1013
iptables -t mangle -A POSTROUTING -d 172.16.1.14 -j MARK --set-mark 1014
# Mestske kulturne stredisko
iptables -t mangle -A POSTROUTING -d 172.16.1.18 -j MARK --set-mark 1018
iptables -t mangle -A POSTROUTING -d 172.16.1.19 -j MARK --set-mark 1019
# Novohradska ulica
iptables -t mangle -A POSTROUTING -d 172.16.1.20 -j MARK --set-mark 1020
iptables -t mangle -A POSTROUTING -d 172.16.1.21 -j MARK --set-mark 1021
iptables -t mangle -A POSTROUTING -d 172.16.1.22 -j MARK --set-mark 1022
iptables -t mangle -A POSTROUTING -d 172.16.1.23 -j MARK --set-mark 1023
iptables -t mangle -A POSTROUTING -d 172.16.1.24 -j MARK --set-mark 1024
iptables -t mangle -A POSTROUTING -d 172.16.1.25 -j MARK --set-mark 1025
iptables -t mangle -A POSTROUTING -d 172.16.1.26 -j MARK --set-mark 1026
# Lucenecka ulica
iptables -t mangle -A POSTROUTING -d 172.16.1.30 -j MARK --set-mark 1030
iptables -t mangle -A POSTROUTING -d 172.16.1.31 -j MARK --set-mark 1031
iptables -t mangle -A POSTROUTING -d 172.16.1.32 -j MARK --set-mark 1032
iptables -t mangle -A POSTROUTING -d 172.16.1.33 -j MARK --set-mark 1033
iptables -t mangle -A POSTROUTING -d 172.16.1.34 -j MARK --set-mark 1034
iptables -t mangle -A POSTROUTING -d 172.16.1.35 -j MARK --set-mark 1035
iptables -t mangle -A POSTROUTING -d 172.16.1.36 -j MARK --set-mark 1036
# TRESO
iptables -t mangle -A POSTROUTING -d 172.16.1.40 -j MARK --set-mark 1040
iptables -t mangle -A POSTROUTING -d 172.16.1.41 -j MARK --set-mark 1041
# PASKA
iptables -t mangle -A POSTROUTING -d 172.16.1.44 -j MARK --set-mark 1044
# Informacne centrum mladych
iptables -t mangle -A POSTROUTING -d 172.16.1.45 -j MARK --set-mark 1045
iptables -t mangle -A POSTROUTING -d 172.16.1.46 -j MARK --set-mark 1046
iptables -t mangle -A POSTROUTING -d 172.16.1.47 -j MARK --set-mark 1047
iptables -t mangle -A POSTROUTING -d 172.16.1.48 -j MARK --set-mark 1048
iptables -t mangle -A POSTROUTING -d 172.16.1.49 -j MARK --set-mark 1049
# MsU
iptables -t mangle -A POSTROUTING -d 172.16.1.50 -j MARK --set-mark 1050
iptables -t mangle -A POSTROUTING -d 172.16.1.51 -j MARK --set-mark 1051
# PSS
iptables -t mangle -A POSTROUTING -d 172.16.1.53 -j MARK --set-mark 1053
iptables -t mangle -A POSTROUTING -d 172.16.1.54 -j MARK --set-mark 1054
# MICHA Ing. Chamula
iptables -t mangle -A POSTROUTING -d 172.16.1.59 -j MARK --set-mark 1059
# GEOMERKART
iptables -t mangle -A POSTROUTING -d 172.16.1.60 -j MARK --set-mark 1060
# KMK Slovakia plus
iptables -t mangle -A POSTROUTING -d 172.16.1.65 -j MARK --set-mark 1065
iptables -t mangle -A POSTROUTING -d 172.16.1.66 -j MARK --set-mark 1066
iptables -t mangle -A POSTROUTING -d 172.16.1.67 -j MARK --set-mark 1067
iptables -t mangle -A POSTROUTING -d 172.16.1.68 -j MARK --set-mark 1068
iptables -t mangle -A POSTROUTING -d 172.16.1.69 -j MARK --set-mark 1069
# PAZZ s.r.o.
iptables -t mangle -A POSTROUTING -d 172.16.1.70 -j MARK --set-mark 1070
iptables -t mangle -A POSTROUTING -d 172.16.1.71 -j MARK --set-mark 1071
# OMP
iptables -t mangle -A POSTROUTING -d 172.16.1.80 -j MARK --set-mark 1080
# Bozeny Nemcovej 49
iptables -t mangle -A POSTROUTING -d 172.16.1.100 -j MARK --set-mark 1100
iptables -t mangle -A POSTROUTING -d 172.16.1.101 -j MARK --set-mark 1101
iptables -t mangle -A POSTROUTING -d 172.16.1.102 -j MARK --set-mark 1102
iptables -t mangle -A POSTROUTING -d 172.16.1.103 -j MARK --set-mark 1103
iptables -t mangle -A POSTROUTING -d 172.16.1.104 -j MARK --set-mark 1104
iptables -t mangle -A POSTROUTING -d 172.16.1.105 -j MARK --set-mark 1105
# Bozeny Nemcovej 43
iptables -t mangle -A POSTROUTING -d 172.16.1.110 -j MARK --set-mark 1110
iptables -t mangle -A POSTROUTING -d 172.16.1.111 -j MARK --set-mark 1111
iptables -t mangle -A POSTROUTING -d 172.16.1.112 -j MARK --set-mark 1112
iptables -t mangle -A POSTROUTING -d 172.16.1.113 -j MARK --set-mark 1113
## nase stroje zo 172.16.2.0/24 znackujeme 2xxx , kde xxxx je IP z 2 siete
iptables -t mangle -A POSTROUTING -d 172.16.2.1 -j MARK --set-mark 2001
iptables -t mangle -A POSTROUTING -d 172.16.2.2 -j MARK --set-mark 2002
## Zo sieti 172.16.4.0/24 znackujeme 4xxx , kde xxx je IP zo 4 siete
# PLASTLINE
iptables -t mangle -A POSTROUTING -d 172.16.4.10 -j MARK --set-mark 4010
iptables -t mangle -A POSTROUTING -d 172.16.4.11 -j MARK --set-mark 4011
iptables -t mangle -A POSTROUTING -d 172.16.4.12 -j MARK --set-mark 4012
iptables -t mangle -A POSTROUTING -d 172.16.4.13 -j MARK --set-mark 4013
iptables -t mangle -A POSTROUTING -d 172.16.4.14 -j MARK --set-mark 4014
iptables -t mangle -A POSTROUTING -d 172.16.4.15 -j MARK --set-mark 4015
iptables -t mangle -A POSTROUTING -d 172.16.4.16 -j MARK --set-mark 4016
# filtre pre shaper
# KNIZNICA 32 kbit zdielana len strojmi kniznice
tc filter add dev eth0 parent 1:0 protocol ip handle 1010 fw flowid 1:15
tc filter add dev eth0 parent 1:0 protocol ip handle 1011 fw flowid 1:15
tc filter add dev eth0 parent 1:0 protocol ip handle 1012 fw flowid 1:15
tc filter add dev eth0 parent 1:0 protocol ip handle 1013 fw flowid 1:15
tc filter add dev eth0 parent 1:0 protocol ip handle 1014 fw flowid 1:15
# MsU 32 kbit zdielana len strojmi ktore su z MsU a ktorym MsU poskytuje
# pripojenie
tc filter add dev eth0 parent 1:0 protocol ip handle 1050 fw flowid 1:16
tc filter add dev eth0 parent 1:0 protocol ip handle 1051 fw flowid 1:16
tc filter add dev eth0 parent 1:0 protocol ip handle 1053 fw flowid 1:16
tc filter add dev eth0 parent 1:0 protocol ip handle 1054 fw flowid 1:16
tc filter add dev eth0 parent 1:0 protocol ip handle 1059 fw flowid 1:16
tc filter add dev eth0 parent 1:0 protocol ip handle 1060 fw flowid 1:16
#### BEGIN 11:
#
tc filter add dev eth0 parent 1:0 protocol ip handle 1006 fw flowid 11:111
tc filter add dev eth0 parent 1:0 protocol ip handle 1009 fw flowid 11:112
# handle 1020 nie je, je to bridge
tc filter add dev eth0 parent 1:0 protocol ip handle 1021 fw flowid 11:113
tc filter add dev eth0 parent 1:0 protocol ip handle 1022 fw flowid 11:114
tc filter add dev eth0 parent 1:0 protocol ip handle 1023 fw flowid 11:115
tc filter add dev eth0 parent 1:0 protocol ip handle 1024 fw flowid 11:116
tc filter add dev eth0 parent 1:0 protocol ip handle 1025 fw flowid 11:117
tc filter add dev eth0 parent 1:0 protocol ip handle 1026 fw flowid 11:118
#
#### END 11:
#### BEGIN 12:
# handle 1030 nie je, je to bridge
tc filter add dev eth0 parent 1:0 protocol ip handle 1031 fw flowid 12:121
tc filter add dev eth0 parent 1:0 protocol ip handle 1032 fw flowid 12:122
tc filter add dev eth0 parent 1:0 protocol ip handle 1033 fw flowid 12:123
tc filter add dev eth0 parent 1:0 protocol ip handle 1034 fw flowid 12:124
tc filter add dev eth0 parent 1:0 protocol ip handle 1035 fw flowid 12:125
tc filter add dev eth0 parent 1:0 protocol ip handle 1036 fw flowid 12:126
# handle 1040 nie je, je to bridge
tc filter add dev eth0 parent 1:0 protocol ip handle 1041 fw flowid 12:127
tc filter add dev eth0 parent 1:0 protocol ip handle 1044 fw flowid 12:128
#
#### END 12:
#### BEGIN 13:
#
# handle 1065 nie je, je to bridge
tc filter add dev eth0 parent 1:0 protocol ip handle 1066 fw flowid 13:131
tc filter add dev eth0 parent 1:0 protocol ip handle 1067 fw flowid 13:131
tc filter add dev eth0 parent 1:0 protocol ip handle 1068 fw flowid 13:131
tc filter add dev eth0 parent 1:0 protocol ip handle 1069 fw flowid 13:131
# handle 1070 nie je, je to bridge
tc filter add dev eth0 parent 1:0 protocol ip handle 1071 fw flowid 13:132
tc filter add dev eth0 parent 1:0 protocol ip handle 1080 fw flowid 13:133
# handle 1100 nie je, je to bridge
tc filter add dev eth0 parent 1:0 protocol ip handle 1101 fw flowid 13:134
tc filter add dev eth0 parent 1:0 protocol ip handle 1102 fw flowid 13:135
tc filter add dev eth0 parent 1:0 protocol ip handle 1103 fw flowid 13:136
tc filter add dev eth0 parent 1:0 protocol ip handle 1104 fw flowid 13:137
tc filter add dev eth0 parent 1:0 protocol ip handle 1105 fw flowid 13:138
#
#### END 13:
#### BEGIN 14:
#
# handle 1110 nie je, je to bridge
tc filter add dev eth0 parent 1:0 protocol ip handle 1111 fw flowid 14:141
tc filter add dev eth0 parent 1:0 protocol ip handle 1112 fw flowid 14:142
tc filter add dev eth0 parent 1:0 protocol ip handle 1113 fw flowid 14:143
# tc filter add dev eth0 parent 1:0 protocol ip handle 1080 fw flowid 14:144
# tc filter add dev eth0 parent 1:0 protocol ip handle 1080 fw flowid 14:145
# tc filter add dev eth0 parent 1:0 protocol ip handle 1080 fw flowid 14:146
# tc filter add dev eth0 parent 1:0 protocol ip handle 1080 fw flowid 14:147
# tc filter add dev eth0 parent 1:0 protocol ip handle 1080 fw flowid 14:148
#
#### END 14:
Další informace o konferenci linux