среда, 2 ноября 2011 г.

Ограничение скорости по ip


Была задача ограничить скорость интернета одного пользователя в сети.
Нашел решение тут: http://www.tangarus.ru/61/linux/ogranichenie-skorosti-kanalashaping-v-linux/
 
eth1 - Интерфейс на в локальную сеть
192.168.200.31 - ip пользователя в локальной сети

#!/bin/bash
#Обнуляем корневой класс
tc qdisc del dev eth1 root
tc qdisc del dev eth1 handle ffff: ingress
 
#Создаём корневой класс исходя из скорости канала в Интернет 10Мбит для входящего трафика...
tc qdisc add dev eth1 root handle 1: cbq avpkt 1000 bandwidth 10mbit
#... и для исходящего
tc qdisc add dev eth1 handle ffff: ingress
 
#Пользователь 1
USR1IP=192.168.200.31
USR1ID=1 #код потока пользователя, д.б. уникальный для каждого
USR1DOWNSPD=1024 #Ограничение входящей скорости
USR1UPSPD=512 #Ограничение исходящей скорости
let USR1UPSPDBSRT=$USR1UPSPD*1024
#Режим входящий трафик
tc class add dev eth1 parent 1: classid 1:$USR1ID cbq rate $USR1DOWNSPD\kbit allot 1500 prio 5 bounded isolated
tc filter add dev eth1 parent 1: protocol ip prio 16 u32 match ip dst $USR1IP flowid 1:$USR1ID
tc qdisc add dev eth1 parent 1:$USR1ID sfq perturb 10
#Режим исходящий трафик
tc filter add dev eth1 parent ffff: protocol ip prio 50 u32 match ip src $USR1IP/32 police rate $USR1UPSPD\Kbit burst $USR1UPSPDBSRT drop flowid :$USR1ID


Другая реализация ограничение скорости интернета для пользователей в сети
http://sudouser.com/nastrojka-ogranicheniya-i-raspredeleniya-kanala-htb-shaper.html

Установка и настройка биллинговой системы Stargazer

http://notes.ghost.dn.ua/node/66

4 комментария:

ProIgry комментирует...

Спасибо за инфу, ток вы не подумали, что таким вопросом может заинтересоваться не только системщик, а и вполне простой обыватель, со стабильно хорошим знанием компа, но не ВАХХХ...
Каму вы пишите?
Хоть бы описание сделали что это, куда это, как запихивать???

Оценка статье -1.
Уж извините но 5кой здесь не пахнет, научитесь писать "для людей".

_____
ProIgry

Alexey Kostryukov комментирует...

все пишется для себя.

простой обыватель со стабильным хорошим знанием компа мог бы и догадаться что команды вводятся в терминал)

а для ленивых объединяются в скрипт.

Unknown комментирует...

Подскажи пожалуйста, что нужно изменить в скриптике, чтоб ограничить скорость всем ip кроме некотрых.
или нужно что-то придумывать...

Alexey Kostryukov комментирует...

лучше поставь squid
это решение костыльное.