Есть роутер, который дает локалке выход в инет. Локалка подключена к eth0. Трафик с eth0 заворачивается на интерфейс ifb0 (исходящий от сервера, входящий для клиентов) и ifb1(исходящий от клиентов, входящий для сервера). Столкнулся с такой проблемой, что как только заворачиваю трафик на ifb (даже только на ifb0) - транзитная скорость (из инета к клиенту) нормальная, как была до заворота, а вот скорость от именно с этого роутера к абоненту (например если тяну с фтп роутера файл) - резко падает (становится около 512кбит). На роутере Debian Lenny, ядро 2.6.26-2-amd64. Пример разворота:TC="/sbin/tc"
$TC qdisc del dev eth0 root
$TC qdisc del dev eth0 ingress
$TC qdisc del dev ifb0 root
$TC qdisc add dev eth0 root handle 1: prio
$TC filter add dev eth0 parent 1: protocol ip prio 10 u32 match u32 0 0 action mirred egress redirect dev ifb0Как видно, никаких классов и фильтров ни на eth0, ни на ifb0 нет, т.ч. все пакеты должны пролетать с максимальной скоростью, нигде не задерживаясь, как и происходит для транзитного трафика. Только вот почему трафик именно с этого роутера на машину клиента начинает тормозить??? Машина не слабая, Core2DuoE8400. С шейпером htb и ingress на eth0 - проблем нет, кучу клиентов шейпит без проблем. Сейчас встала необходимость сделать разные вланы на eth0, и для удобства хочу с этих вланов вх/исх трафик направлять в ifb0/ifb1, и там шейпить. Все работает, и если бы не вышеописанные тормоза с трафиком с/на сам роутер от клиентов - я был бы очень счастлив... Помогите!!!
Ни у кого не было подобной ситуации?
Вопрос все еще актуален... Помогите пожалуйста!
>Вопрос все еще актуален... Помогите пожалуйста!наверное правильнее ентот вопрос на лоре задать - там нашего пингвинчатого брата больше
как вариант попробуйте cbq я например им режу нагрузка на сервер большая куча вланов пока проблем небыло.
>как вариант попробуйте cbq я например им режу нагрузка на сервер большая
>куча вланов пока проблем небыло.cbq насколько я понимаю - это очередь... привязанная к интерфейсу. Т.е. нужно на каждый интерфейс (влан) привязывать cbq. А я хочу сделать более универсально - весь трафик со всех vlan'ов (eth0, eth0.1, eth0.2... - в каждом влане есть разные абоненты, у которых разные скорости должны быть) завернуть на интерфейс ifb, а там уже шейпить каждый IP своей скоростью. Но на всякий случай киньте пример, как у вас шейпится, может что-нибудь почерпну...
>>как вариант попробуйте cbq я например им режу нагрузка на сервер большая
>>куча вланов пока проблем небыло.
>
>cbq насколько я понимаю - это очередь... привязанная к интерфейсу. Т.е. нужно
>на каждый интерфейс (влан) привязывать cbq. А я хочу сделать более
>универсально - весь трафик со всех vlan'ов (eth0, eth0.1, eth0.2... -
>в каждом влане есть разные абоненты, у которых разные скорости должны
>быть) завернуть на интерфейс ifb, а там уже шейпить каждый IP
>своей скоростью. Но на всякий случай киньте пример, как у вас
>шейпится, может что-нибудь почерпну...да вы правы в каждом правиле для абонента нужно указывать его влан вот например
cat cbq-1000.xxxDOWN
DEVICE=vlan3012,10Mbit,1Mbit
RATE=512Kbit
WEIGHT=64Kbit
PEAK=512Kbit
PRIO=5
RULE=192.168.101.54/32это для резки на скачку если нужно на исходяший резать то нужно я например маркирую айпишники вот так.создаю файл rc.mark туда пишу всех клиентов что то типа вот этого
iptables -t mangle -A FORWARD -s 192.168.101.54 -j MARK --set-mark 1001
и вот само правило cbq
cat cbq-1001.xxxUP
DEVICE=vlan3012,10Mbit,1Mbit
RATE=512Kbit
WEIGHT=64Kbit
PEAK=512Kbit
PRIO=5
MARK=1001вроде все)
ps в принцыпе я думаю что если вы заварачиваете все на один интерфейс то может есть смысл промаркировать адреса до этого а патом уже резать по маркировкам но нужно пробывать.
Но все равно хотелось-бы разобраться с проблемой IFB...
Аналогичная проблема, помогите, пожалуйста, разобраться.
> Аналогичная проблема, помогите, пожалуйста, разобраться.tc filter add dev ${ETH_LOCAL_NET} parent 1: protocol ip prio 1 handle ::1 u32 match ip src ${LOCAL_NET} match ip dst !${LOCAL_NET} action mirred egress redirect
dev ifb0