В Срд, 06/09/2006 в 11:47 +0400, Pavel Volkovitskiy пишет: > Покотиленко Костик wrote: > > В Срд, 06/09/2006 в 10:56 +0400, Pavel Volkovitskiy пишет: > >> Pavel Volkovitskiy wrote: > >>> Pavel Volkovitskiy wrote: > >>>> Добрый день! > >>>> > >>>> Необходимо каджому из N ip адресов выделить определённую фиксированую > >>>> скорость > >>> Сейчас настроил: > >>> > >>> для исходящего: > >>> tc qdisc del dev eth1 root > >>> tc qdisc add dev eth1 root handle 1: htb > >>> tc class add dev eth1 parent 1: classid 1:1 htb rate 100mbit > >>> tc class add dev eth1 parent 1:1 classid 1:10 htb \ > >>> rate 128kbit ceil 128kbit burst 4k > >>> > >>> tc filter add dev eth1 parent 1: protocol ip prio 1 u32 \ > >>> match ip dst 10.0.2.2/32 classid 1:10 > >> Хорошо, нагрузки я не замечу :) > >> > >> А с этим скриптом всё правильно? Я до этого момента tc не использовал, > >> скрипт написан путём проб и ошибок, может что поправить надо? > > > > Входящий трафик лучше ограничивать как исходящий на интерфейсе смотрящем > > в сторону клиента тем же HTB. > > Тут всё немного "перевёрнуто" > вот схемка: > > INET - eth0 - NAT - eth1 - клиент > > т.е. сейчас htb на eth1 ограничевает "входящую" скорость для клиента > > у меня динамический SNAT, значит я не могу шейпить трафик от клиентов в > инет на eth0? ведь ip уже реальные, статической связи локальный ip - > прямой ip нет. или я не прав?
Можешь, сам так делаю. Вот тебе рецепт по твоей схеме. 1. Создаёш классы HTB для ограничения входящего и исходящего трафика. Причём, все ограничения будут "исходящими", для входящего дисциплины вешаешь на eth1, для исходящего на eth0. 2. Ставишь фильтры на марки файрвола с помощью tc filter fwmark. Например, исходящий трафик будет с маркой 0x10, входящий 0x20. 3. В файрволе маркируешь пакеты как тебе угодно с помощью: iptables -t mangle -A PREROUTING -s <client_net> -i eth1 -j MARK --set-mark 0x10 iptables -t mangle -A PREROUTING -s <client_net> -i eth1 -j RETURN iptables -t mangle -A PREROUTING -d <client_net> -i eth0 -j MARK --set-mark 0x20 iptables -t mangle -A PREROUTING -d <client_net> -i eth0 -j RETURN Поскольку пакеты маркируются в PREROURING, до SNAT'а они ещё не дошли, т.к. SNAT обрабатывается на выходе в POSTROUTING. Ещё один момент, в tc и iptables марки подаются в разном виде (десятичный|шеснадцатиричный), я точно не помню, проверь сам. -- Покотиленко Костик <[EMAIL PROTECTED]> -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]