LINUX.ORG.RU
ФорумAdmin

Простейший шейпинг трафика для дома

 ,


1

4

Доброго времени суток!

У меня дома есть маленькая сетка с линуксом в качестве роутера. В последнее время появилась такая проблема, что домочатцы повадились смотреть фильмы онлайн и качать торренты на полную катушку. Просил. Предупреждал. Всё равно качают. Мне это надоело и решил сделать простейший шейпинг с целю ограничить скорость всех «закачаек» по определённым ip адресам. Ну, например, чтобы с адреса 192.168.0.2 не могли качать быстрее чем со скоростью 1 мегабит/c. Разумеется, в интернете полно рецептов, но промучавшись не один вечер у меня так ничего и не вышло. Ближе всего к решению я подобрался благодаря книжке http://lartc.org/howto/lartc.cookbook.fullnat.intro.html но у меня не получается адаптировать для себя примеры оттуда. Пробовал и метить пакеты, как тут и делать фильтр по ip адресу как в других статьях в интернете - не получается.

А сетка у меня настроена так. На линукс роутере есть два интерфейса p1p1 смотрит в локальную сеть провайдера, p2p1 смотрит в домашнуюю локальную сеть, доступ в интернет обеспечивается через vpn, ввиду чего имеется ещё устройство ppp0. Компьютеры в домашней сети получают адреса по DHCP. Доступ в интернет я настроил простейшим способом:

iptables -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
iptables -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -A FORWARD -i ppp0 -m conntrack --ctstate INVALID,NEW -j DROP

Может кто поможет? :) Был бы очень признателен.

Перемещено post-factum из linux-install

Есть такая штука — htbinit. Давным-давно шейпил с его помощью. Актуален ли сейчас — не знаю.

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

Похоже, что нет. Все ссылки на него в интернете, которые мне попадались - метрвы. В моём дистре (Fedora 18) вообще нет ни скрипта такого, ни инфраструктуры (теперь там systemd во все поля) для него. А на сурсфорже этого проекта посты 5 летней давности и конфиги, а самого скрипта нет. Да и статьи про него идут с датами типа 2002 год, 2005 год. Поэтому и взялся за tc.

sorc17 ()
Ответ на: комментарий от rikardoac

Ага, оно. В том-то и прикол. Ты скачай архив и глянь чё там внутри. Там внутри 5 файлов конфигурации для htbinit и самого этого htbinit там нет. Я так понял его удалили, потому что он не работает больше или я хз почему.

sorc17 ()
Ответ на: комментарий от Kuzz

А сами пробовали скачивать? Название пакета для yum не подскажите где лежит скрипт или сервис для systemd?

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

А в генте есть, проверил, вот поставил:

$ equery f net-misc/htbinit
 * Searching for htbinit in net-misc ...
 * Contents of net-misc/htbinit-0.8.5-r5:
/etc
/etc/htb
/etc/htb/.keep_net-misc_htbinit-0
/etc/init.d
/etc/init.d/htbinit
/usr
/usr/sbin
/usr/sbin/htb.init

varchar ()
Ответ на: комментарий от sorc17

Скрипт? Конечно скачивал. С sourceforge-а.
Закинул в /etc/rc.d/init.d
Создал нужные

HTB_PATH=${HTB_PATH:-/etc/sysconfig/htb} HTB_CACHE=${HTB_CACHE:-/var/cache/htb.init}

systemctl enable htb.init.service

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

Наверное, путаешься в интерфейсах. И с ifb не разобрался.

post-factum ★★★★★ ()
Ответ на: комментарий от Kuzz

А ссылку вы можете дать на то чо вы скачивали? Ещё раз повторяю, что на сурсфорже только архив с конфигами.

И как вы это можете объяснить:

# yum provides */htb.init*
Loaded plugins: langpacks, presto, refresh-packagekit
No Matches found
# ls -l /usr/lib/systemd/system/htb*
ls: cannot access /usr/lib/systemd/system/htb*: No such file or directory
#
sorc17 ()
Ответ на: комментарий от sorc17

извини, может я чего не понимаю, но

планировщик пакетов HTB, который входит в ядро linux начиная с версии 2.4.20.

и дальше

Можно конфигурировать шейпер с помощью команды tc, но для более удобной и наглядной настройки я рекомендую скачать скрипт htb.init.

http://habrahabr.ru/post/60095/

т.е. htb.init - это всего лишь набор файлов конфигурации. они, насколько я понял, позволяют тебе обращаться не напрямую к tc, а задавать условия по готовым шаблонам.

rikardoac ()
Ответ на: комментарий от Kuzz

О, спасибо :) Сейчас попробую этим скриптом что-то сделать.

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

И как вы это можете объяснить:

Никому в голову не пришло опакетить скрипт в один файл для ниасиливших tc))

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

:)

Попробовал htb.init сделал вот такие правила, но это не помогло.

[root@localhost htb]# ls -l
total 12
-rw-r--r-- 1 root root 17 Mar 18 02:13 p1p1
-rw-r--r-- 1 root root 50 Mar 18 02:13 p1p1-2:10.lim
-rw-r--r-- 1 root root 74 Mar 18 02:13 p1p1-2.root
# cat p1p1
DEFAULT=30
R2Q=2
# cat p1p1-2.root 
RATE=2Mbit
CEIL=2Mbit
BURST=15k
# cat p1p1-2\:10.lim 
RATE=1Mbit 
CEIL=1Mbit 
RULE=192.168.0.11 
PRIO=3
#
sorc17 ()
Ответ на: комментарий от rikardoac

Ну да. Только нужен был ещё скрипт, который эти правила будет читать и применять. Вот его-то авторы почему-то не положили в downloads.

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

DEFAULT=30

Сам то файл дефолта есть?

RULE=192.168.0.11

Если НАТ-ится, то еще и iptables нужно задействовать

Kuzz ★★★ ()
Ответ на: комментарий от sorc17
ext_if_down="em1"
<skipped>
        ## bringing ifb device up
        ip link set dev $ext_if_down up

em1 это НЕ ifb device. ifb device - это ifb0, ifb1 ну и т.д. Появляются при загрузке модуля ядра ifb

Pinkbyte ★★★★★ ()

Не много не в тему, но раз шлюз с линуксом, то лучше организовать торрентокачалку на нем. У меня такая же ситуация и на шлюзе работает transmission в виде демона. диск с торрентами расшарен, а с клиентских машин трренты управляются через веб клиент. По крайней мере администратор может ограничить скорость скачивания и канал не будет забит. Чтоб пользователи сами не могли качать торренты, нужно открыть для них только нужные порты. Могу показать как.

В общем то в торрентах и кроется корень проблемы с забитым каналом.

the_green ()
Ответ на: комментарий от Kuzz

http://fpaste.org/T8Jr/

Вот, я сделал вот такие правила для htb.init но они не работают. То есть домочатцы по прежнему могут качать со скоростью под 10Мб свои торренты, вешая всех остальных.

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