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

Основой всему является Linux Advanced Routing & Traffic Control HOWTO.

Интерфейс eth1 — 192.168.200.1 — в локальную сеть

#!/bin/bash
#Обнуляем корневой класс
tc qdisc del dev eth1 root
tc qdisc del dev eth1 handle ffff: ingress
 
#Создаём корневой класс исходя из скорости канала в Интернет 10Мбит для входящего трафика...
tc qdisc add dev eth1 root handle 1: cbq avpkt 1000 bandwidth 10mbit
#... и для исходящего
tc qdisc add dev eth1 handle ffff: ingress
 
#Пользователь 1
USR1IP=192.168.200.31
USR1ID=1 #код потока пользователя, д.б. уникальный для каждого
USR1DOWNSPD=1024 #Ограничение входящей скорости
USR1UPSPD=512 #Ограничение исходящей скорости
let USR1UPSPDBSRT=$USR1UPSPD*1024
#Режим входящий трафик
tc class add dev eth1 parent 1: classid 1:$USR1ID cbq rate $USR1DOWNSPD\kbit allot 1500 prio 5 bounded isolated
tc filter add dev eth1 parent 1: protocol ip prio 16 u32 match ip dst $USR1IP flowid 1:$USR1ID
tc qdisc add dev eth1 parent 1:$USR1ID sfq perturb 10
#Режим исходящий трафик
tc filter add dev eth1 parent ffff: protocol ip prio 50 u32 match ip src $USR1IP/32 police rate $USR1UPSPD\Kbit burst $USR1UPSPDBSRT drop flowid :$USR1ID

Что должно выполняться:

tc qdisc del dev eth1 root
tc qdisc del dev eth1 handle ffff: ingress
tc qdisc add dev eth1 root handle 1: cbq avpkt 1000 bandwidth 10mbit
tc qdisc add dev eth1 handle ffff: ingress
tc class add dev eth1 parent 1: classid 1:1 cbq rate 1024kbit allot 1500 prio 5 bounded isolated
tc filter add dev eth1 parent 1: protocol ip prio 16 u32 match ip dst 192.168.200.31 flowid 1:1
tc qdisc add dev eth1 parent 1:1 sfq perturb 10
tc filter add dev eth1 parent ffff: protocol ip prio 50 u32 match ip src 192.168.200.31/32 police rate 512Kbit burst 524288 drop flowid :1