Ярлыки

Memories ( 25 ) Unix ( 14 ) FreeBSD ( 8 ) www ( 4 ) Scripts ( 3 ) GEOM ( 2 ) PART ( 2 ) smtp ( 2 ) Cacti ( 1 ) Jabber ( 1 ) KVM ( 1 ) Kohana ( 1 ) RAID ( 1 ) Sip ( 1 ) Ubuntu ( 1 ) Zyxel ( 1 ) nginx ( 1 ) php-fpm ( 1 ) portwfd ( 1 ) rewrite ( 1 ) security ( 1 )

Поиск по этому блогу

среда, 9 февраля 2011 г.

iptables shaper

Cкрипт htb.init который можно скачать тут sourceforge.net/projects/htbinit/
sudo cp htb.init /etc/init.d/htb
sudo chmod +x /etc/init.d/htb
sudo update-rc.d htb defaults

В папке, в которую указывает HTB_PATH, (лично я поправил эту переменую и у меня получилось /etc/htb, естественно этой папки в системе нет ее нужно создать) создаем следующие файлы:
eth1:
R2Q=20
DEFAULT=0

R2Q — коэффициент, определяющий соотношение точности/скорости работы шейпера
DEFAULT — идентификатор класса, в который попадают пакеты, если они не попадают под другие правила. Класс с идентификатором 0 существует всегда и пропускает пакеты без всякого шейпинга, то есть на полной скорости.
Этим файлом мы инициализировали шейпер на интерфейсе eth0.
eth1-2.root:
RATE=24Mbit
Этим файлом мы создали корневой класс траффика на интерфейсе eth0 и ограничили максимальную скорость отдачи через этот класс 24 мегабитами.
eth1-2:2001:
RATE=512Kbit
CEIL=24Mbit
LEAF=sfq
RULE=10.2.2.10/24

Этим файлом мы создали класс для первого клиента.
RATE — гарантируемая скорость для клиента. Поскольку в нашем случае не нужно гарантировать никакой скорости, но HTB этого требует, исходим из неравенства: 24000Кбит / 3 > RATE.
CEIL — максимальная скорость для клиента при свободном канале.
LEAF — указывает, что класс является одним из листов дерева, то есть в него попадает трафик, удовлетворяющий определенному правилу (RULE). Параметр sfq означает, что мы хотим, чтобы внутри этого класса скорость распределялась равномерно между сессиями.
RULE — правило, задающее, какой трафик будет попадать в этот класс (см. Замечание 1). В данном случае в класс попадает весь трафик, имеющий IP назначения от 10.2.2.10 до 10.2.2.255.
О назначении и значениях параметров, которые указываются в файлах, и о именах файлов можно узнать из скрипта htb.init — там вверху есть неплохая справка.
Стартуем наш шейпер
sudo /etc/init.d/htb start
Всё, шейпер включен. Далее, если что-то изменится в конфигруации, нужно сделать /etc/init.d/htb restart.
Проверить работу скрипта htb.init, кроме спидтестов, можно просмотром конфигурации командами:
tc class show dev eth1
tc qdisc show dev eth1

Взято с Хабры

Комментариев нет :

Отправить комментарий