В Срд, 06/09/2006 в 11:36 +0300, Покотиленко Костик пишет: > В Срд, 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 марки подаются в разном виде > (десятичный|шеснадцатиричный), я точно не помню, проверь сам.
Извиняюсь, в предыдущем, заменить iptables -t mangle -A PREROUTING на iptables -t mangle -A FORWARD -- Покотиленко Костик <[EMAIL PROTECTED]> -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]