← retour aux snippets

tc + ifb: faire du shaping en ingress

Rediriger le trafic entrant vers un device ifb et appliquer un qdisc pour limiter le débit.

bash network #tc#ifb#shaping

objectif

Contrôler le download (ingress) avec une discipline de file d’attente.

code minimal

sudo modprobe ifb
sudo ip link add ifb0 type ifb
sudo ip link set up dev ifb0
sudo tc qdisc add dev eth0 handle ffff: ingress
sudo tc filter add dev eth0 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0
sudo tc qdisc add dev ifb0 root cake bandwidth 50Mbit

utilisation

# ajuster la bande passante
sudo tc qdisc replace dev ifb0 root fq_codel limit 8192

variante(s) utile(s)

# supprimer
sudo tc qdisc del dev eth0 ingress; sudo tc qdisc del dev ifb0 root; sudo ip link del ifb0

notes

  • utile pour laboratoires et routeurs logiciels.
  • attention à la charge CPU.