В настоящее время я контролирую скорость загрузки с помощью
tc filter add dev ppp0 parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate 9900kbit burst 10k drop flowid :1
У меня есть один клиент в моей локальной сети, допустим, его IP-адрес 192.168.200.200
Я пробовал это, но это не ограничивало его скорость загрузки.
tc filter add dev ppp0 parent ffff: protocol ip prio 50 u32 match ip dst 192.168.200.200 police rate 10kbit burst 10k drop flowid :1
У меня есть теория.
Вы ограничиваете ingres (родительский ffff) на основе dst IP. Если он находится в блоке NAT, IP-адрес назначения в пакете - это внешний IP-адрес блока NAT, а не внутренний немаршрутизируемый IP-адрес фактического пункта назначения. Пакет не получит это место назначения до тех пор, пока NAT-блок не выполнит свои манипуляции.
Я думаю, вам нужна ручка с выходом, а не энгр. Вот пример из инструкции по lartc:
tc qdisc add dev $DEV root handle 1: cbq avpkt 1000 bandwidth 10mbit
tc class add dev $DEV parent 1: classid 1:1 cbq rate 512kbit \
allot 1500 prio 5 bounded isolated
tc filter add dev $DEV parent 1: protocol ip prio 16 u32 \
match ip dst 195.96.96.97 flowid 1:1
http://lartc.org/howto/lartc.ratelimit.single.html
Надеюсь, это поможет! -Дилан