Portál AbcLinuxu, 4. května 2025 14:56

Dotaz: HTB neomezuje rychlost

1.9.2007 20:02 Rycmond | skóre: 10 | Úpice
HTB neomezuje rychlost
Přečteno: 712×
Odpovědět | Admin
Dobry den, snazim se nastavyt HTB. Ale podle zadneho navodu se me mepodarilo aby me to omezovalo rychlost. Uz nevim kde delam chybu :-(. Mam to zkopilovani v jadre nehlasi to zadnou chybu jen to neomezuje. Jeste eth0 je sitovka do internetu eth2 je sitovka do moji site ostatnich sitovek se omezovani rychlosti netyka. Nevedel by nekdo kde delam chybu.

pro nastaveni htb pouzivam toto:

RATE=64

tc qdisc del dev eth0 root tc qdisc add dev eth0 root handle 1:0 htb

tc class add dev eth0 parent 1:0 classid 1:1 htb rate ${RATE}kbit quantum 1500

tc class add dev eth0 parent 1:1 classid 1:11 htb rate $[${RATE}/4]kbit ceil ${RATE}kbit quantum 1500

tc class add dev eth0 parent 1:1 classid 1:12 htb rate $[${RATE}/4]kbit ceil ${RATE}kbit quantum 1500

tc class add dev eth0 parent 1:1 classid 1:13 htb rate $[${RATE}/4]kbit ceil ${RATE}kbit quantum 1500

tc class add dev eth0 parent 1:1 classid 1:14 htb rate $[${RATE}/4]kbit ceil ${RATE}kbit quantum 1500

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

iptables -t mangle -A FORWARD -j MARK --set-mark 4

iptables -t mangle -A FORWARD -d 10.176.0.34 -j MARK --set-mark 1

iptables -t mangle -A FORWARD -d 10.176.0.71 -j MARK --set-mark 2

iptables -t mangle -A FORWARD -d 10.176.0.2 -j MARK --set-mark 3

tc filter add dev eth0 parent 1:0 protocol ip handle 1 fw flowid 1:11

tc filter add dev eth0 parent 1:0 protocol ip handle 2 fw flowid 1:12

tc filter add dev eth0 parent 1:0 protocol ip handle 3 fw flowid 1:13

tc filter add dev eth0 parent 1:0 protocol ip handle 4 fw flowid 1:14

Dik za odpoved
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

1.9.2007 20:29 Milan Beneš | skóre: 17 | blog: Kraft_durch_Freude
Rozbalit Rozbalit vše Re: HTB neomezuje rychlost
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ahoj, než začneme něco řešit, tak se chci zeptat, jetli je Ti jasný, že tato koncepce bude omezovat provoz směrem do internetu? (upstream)

jaká má být rychlost pro downstream a upstream? Kolik bude pásem?
1.9.2007 21:13 Rycmond | skóre: 10 | Úpice
Rozbalit Rozbalit vše Re: HTB neomezuje rychlost
toze to bude omezovat jen provoz do internetu jsem si ted uz vyskousel :-) ale nevim proc jen do internetu downstream bude 256Kbit upstream bude 128Kbit potrebuju omezit ty tri adresi ktere jsou v tom scriptu
1.9.2007 21:55 Milan Beneš | skóre: 17 | blog: Kraft_durch_Freude
Rozbalit Rozbalit vše Re: HTB neomezuje rychlost
Traffic shaping v linuxu umožňuje skutečně omezovat jenom odchozí provoz na síťovém rozhraní (zjednodušeně řečeno). Pokud mám ovšem router, tak pro LAN za ním můžu omezovat jak download tak upload. Download omezuju na rozhraní do LAN (což je pro tu kartu upstream) a upload omezuju na kartě do netu (z hlediska té karty se též jedná o upstream). Vybuduju si tedy dva stromy, na eth2 pro downstream a na eth0 pro upstream. Potom by to mělo vypadat cca takto:

UPRATE=128 DOWNRATE=256
#    --upstream--
tc qdisc del dev eth0 root
tc qdisc add dev eth0 root handle 1:0 htb
tc class add dev eth0 parent 1:0 classid 1:1 htb rate ${UPRATE}kbit quantum 1500

tc class add dev eth0 parent 1:1 classid 1:11 htb rate $[${UPRATE}/4]kbit ceil ${UPRATE}kbit quantum 1500
tc class add dev eth0 parent 1:1 classid 1:12 htb rate $[${UPRATE}/4]kbit ceil ${UPRATE}kbit quantum 1500
tc class add dev eth0 parent 1:1 classid 1:13 htb rate $[${UPRATE}/4]kbit ceil ${UPRATE}kbit quantum 1500
tc class add dev eth0 parent 1:1 classid 1:14 htb rate $[${UPRATE}/4]kbit ceil ${UPRATE}kbit quantum 1500 

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 

#    --downstream--
tc qdisc del dev eth2 root
tc qdisc add dev eth2 root handle 1:0 htb
tc class add dev eth2 parent 1:0 classid 1:1 htb rate ${DOWNRATE}kbit quantum 1500

tc class add dev eth2 parent 1:1 classid 1:11 htb rate $[${DOWNRATE}/4]kbit ceil ${DOWNRATE}kbit quantum 1500
tc class add dev eth2 parent 1:1 classid 1:12 htb rate $[${DOWNRATE}/4]kbit ceil ${DOWNRATE}kbit quantum 1500
tc class add dev eth2 parent 1:1 classid 1:13 htb rate $[${DOWNRATE}/4]kbit ceil ${DOWNRATE}kbit quantum 1500
tc class add dev eth2 parent 1:1 classid 1:14 htb rate $[${DOWNRATE}/4]kbit ceil ${DOWNRATE}kbit quantum 1500 

tc qdisc add dev eth2 parent 1:11 handle 11:0 sfq perturb 10
tc qdisc add dev eth2 parent 1:12 handle 12:0 sfq perturb 10
tc qdisc add dev eth2 parent 1:13 handle 13:0 sfq perturb 10
tc qdisc add dev eth2 parent 1:14 handle 14:0 sfq perturb 10 

#    --filtering--
tc filter add dev eth0 parent 1:0 protocol ip handle 1 fw flowid 1:11
tc filter add dev eth0 parent 1:0 protocol ip handle 2 fw flowid 1:12
tc filter add dev eth0 parent 1:0 protocol ip handle 3 fw flowid 1:13
tc filter add dev eth0 parent 1:0 protocol ip handle 4 fw flowid 1:14 

tc filter add dev eth2 parent 1:0 protocol ip handle 1 fw flowid 1:11
tc filter add dev eth2 parent 1:0 protocol ip handle 2 fw flowid 1:12
tc filter add dev eth2 parent 1:0 protocol ip handle 3 fw flowid 1:13
tc filter add dev eth2 parent 1:0 protocol ip handle 4 fw flowid 1:14 
Potud to bylo jenom zobecnění Tvého skriptu. Důvod, proč to nechodilo, byl ve špatném markování. Musíš si uvědomit, že si shapoval odchozí traffic na eth2 a markoval jsi v prvním kroku všechny pakety forwardované routerem značkou "4", potud je to OK, ale potom jsi markoval jenom příchozí forwardované pakety značkami 1,2,3. To proto, že tam máš podmínku -d, čili cílovou IP. Aby to chodilo, musel bys použít -s. Nicméně pro můj skript je třeba markování rozšířit, pro oba směry, jenom to číslo "4" může zůstat, to platí obecně. Takže za iptables část by pak vypadala takto:

iptables -t mangle -A FORWARD -j MARK --set-mark 4

iptables -t mangle -A FORWARD -i eth0 -d 10.176.0.34 -j MARK --set-mark 1
iptables -t mangle -A FORWARD -i eth0 -d 10.176.0.71 -j MARK --set-mark 2
iptables -t mangle -A FORWARD -i eth0 -d 10.176.0.2  -j MARK --set-mark 3 

iptables -t mangle -A FORWARD -o eth0 -s 10.176.0.34 -j MARK --set-mark 1
iptables -t mangle -A FORWARD -o eth0 -s 10.176.0.71 -j MARK --set-mark 2
iptables -t mangle -A FORWARD -o eth0 -s 10.176.0.2  -j MARK --set-mark 3 
jinak pomocí watch -n 1 iptables -t mangle -L -v -n ověříš markování

a pomocí watch -n 1 tc -s class show dev eth0 resp. watch -n 1 tc -s class show dev eth2

ověříš rozhazování paktů do tříd.

zatím
1.9.2007 22:08 Rycmond | skóre: 10 | Úpice
Rozbalit Rozbalit vše Re: HTB neomezuje rychlost
jj tak ted to chapu :-) dekuji moc za pomoct uz me to funguje jak ma

zatím
1.9.2007 22:09 Milan Beneš | skóre: 17 | blog: Kraft_durch_Freude
Rozbalit Rozbalit vše Re: HTB neomezuje rychlost
Jo, ještě něco. pokud budeš používat VoIP, zauvažuj raději o HFSC.
3.9.2007 15:15 Rycmond | skóre: 10 | Úpice
Rozbalit Rozbalit vše Re: HTB neomezuje rychlost
ja jsem potreboval omezit jednoho sosace v nasi siti , ale stemi VoIP se budu muset asi taky casem zbyvat ja jsem jen nejak nemohl pochopit jak omezit prichozi data kdyz HTB omezuje odchozi ( ale uz to chapu , jak jednoduche:-) ) tak jeste jednou dekuji za radu
2.9.2007 12:43 zippy
Rozbalit Rozbalit vše Re: HTB neomezuje rychlost
Nie je mi celkom jasne, ako by si chcel obmedzovat downstream. Jedine tak, ze obmedzim upstream, nie?
2.9.2007 18:15 Milan Beneš | skóre: 17 | blog: Kraft_durch_Freude
Rozbalit Rozbalit vše Re: HTB neomezuje rychlost
Na ingress se toho moc pověsit nedá, nicméně se podívej na projekty IMQ a IFB. Pokud mám průchozí router, kterej sám o sobě negeneruje žádnej nebo zanedbatelnej provoz, tak viz. můj dlouhý příspěvek.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.