|
lug-bg: отново за... шейпър
- Subject: lug-bg: отново за... шейпър
- From: Атанас Мавров / Atanas Mavrov <bugar@xxxxxxxxxxxx>
- Date: Sat, 26 Aug 2006 22:45:23 +0300
- Delivered-to: lug-bg-list@xxxxxxxxxxxxxxxxxx
- Delivered-to: lug-bg@xxxxxxxxxxxxxxxxxx
Здравейте,
знам, че тази тема е разисквана мнооого, постарах се да прочета каквото
намерих и направих едно "произведение", но за съжаление не работи коректно.
Та ако някой има малко време бих го помолил да ми каже къде бъркам. И така
става въпрос за една малка мрежа в която трябва да разпределя нет -а по
равно на всички. Ето какво съм направил до тук:
TC=/usr/sbin/tc
#lan interface
dev_lan=eth0
#net interface
dev_inet=eth1
# това е скоростта за теглене (доставчика както може би се сетихте е... бтк)
d_speed=2048
u_speed=512
#броя на потребителите
$users=xxx
$TC qdisc del dev $dev_lan root &>/dev/null
$TC qdisc del dev $dev_inet root &>/dev/null
#root disc
$TC qdisc add dev $dev_lan root handle 1: htb default 1000
$TC qdisc add dev $dev_inet root handle 2: htb default 1001
$TC class add dev $dev_lan parent 1: classid 1:1 htb rate ${d_speed}kbit ceil
${d_speed}kbit
$TC class add dev $dev_inet parent 2: classid 2:1 htb rate ${u_speed}kbit ceil
${u_speed}kbit
#general download class
$TC class add dev $dev_lan parent 1:1 classid 1:2 htb rate
$[$d_speed/$users]kbit ceil ${d_speed}kbit
#general upload class
$TC class add dev $dev_inet parent 2:1 classid 2:2 htb rate
$[$u_speed/$users]kbit ceil ${u_speed}kbit
$TC qdisc add dev $dev_lan parent 1:2 sfq perturb 10
$TC qdisc add dev $dev_inet parent 2:2 sfq perturb 10
От тук нататък съм сложил филтрите които изглеждат по един и същи начин:
$TC filter add dev $dev_lan parent 1: protocol ip prio 1 handle 101 fw classid
1:2
$TC filter add dev $dev_inet parent 2: protocol ip prio 1 handle 1 fw classid
2:2
...
...
$TC class add dev $dev_lan parent 1: classid 1:1000 htb rate
$[$d_speed/$users]Kbps
$TC class add dev $dev_inet parent 2: classid 2:1001 htb rate
$[$u_speed/$users]Kbps
Ето как съм направил маркирането на пакетите (ще покажа само за един
потребител, защото нещата са идентични):
За изходящия трафик:
iptables -t mangle -A FORWARD -s 1.2.3.4 -j MARK --set-mark 1
За теглене:
iptables -t mangle -A POSTROUTING -s ! 1.2.3.4 -d 1.2.3.4 -j MARK --set-mark
102
Ами това е... приемам всякакви съвети и предложения :-)
Благодаря!
|
|
|