Чём нонче модно трафик балансировать?Бяда!!! Есть штук 100 VPN каналов на tap_ках, от tap0 до tap100, tap0 служебный.
Внутри каждой VPN, помимо прочего, работает некое подобие tftp - сервер раздачи апдейтов, 2 файла по 15 мегов.Так вот, каналы у народа разные, от 512к до 10M, наш исходящий тоже 10M.
Естественно народ с жирным каналом забивает весь трафик на время скачивания.Как бы всё это дело сбалансировать?
У VPN порты от 2000 до 3000. Между ними и надо равномерно раскидывать данные в зависимости от нагрузки.
Не обрезая максимальную скорость. То есть, если никого, кроме одного линка нет, то выдавать ему по максимальной.---
htb rate $MIN ceil $MAX;
так чтоля?!
Deleted....
> У VPN порты от 2000 до 3000. Между ними и надо равномерно
> раскидывать данные в зависимости от нагрузки.
> Не обрезая максимальную скорость. То есть, если никого, кроме одного линка нет,
> то выдавать ему по максимальной.
> ---
> htb rate $MIN ceil $MAX;
> так чтоля?!http://forum.nag.ru/forum/index.php?showtopic=61755
>> У VPN порты от 2000 до 3000. Между ними и надо равномерно
>> раскидывать данные в зависимости от нагрузки.
>> Не обрезая максимальную скорость. То есть, если никого, кроме одного линка нет,
>> то выдавать ему по максимальной.
>> ---
>> htb rate $MIN ceil $MAX;
>> так чтоля?!
> http://forum.nag.ru/forum/index.php?showtopic=61755Спасибо, но уже ... :)
#!/bin/sh
TC="tc"
MAINDEV="br65545"
ALLSPEED="100000kbit"
BURST="15k"
GRANT="2kbit"
MAXSPEED="6144kbit"function mainsetup() {
$TC qdisc add dev $MAINDEV root handle 1: htb default 20;
$TC class add dev $MAINDEV parent 1: classid 1:1 htb rate $ALLSPEED burst $BURST;
$TC class add dev $MAINDEV parent 1:1 classid 1:10 htb rate $GRANT ceil $MAXSPEED burst $BURST prio 1;
$TC class add dev $MAINDEV parent 1:1 classid 1:20 htb rate $MAXSPEED ceil 9900kbit burst $BURST prio 0;
$TC qdisc add dev $MAINDEV parent 1:10 handle 10: sfq perturb 10;
$TC qdisc add dev $MAINDEV parent 1:20 handle 20: sfq perturb 10;
}
function mainclass() {
VPNPORTS="1 2 3 4 5 6"
TCP32="tc filter add dev $MAINDEV protocol ip parent 1:0 prio 1 u32"
for i in $VPNPORTS;
do
$TCP32 match ip sport $i 0xffff flowid 1:10;
done
}function clean() {
$TC qdisc del dev $MAINDEV root;
}case $1 in
start)
mainsetup;
mainclass;
;;
stop)
clean
;;
*)
exit 1;
esacexit 0;
Единственное я так и не в курил про HTB burst
>[оверквотинг удален]
> ;;
> stop)
> clean
> ;;
> *)
> exit 1;
> esac
> exit 0;
>
И как шейпит? Пакеты не теряет, гарантированный канал есть?
>[оверквотинг удален]
>> stop)
>> clean
>> ;;
>> *)
>> exit 1;
>> esac
>> exit 0;
>>
>> Единственное я так и не в курил про HTB burst
> И как шейпит? Пакеты не теряет, гарантированный канал есть?Гарантированный 32kbit
# tc -s qdisc ls dev eth0
qdisc htb 1: root refcnt 2 r2q 10 default 20 direct_packets_stat 2
Sent 888758703 bytes 1311732 pkt (dropped 0, overlimits 256316 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0qdisc sfq 10: parent 1:10 limit 127p quantum 1514b perturb 10sec
Sent 873558743 bytes 1286395 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0qdisc sfq 20: parent 1:20 limit 127p quantum 1514b perturb 10sec
Sent 15198301 bytes 25335 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
Мне это нужно только с целью распределения нагрузки на время скачивания апдейтов.
Так как помимо скачивания работают сами приложения, а от них трафик мизерный - от 2 до 25k раз в 10 секунд.Но надо экспериментальным путём подбирать константы по вашу сеть.
сейчас вот так
ALLSPEED="15Mbit"
BURST="19k"
GRANT="32kbit"
MAXSPEED="256kbit"---
Кстати, что такое overlimits у HTB ? :)
И вопрос про правильный burst так и не решён.
> Кстати, что такое overlimits у HTB ? :)
> И вопрос про правильный burst так и не решён.павлин тебе не стыдно -- мануал-жеж исчерпывающий
>> Кстати, что такое overlimits у HTB ? :)
>> И вопрос про правильный burst так и не решён.
> павлин тебе не стыдно -- мануал-жеж исчерпывающийНет чтоб напомнить, заставляешь дедушку по мануалам лазить... :-Ж