шейпинг и iptables
Гость 8 мая, 2007 - 12:25
Приветствую,
На FreeBSD для ограничения полосы, делал так:
ipfw pipe 32 config 32Kbit/s
ipfw add 100 pipe 32 ip from any 20,80 to 1.2.3.4 in
где 1.2.3.4, адрес интерфейса eth0.
(т.е. весь входящий трафик с 20,80 портов на интерфейс eth0 с IP адресом 1.2.3.4, ограничивается скоростью в 32kbps)
Помогите все это перевести на iptables.
»
- Для комментирования войдите или зарегистрируйтесь
http://gazette.linux.ru.net/rus/articles/taleLinuxTC.html
http://remizov.pp.ru/ru/trn/doc/manuals/htb-manual
Отличные
Отличные ссылки, спасибо.
Сделал пока следующее:
tc qdisc add dev eth0 handle ffff: ingress
tc filter add dev eth0 parent ffff: protocol ip prio 50 u32 match ip dst 1.2.3.4 police rate 50kbit burst 10k drop flowid :1
Работает, но в результате ограничена вся полоса, т.е. все качающие делят между собой 50kbit, а как можно сделать, чтобы на каждое активное соединение выделялся канал в 50kbit?
Это не
Это не поможет?
http://gentoo.ru/node/5562
Нет, т.к.
Нет, т.к. работает только для исходящего и рубит весь канал, а не выделяет на каждое соединения свой.
Там вроде для
Там вроде для входящего нельзя использовать все возможности шейпинга. Все что касается приоритезации, классовых дисциплин и т.д. работает только для исходящих очередей. Есть патч для ядра, позволяющий организовать промежуточный псевдоинтерфейс, и шейпить через него трафик. Таким образом как бы обеспечивается шейпинг входящего трафика. Для iptables есть флаг imq, который включает поддержку этих самых imq псевдоустройств, а ядро надо вроде как руками патчить.
З.Ы. Сам не пробовал, если прикрутишь, отпишись плз, как настроил :)
Сайт imq http://www.linuximq.net/
Все
Все получилось.
Но, опять возникает вопрос непосредственно по шейпингу.
На share-сервере есть много пользователей, которые используют исключительно шелл, нужно сделать так, чтобы на каждого юзера была выделена полоса, скажем в N Kbps, и он не мог ее превысить.
Предыдущее правило сработало, но создается общая на всех полоса.