Чего-то мне не очень понятно на каком интерфейсе режется по скорости исходящий трафик.
Допустим eth0 - uplink. eth1-локалка. ppp2 - клиент
С входящем там все просто ppp2 и даже фильтры не нужны. А вот с исходящем не понимаю. Там же перед eth0 стоит NAT и IP клиентов уже не видно. В свое время для обхода этой проблемы использовал IMQ.
Если можно то разрисуйте ктонибудь дерево шейпера.
Про шейпер подскажите
Ну если не хочешь лезть в дебри и исходящий можно на ппп резать - где-то так:Не очень красиво с дропом, но работает... А если хочешь (в смысле в дебри
) - тада действительно - кури IMQ... Кстати IFB ещё есь... И оно наверно получше будет ибо в стандартный кернел включён. А можешь и на внешнем изернете... иптейблом меть чё те нада и по метке фильтрами заворачивай в нужную дисциплину. И не нужны тебе клиентские адреса...
Код: Выделить всё
##### speed client->server
if [ "$DOWNSPEED" != "0" ] ;
then
$TC qdisc add dev $IFACE handle ffff: ingress
$TC filter add dev $IFACE parent ffff: protocol ip \
prio 50 u32 match ip src 0.0.0.0/0 police rate ${DOWNSPEED}kibit \
burst 12k drop flowid :1
fi

Это ты входящий для пользователя описал. Где собственно все понятно. Я о другом. В примерах есть скрипт для резанья скорости не доконца догоняю как он работает.
Схема же примерно такая.
<---Входящ----ppp2--- (FORWARD)---NAT---eth0---Исход--->
tc умеет резать только исходящий трафик с интерфейса.
Для Входящего трафика клиента это будет (Исходящий с ppp2) и тут все понятно.
Если нету NAT то Исходящй трафик клиента будет (Исходящий с eth0)
А если NAT есть то фильтры уже применять не получится поскольку после NAT IP адресов клиентов уже нет.
Раньше обходился с помощью IMQ где схема такая
<---Входящ----ppp2--- (FORWARD)---IMQ---Исход---> NAT---eth0
А тут я просто не понимаю как пожно обойтись без дополнительного девайса. Логика не понятна.
Схема же примерно такая.
<---Входящ----ppp2--- (FORWARD)---NAT---eth0---Исход--->
tc умеет резать только исходящий трафик с интерфейса.
Для Входящего трафика клиента это будет (Исходящий с ppp2) и тут все понятно.
Если нету NAT то Исходящй трафик клиента будет (Исходящий с eth0)
А если NAT есть то фильтры уже применять не получится поскольку после NAT IP адресов клиентов уже нет.
Раньше обходился с помощью IMQ где схема такая
<---Входящ----ppp2--- (FORWARD)---IMQ---Исход---> NAT---eth0
А тут я просто не понимаю как пожно обойтись без дополнительного девайса. Логика не понятна.
Нет! Исходящий от пользователя! Дисциплина ingress тебе ни о чём не говорит? Я привёл фрагмент моего бывшего рабочего скрипта.Это ты входящий для пользователя описал
Неужели? http://megalib.com/books/1346/lartc.htmltc умеет резать только исходящий трафик с интерфейса.
Я ж писал выше - можно на внешнем изернете резать. Метить иптейблом, в том месте, где срц ип или входящий ифейс ещё известен и фильтровать по метке, а не по адресу.А тут я просто не понимаю как пожно обойтись без дополнительного девайса.
с рожденияandy писал(а):А давно ingress появился в ip route появился?



тем более.. лазит в пиринг - пусть сам заботится о полосе своего исходящего канала. Твоё дело - ограничить согласно тарифного планаИ еще осла сам бы себе резал
