Sto cercando di configurare il traffic shaping su un gateway Linux come scritto qui . Lo script deve essere personalizzato perché ho più interfacce LAN. Quindi, per modellare il lato LAN, sto pianificando di creare uno pseudo dispositivo ifb in questo modo:
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
La sceneggiatura del repository gist di cui sopra ha queste righe:
/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
Questo codice e il codice di creazione dell'interfaccia ifb non vanno d'accordo. Lo script personalizzato viene eseguito, ma il dispositivo ifb0 non mostra alcuna statistica del traffico. Se commento il codice repository gist in ingresso (citato sopra), il dispositivo ifb0 mostra il numero di pacchetti che vengono trasferiti. Inoltre, queste righe non possono essere eseguite insieme:
/sbin/tc qdisc add dev $WAN_INTERFACE ingress
/sbin/tc qdisc add dev $WAN_INTERFACE handle ffff: ingress
Ottengo errore di file esiste. Quindi, come posso modellare l'ingresso su WAN_INTERFACE e allo stesso tempo anche modellare il traffico che va alla LAN tramite il dispositivo ifb0?