LINUX.ORG.RU

Читай про утилиту tc.

rumgot ★★★★★
()
Ответ на: комментарий от XMs

root@OpenWrt:~# tc qdisc add dev wlan0 root handle 1: htb default 15

root@OpenWrt:~# tc class add dev wlan0 parent 1:1 classid 1:1 htb rate 256kbps

root@OpenWrt:~# tc filter add dev wlan0 protocol ip parent 1:1 prio 1 u32 match ip src 192.168.1.136 flowid 1:150

root@OpenWrt:~#

Скорость не уменьшает

UriyZenkov
() автор топика
Ответ на: комментарий от UriyZenkov

Вот пример (там правда не по IP а по марке которая ставится через iptable).

tc qdisc  add dev eth0 root handle  1:   htb default 1

tc class  add dev eth0 parent 1: classid 1:1  htb rate  100Mbit prio 0
tc class  add dev eth0 parent 1: classid 1:50 htb rate  512Kbit prio 5 burst 1400

tc filter add dev eth0 parent 1: protocol ip prio 1 handle 550 fw classid 1:50

tc qdisc  add dev eth0 parent 1:50  sfq perturb 60

Насколько я помню корневым правилом (1:1) резать канал нельзя, оно просто опысывает максимальную скорость на интерфейсе. Потом уже можно ее разделять по калсcам + нужно продекларировать очередь для класса на котором есть ограничение

zaz ★★★★
()
Ответ на: комментарий от zaz

Сделал как в вашем примере, но скорость осталась прежней:

DEV=wlan0

tc qdisc add dev $DEV root handle 1: htb default 1

tc class add dev $DEV parent 1: classid 1:50 htb rate 512Kbit prio 5 burst 1400

tc filter add dev $DEV parent 1: protocol ip prio 5 u32 match ip dst 192.168.1.136 flowid 1:1

tc qdisc add dev $DEV parent 1: sfq perturb 60

Может есть варианты через iptables урезать скорость для 192.168.1.136 по IP или MAC ?

UriyZenkov
() автор топика
Ответ на: комментарий от UriyZenkov

У вас чтото совсем не то написано

DEV=wlan0

tc qdisc add dev $DEV root handle 1: htb default 1

tc class  add dev $DEV parent 1: classid 1:1  htb rate  100Mbit prio 0
tc class  add dev $DEV parent 1: classid 1:50 htb rate  512Kbit prio 5 burst 1400

tc filter add dev $DEV parent 1: protocol ip prio 1 u32 match ip dst 192.168.1.136 flowid 1:50


tc qdisc  add dev $DEV parent 1:50  sfq perturb 60

Вот это строчку:

tc class add dev $DEV parent 1: classid 1:1 htb rate 100Mbit prio 0

Удалять нельзя, это ROOT шейпера от которого нарезаются каналы

и wlan0 - это должен быть локальный интерфейс (WiFi)

zaz ★★★★
()
Последнее исправление: zaz (всего исправлений: 2)
Ответ на: комментарий от UriyZenkov

Проверь лучше iperf-ом, у этих онлайн-измерителей свои приколы (яндекс как-то недавно заявлял, что скорость в районе 70, при том что подключение было через спутник и максимум, который можно было достичь — 2,6)

XMs ★★★★★
()
Ответ на: комментарий от XMs

Пкетный фильтр FreeBSD ipfw и система ограничения пропускной способности dummynet были успешно портированы в Linux.

Установить IPFW на Linux и настройте PIPE

http://skeletor.org.ua/?p=242

rootmaster
()
Ответ на: комментарий от zaz

Теперь ограничение работает. СПАСИБО!

Ограничение скорости загрузки:

root@OpenWrt:~# tc qdisc add dev wlan0 root handle 1: htb default 1

root@OpenWrt:~# tc class add dev wlan0 parent 1: classid 1:1 htb rate 100Mbit prio 0

root@OpenWrt:~# tc class add dev wlan0 parent 1: classid 1:50 htb rate 512Kbit prio 5

root@OpenWrt:~# tc filter add dev wlan0 parent 1: protocol ip prio 1 u32 match ip dst 192.168.1.136 flowid 1:50

(для блокировки по MAC: tc filter add dev wlan0 parent 1: protocol ip prio 1 u32 match ether dst 6c:4e:36:68:a7:55 flowid 1:50)

root@OpenWrt:~# tc qdisc add dev wlan0 parent 1:50 sfq perturb 60

Ограничение скорости отдачи:

root@OpenWrt:~# tc qdisc add dev ifb0 root handle 1: htb default 1

root@OpenWrt:~# tc class add dev ifb0 parent 1: classid 1:1 htb rate 100Mbit prio 0

root@OpenWrt:~# tc class add dev ifb0 parent 1: classid 1:50 htb rate 512Kbit prio 5

root@OpenWrt:~# tc filter add dev ifb0 parent 1: protocol ip prio 1 u32 match ip src 192.168.1.136 flowid 1:50

(для блокировки по MAC: tc filter add dev ifb0 parent 1: protocol ip prio 1 u32 match ether src 6c:4e:36:68:a7:55 flowid 1:50)

root@OpenWrt:~# tc qdisc add dev ifb0 parent 1:50 sfq perturb 60

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

Поставить еще squid. У него есть все средства для борьбы с наглыми узерами. Даже ограничение количества сессий.

Bootmen ☆☆☆
()
Ответ на: комментарий от UriyZenkov

Пример ограничения скорости в предыдущем моем посте не работает. Вот рабочий пример:

tc qdisc add dev wlan0 handle ffff: ingress tc filter add dev wlan0 parent ffff: protocol ip prio 50 u32 match ether src 00:1B:77:40:99:E2 police rate 2Mbit burst 12k drop flowid :1

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