URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 82406
[ Назад ]

Исходное сообщение
"шейпер на несколько адрессов."

Отправлено asidko , 15-Окт-08 07:31 

Привет всем. Подскажите как сделать?

Есть небоьшой роутер нп linux slackware Все работает замечательно, но появились в локалке пользователи которые что-то качают забивая почти всю полосу до провайдлера, как следствие остальные в это время "нервно курят в стороне". В сетке у меня маскарадинг, работают не через прокси. Так надо.
Подскажите, может быть есть возмлжность установить шейпер средствами линукса только на определенные ip адресса?

Андрей.


Содержание

Сообщения в этом обсуждении
"шейпер на несколько адрессов."
Отправлено Z0termaNN , 15-Окт-08 10:33 
>[оверквотинг удален]
>Привет всем. Подскажите как сделать?
>
>Есть небоьшой роутер нп linux slackware Все работает замечательно, но появились в
>локалке пользователи которые что-то качают забивая почти всю полосу до провайдлера,
>как следствие остальные в это время "нервно курят в стороне". В
>сетке у меня маскарадинг, работают не через прокси. Так надо.
>Подскажите, может быть есть возмлжность установить шейпер средствами линукса только на определенные
>ip адресса?
>
>Андрей.

вариантов масса.
- можно резать каким-нибудь планировщиком,
- можно traffic policing,
- на худой конец, если особенная точность не нужна, то можно резать и iptables.

тебе попроще или покрасивше ?


"шейпер на несколько адрессов."
Отправлено den , 15-Окт-08 11:58 
man tc



"шейпер на несколько адрессов."
Отправлено asidko , 15-Окт-08 21:04 
>man tc

спасибо за информацию.
Случай а у тебя есть примеры скрипта, (или реально работающий).
Буду очень благодарен.

Спасибо.


"шейпер на несколько адрессов."
Отправлено asidko , 15-Окт-08 21:00 
>[оверквотинг удален]
>>
>>Андрей.
>
>вариантов масса.
>- можно резать каким-нибудь планировщиком,
>- можно traffic policing,
>- на худой конец, если особенная точность не нужна, то можно резать
>и iptables.
>
>тебе попроще или покрасивше ?

Мне проще.
Особенно "наворачивать" не вижу смысла да и не хочу.

Спасибо.


"шейпер на несколько адресов."
Отправлено Z0termaNN , 16-Окт-08 10:32 
>
>Мне проще.
>Особенно "наворачивать" не вижу смысла да и не хочу.
>
>Спасибо.

значится так:
- внутренний интерфейс eth1
- злостные нарушители внутреннего распорядка 192.168.1.12 & 192.168.1.28

1. Самое простое

iptables --new-chain shaper
iptables --append shaper -m limit --limit 50/sec --jump RETURN
iptables --append shaper --jump DROP

iptables --append FORWARD -o eth1 --destination 192.168.1.12 --jump shaper
iptables --append FORWARD -o eth1 --destination 192.168.1.28 --jump shaper

здесь мы этих нарушителей задавилли до 50 пакетов в секунду, если учитывать что
средний размер пакета, например 1000 байт, то приблизительно получается 50 килобайт
в секунду.

2. Используем policing

tc qdisc add dev eth1 root handle 1: prio bands 3 priomap 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
tc qdisc add dev eth1 parent 1:0 handle 1:10 sfq

tc filter add dev eth1 1:0 protocol ip u32 match ip dst 192.168.1.12 classid 1:10 police rate 50kbit drop
tc filter add dev eth1 1:0 protocol ip u32 match ip dst 192.168.1.28 classid 1:10 police rate 60kbit drop

здесь правда удается зацепляться только по отдельности за каждый адрес, поэтому мы творчески переработаем следующим образом

3. tbf

tc qdisc add dev eth1 root handle 1: prio bands 3 priomap 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
tc qdisc add dev eth1 parent 1:0 handle 1:10 sfq
tc qdisc add dev eth1 parent 1:0 handle 1:20 tbf rate 120kbit burst 12kb peakrate 160kbit
tc filter add dev eth1 1:0 protocol ip u32 match ip dst 192.168.1.12 classid 1:20
tc filter add dev eth1 1:0 protocol ip u32 match ip dst 192.168.1.28 classid 1:20



"шейпер на несколько адресов."
Отправлено asidko , 16-Окт-08 16:54 
>[оверквотинг удален]
>tc qdisc add dev eth1 root handle 1: prio bands 3 priomap
>0 0 0 0 0 0 0 0 0 0 0
>0 0 0 0
>tc qdisc add dev eth1 parent 1:0 handle 1:10 sfq
>tc qdisc add dev eth1 parent 1:0 handle 1:20 tbf rate 120kbit
>burst 12kb peakrate 160kbit
>tc filter add dev eth1 1:0 protocol ip u32 match ip dst
>192.168.1.12 classid 1:20
>tc filter add dev eth1 1:0 protocol ip u32 match ip dst
>192.168.1.28 classid 1:20

Спасибо огромное!

Андрей.