LINUX.ORG.RU

Помогите по шейперу


0

0

Привет. Есть машина с eth0 = 222.0.0.1 и eth0:1 223.0.0.1, оба интерфейса смотрят в интернет. За 223.0.0.1 находятся еще 100 машин - 223.0.0.100, 223.0.0.101, ... 223.0.0.199, для них 223.0.0.1 - шлюз в интернет Задача - ограничение полосы пропускания (входящей и исходящей) для каждой из 223.0.0.100, 223.0.0.101, ... 223.0.0.199 машин с использованием tc HTB или чего-то подобного. Никаких qos, никаких разграничений по протоколам, просто выделение полосы для каждой машины. Например, 223.0.0.100 - 1mbps in/out 223.0.0.101 - 10mbps in/out 223.0.0.102 - 5mbps in/out 223.0.0.103 - 1mbps in/out

Подскажите, пожалуйста, как это грамотнее сделать?

Спасибо

Ответ на: комментарий от Zhbert

нет, никакого squid-a.

Надо с помощью tc htb/qdisk, как я подозреваю

moskovitter
() автор топика

гугли htbinit, там все очень просто

Deleted
()

Использую такой скрипт:

------start-------- #!/bin/sh

UPLINK=$1

DOWNLINK=$2

IFNAME=$3

/sbin/tc qdisc del dev $IFNAME root > /dev/null

/sbin/tc qdisc del dev $IFNAME ingress > /dev/null

###### uplink

# install root HTB, point default traffic to 1:20:

/sbin/tc qdisc add dev $IFNAME root handle 1: htb default 20 r2q 1

/sbin/tc class add dev $IFNAME parent 1: classid 1:1 htb rate ${UPLINK}kbit burst 4k

/sbin/tc class add dev $IFNAME parent 1:1 classid 1:10 htb rate ${UPLINK}kbit burst 4k prio 1

/sbin/tc class add dev $IFNAME parent 1:1 classid 1:20 htb rate ${UPLINK}kbit burst 4k prio 2

/sbin/tc qdisc add dev $IFNAME parent 1:10 handle 10: sfq perturb 10 quantum 1500

/sbin/tc qdisc add dev $IFNAME parent 1:20 handle 20: sfq perturb 10 quantum 1500

/sbin/tc filter add dev $IFNAME parent 1:0 protocol ip prio 10 u32 match ip tos 0x10 0xff flowid 1:10

/sbin/tc filter add dev $IFNAME parent 1:0 protocol ip prio 10 u32 match ip protocol 1 0xff flowid 1:10

/sbin/tc filter add dev $IFNAME parent 1: protocol ip prio 10 u32 match ip protocol 6 0xff match u8 0x05 0x0f at 0 match u16 0x0000 0xffc0 at 2 match u8 0x10 0xff at 33 flowid 1:10

########## downlink #############

/sbin/tc qdisc add dev $IFNAME handle ffff: ingress

/sbin/tc filter add dev $IFNAME parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate ${DOWNLINK}kbit burst 12k drop flowid :1 ------end--------

Для ограничения down скорости работает на ура. Но upload скорость режется как-то очень странно:

Ставлю 32 kbit, -нормально, получается ~4K/sec speed. Ставлю 128 kbit, скорость нестабильная, около 6-24K/sec Ставлю 1024 kbit, скорость upload 24K/sec Ставлю 2048 kbit, скорость upload 24K/sec опять (причем ограничение download работает во всех случаях верно!)

что тут надо поправить, чтоб upload тоже резался корректно? Спасибо

moskovitter
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.