LINUX.ORG.RU
ФорумAdmin

peer-to-peer достал


0

0

Юзаю 7 федору в роли роутера, нарезал всем скорость по 512 кбит вход/исход соответственно на входящем и исходящем интерфейсе при помощи скрипта htb.init. Как бы проблем не было пока народ не подсел на пиринг, ограничивать меньше нельзя и оббежать всех и потребовать "не используйте" не могу. Нашел POM и собрался патчить что бы получить модуль ipp2p , это я единственное что нашел , как самое лучшее что на сегодня умеет обрабатывать проходящий трафик.

Однако запретить пиринг нельзя, нужно его ограничить.

Т.е. я хочу при помощи этого модуля ограничить ВЕСЬ пиринг в 512 кбит, т.е. один качает - получает 512, качнут все - получат 512 на всех а не 512 каждому, и при этом нужно сохранить потолок в 512 кбит каждому если кто полезет ползать по вебсайтам. Т.е. 512 каждому , и при этом 512 in/out на всех для всех протоколов пиринга.

Пометить проходящий трафик я помечу, с iptables вроде как дружу, справимся.

А вот как дальше быть ? htb.init + 512 на весь пиринг на всех как организовать на одной машине ?

Или хотя бы как ограничить при помоши iproute2 весь пиринг в 512 кбит на все ип адреса in/out.

Для примера - ип адреса 1.1.1.0/24

Eth0 смотрит в интернет Eth1 смотрит в локалку

Курить lartc.org до посинения просьба не отправлять - сайт хороший и мудрый, однако лучше и понятнее было бы разбираться на примере рабочих примеров. Ведь наверняка кто-то из вас юзает таковые ограничения ? Нууу или подскажите какой скрипт взять из гугла ( название, или прямой линк) для ознакомления который решает поставленую задачу ?

anonymous

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

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

Возможно в этом что-то есть, но хотелось бы раз и на всегда разобраться используя iproute2. На примере рабочего варианта сам бы наконец допер как нужно правильно жить.

Вполне можно склониться к варианту двух машин , одна для ограничения проходящего пиринга в 512 кбит на всех, а вторая уже для ограничения каждому в 512 кбит. Тем более вроде как вторую машину для мелочей хочеться поставить, так пусть со смыслом стоит.

Манёвры с роутом помойму для таких целей не стоит использовать. А то так в дальнейшем для каждого ограничения скорости сервиса придеться по машине лепить ;)

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

Можно попробовать так: в iptables весь пиринг трафик помечать (tc filter умеет работать по этим меткам) - видя метку, tc направляет трафик в класс, для которого макс скорость - 512. Т.к. класс один на всех - то и суммарная скорость на всех будет 512. Остальной трафик, как вы и раньше делали, делить для каждого юзера. Если правило направления в P2P класс будет первым - то весь юзерский трафик, относящийся к P2P (если вы его правильно пометить iptables) - пойдет в тот класс. Если не P2P - пойдет к ласс пользователя, а у каждого пользователя (как я понял) - свой класс с потолком 512.

Это мысль не проверена на практике, такой схемы не поднимал, но с виду работоспособно.

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

Вешаем HTB:
tc qdisc add dev eth0 root handle 1: htb

Добавляем класс с нужной скоростью:
tc class add dev eth0 parent 1: classid 1:1 htb rate 500kbit

Добавляем фильтр:
tc filter add dev eth0 protocol ip parent 1:0 prio 1 handle 6 fw flowid 1:1


http://lartc.org/howto/index.html - очень толковые доки

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

Да, если вы пометили пакет как 0x1 - то надо изменить фильтра на:

tc filter add dev eth0 protocol ip parent 1:0 prio 1 handle 0x1 fw flowid 1:1

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

Большое спасибо за подсказку, весьма вам признателен !

Буду изучать и пытаться разбираться на вашем примере.

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

Если не сложно - отпишитесь о результатах

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