J'essaie de configurer la mise en forme du trafic sur une passerelle Linux en tant que écrit ici . Le script doit être personnalisé car j'ai plusieurs interfaces LAN. Donc pour façonner le côté LAN, je prévois de créer un pseudo dispositif ifb comme ceci :
modprobe ifb
ip link set dev ifb0 up
/sbin/tc qdisc add dev $WAN_INTERFACE ingress
/sbin/tc filter add dev $WAN_INTERFACE parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0
Le script du gist repo mentionné ci-dessus comporte ces lignes :
/sbin/tc qdisc add dev $WAN_INTERFACE handle ffff: ingress
/sbin/tc filter add dev $WAN_INTERFACE parent ffff: protocol ip prio 1 u32 match ip sport $INTERACTIVE_PORT 0xffff flowid :1
/sbin/tc filter add dev $WAN_INTERFACE parent ffff: protocol ip prio 1 u32 match ip dport $INTERACTIVE_PORT 0xffff flowid :1
/sbin/tc filter add dev $WAN_INTERFACE parent ffff: protocol ip prio 5 0 u32 match ip src 0.0.0.0/0 police rate $MAX_DOWNRATE_INGRESS burst 20k drop flowid :2
Ce code et le code de création de l'interface ifb ne s'entendent pas bien ensemble. Le script personnalisé est exécuté, mais le périphérique ifb0 n'affiche aucune statistique de trafic. Si je commente le code ingress gist repo (cité ci-dessus), alors le dispositif ifb0 montre le nombre de paquets qui sont transférés. De plus, ces lignes ne peuvent pas être exécutées ensemble :
/sbin/tc qdisc add dev $WAN_INTERFACE ingress
/sbin/tc qdisc add dev $WAN_INTERFACE handle ffff: ingress
Je reçois l'erreur "file exists". Donc, comment puis-je façonner l'entrée sur l'interface WAN_INTERFACE et en même temps façonner le trafic qui va vers le LAN via le périphérique ifb0 ?