Re: Ограничение вх/исх скорости VPN подключения
On Tue, 2009-07-28 at 14:20 +0700, Vladi wrote:
Подскажите, есть ли способ ограничить скорость трафика одновременно
исходящего и входящего.
Если у вас стоит vpn сервер между вашими клиентами и интернет, то для
него любой трафик является исходящим (в какой-то момент. Понятно что
сначала он приходит, потом уходит). Шейпить исходящий трафик советуют с
помощью дисциплины HTB.
К слову, хорошая дока: HTB 3 performance compared
http://luxik.cdi.cz/~devik/qos/htb/htb3perf/cbqhtb3perf.htm
Шейпить входящий трафик не советуют, это было бы нужно, насколько я
понимаю, если бы и vpn сервер и torrent клиент были бы на одной и той же
машине (что было бы очень странно, да и в этом случае входящий трафик
лучше было бы шейпить с помощью torrnet клиента)
>> Зажал исходящий трафик (помечаю пакеты идущие от
>> vpn clients в internet и потом по htb их зажимаю до 30 кбит).
>> Работает :) Но хотелось бы выделить те же 200 кбит одному ip "на всё",
Не уверен, что правильно понял ваш вопрос. Тем не менее:
Когда ваши клиенты подключаются к openvpn, они получают новый IP, его
можно сделать постоянным для каждого пользователя (берется из имени
файла сертификата, если идет авторизация по x.509).
http://www.opennet.ru/base/net/openvpn_x509.txt.html
А шейпить можно не "eth0", а "tapX", который можно указать в конфиге
openvpn:
ovpn.conf
local xx.xx.xx.xx
dev tapX #<---
port 80
...
ifconfig 192.168.1.5 255.255.1.0
ifconfig-pool 192.168.1.8 192.168.1.9
...
ifconfig-pool - указывает пул адресов, которые будут выданы "бесхозным"
клиентам (с ошибочным сертификатом) динамически (в этом варианте
предполагается что таких быть не должно). Хотя можно дать и больший
диапазон, если хотите всем давать каждый раз разный ip.
Речь идет о внутренних ip 192... (их можно шейпить), внешний может быть
один.
Пример конфига TC:
tap4_del
#!/bin/bash
tc qdisc del dev tap4 root
tap4_on
#!/bin/bash
tc qdisc add dev tap4 root handle 4: htb default 9944
tc class add dev tap4 parent 4: classid 4:9994 htb rate 1mbps burst 150k
tc class add dev tap4 parent 4:9994 classid 4:9944 htb rate 64kbps ceil
128kbps burst 150k
tc qdisc add dev tap4 parent 4:9944 handle 9944: sfq perturb 10
#...............................................................................................................
tc class add dev tap4 parent 4:9994 classid 4:41 htb rate 64kbps ceil
128kbps burst 150k
tc class add dev tap4 parent 4:9994 classid 4:42 htb rate 64kbps ceil
128kbps burst 150k
tc class add dev tap4 parent 4:9994 classid 4:43 htb rate 64kbps ceil
128kbps burst 150k
...
tc qdisc add dev tap4 parent 4:41 handle 41: sfq perturb 10
tc qdisc add dev tap4 parent 4:42 handle 42: sfq perturb 10
tc qdisc add dev tap4 parent 4:43 handle 43: sfq perturb 10
...
tc filter add dev tap4 parent 4: protocol ip prio 1 u32 match ip src
192.168.1.1 flowid 4:41
tc filter add dev tap4 parent 4: protocol ip prio 1 u32 match ip src
192.168.1.2 flowid 4:42
tc filter add dev tap4 parent 4: protocol ip prio 1 u32 match ip src
192.168.1.3 flowid 4:43
При этом вы можете и для eth0 иметь доп. правила, если они вам нужны.
Удачи.
--
Sincerely,
Nicholas
Reply to: