[Sysadmins] shaping inside Openvz VPS

Afanasov Dmitry ender на atrus.ru
Ср Янв 23 12:52:56 MSK 2008


On Wed, Jan 23, 2008 at 09:24:59AM +0200, Serg Rychka wrote:
> Здравствуйте,
> 
> Зачем все так сложно? Htb достаточно гибкая дисциплина. опишите,
> как вам нужно делить трафик между вашими un0 & hm0? или что
> подразумевается :"поднять shaper так на un0 и hm0 да так, чтобы
> он функционировал как на одном"? если поровну поделить канал -
> поставьте одинакоывй ceil=maxBW и rate=1/2maxBW (не забывая о
> том, что вышестоящий пров тоже шейпит и не отдаст больше)
именно "поднять shaper так на un0 и hm0 да так, чтобы он функционировал
как на одном" и подразумевается :)

то есть в отсутствие трафика на hm0 un0 должен отдаваться весь канал -
256Kbit, если не говорил ранее. тоже самое при отсутсвии трафика на un0. 

как я понял и доки такое происходит на одном iface.

к слову сказать настройки просты до безобразия - сваяны были, когда
torrent у брата совсем достал.

вот /etc/rc.d/rc.shape, запускаемый из rc.local:
tc qdisc add dev eth0 handle 1:0 root htb default 1 
tc class add dev eth0 classid 1:1 root htb rate 100Mbit ceil 100Mbit # для всего остального 
tc class add dev eth0 classid 1:2 root htb rate 278528bit # internet

# в ip route есть строка 
# default via 10.254.254.2 dev dsl0 realm inet
# filter натравлен на траф, приходящий по этому realm
tc filter add dev eth0 parent 1:0 protocol ip prio 100 route from inet flowid 1:2


# где-то вычитал о подобном шаманстве. 
tc qdisc add dev eth0 handle 2:0 parent 1:2 htb default 4

# пользовательский класс
tc class add dev eth0 classid 2:1 parent 2:0 htb rate 262144bit burst 27852

# класс для hm0
tc class add dev eth0 classid 2:2 parent 2:1 htb rate 131072bit ceil 262144bit prio 9 burst 13925

# кдасс для un0
tc class add dev eth0 classid 2:3 parent 2:1 htb rate 65536bit ceil 262144bit prio 5 burst 6962

# default класс для "левых" - ходют тут ещё человека три у меня
tc class add dev eth0 classid 2:4 parent 2:1 htb rate 65536bit ceil 262144bit prio 1 burst 6962

tc filter add dev eth0 parent 2:0 protocol ip prio 100 u32 match ip dst 10.167.2.1/32 flowid 2:2 # hm0
tc filter add dev eth0 parent 2:0 protocol ip prio 110 u32 match ip dst 10.254.1.0/24 flowid 2:2 # остальные vps
tc filter add dev eth0 parent 2:0 protocol ip prio 110 u32 match ip dst 10.254.0.0/24 flowid 2:2 # HN

tc filter add dev eth0 parent 2:0 protocol ip prio 150 u32 match ip dst 192.168.1.219/32 flowid 2:3 # брат из un0

tc qdisc add dev eth0 parent 1:1 sfq
tc qdisc add dev eth0 parent 2:2 sfq
tc qdisc add dev eth0 parent 2:3 sfq

теперь вопрос как такую функциональность реализовать на независимых
iface'ах. как я понял именно для этого imq и испольуется. но вот почему-то
мне кажется, что он будет посложнее qdisc inside VPS :)

хотя все равно ядро для esfq пересобирать, может потом и его воткну.

-- 
 С уважением
 Афанасов Дмитрий


Подробная информация о списке рассылки Sysadmins