OpenVZ Forum


Home » International » Russian » Шейпирование трафика
Шейпирование трафика [message #41189] Thu, 09 December 2010 16:06 Go to next message
cac2s is currently offline  cac2s
Messages: 5
Registered: December 2010
Junior Member
From: atoll-ama.com
имеется:
* debian squeeze
* eth0 - wan
* eth1 - lan (192.168.1.0/24)
* venet0 - dmz-зона для контейнеров

нужно:
* пакеты, идущие в dmz: rate=max_rate/3, ceil=max_rate
* пакеты, идущие в lan: rate=max_rate*2/3, ceil=max_rate
* исходя из вышеизложенного: каждая из подсетей может "одалживать" другой неиспользуемые ею "ресурсы"

догадки:
поскольку хочется именно динамически шейпить подсети - понимаю, что нужно это делать до eth1|venet0

но:
* перенаправлять пакеты с eth0 на ifb бессмысленно, ибо ifb "лежит" до nat'а, а значит раскидать трафик по классам в зависимости от dst не получится
* можно перенаправить с eth0 на imq, а после раскидывать по классам, но для этого нужно патчить ядро, чего очень не хочется

прошу:
подсказать <другие варианты>/<упущенные мною моменты> для реализации задуманного

попытки:
попробовал входящий venet'а на ifb
$TC qdisc del dev venet0 root >/dev/null 2>&1
$TC qdisc del dev venet0 ingress >/dev/null 2>&1
$TC qdisc del dev ifb0 root >/dev/null 2>&1
$TC qdisc del dev ifb0 ingress >/dev/null 2>&1

$TC qdisc add dev venet0 ingress
$TC filter add dev venet0 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0

$TC qdisc add dev ifb0 root handle 1: htb default 10
$TC class add dev ifb0 parent 1: classid 1:10 htb rate 800kbit ceil 800kbit
    $TC qdisc add dev ifb0 parent 1:10 handle 10: sfq perturb 5

ifconfig ifb0 up

эффекта ноль Sad
Re: Шейпирование трафика [message #41228 is a reply to message #41189] Wed, 15 December 2010 11:44 Go to previous message
cac2s is currently offline  cac2s
Messages: 5
Registered: December 2010
Junior Member
From: atoll-ama.com
поборол!

#!/bin/bash

IPT="/sbin/iptables"
TC="/sbin/tc"
IP="/bin/ip"

$TC qdisc del dev venet0 root >/dev/null 2>&1
$TC qdisc del dev venet0 ingress >/dev/null 2>&1
$TC qdisc del dev ifb0 root >/dev/null 2>&1
$TC qdisc del dev ifb0 ingress >/dev/null 2>&1

$IP link set ifb0 down
rmmod ifb
modprobe ifb numifbs=1
$IP link set ifb0 up

==========
==========
$TC qdisc add dev venet0 root handle 1: prio
$TC qdisc add dev venet0 ingress
    $TC filter add dev venet0 parent 1: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0
==========
==========

$TC qdisc add dev ifb0 root handle 1: htb
$TC class add dev ifb0 parent 1: classid 1:10 htb rate 80kbit ceil 80kbit
    $TC qdisc add dev ifb0 parent 1:10 handle 10: sfq perturb 5
    $TC filter add dev ifb0 parent 1: prio 10 protocol ip u32 match ip dst 192.168.254.254 flowid 1:10
Previous Topic: *NIX + mysql + nginx - Виртуальный или реальный?
Next Topic: VLAN+разные сети+ ОпенВЗ
Goto Forum:
  


Current Time: Sat Nov 17 19:19:37 GMT 2018