Ich versuche, Traffic Shaping auf einem Linux-Gateway wie hier beschrieben einzurichten . Das Skript muss angepasst werden, da ich mehrere LAN-Schnittstellen habe. Um die LAN-Seite zu formen, plane ich, ein ifb-Pseudogerät wie folgt zu erstellen:
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
Das Skript aus dem oben erwähnten Hauptrepo hat folgende Zeilen:
/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
Dieser Code und der Erstellungscode für das ifb-Interface passen nicht zusammen. Das angepasste Skript wird ausgeführt, aber das Gerät ifb0 zeigt keine Datenverkehrsstatistiken an. Wenn ich den Ingress-Gist-Repo-Code (oben zitiert) auskommentiere, zeigt das ifb0-Gerät die Anzahl der übertragenen Pakete an. Auch diese Zeilen können nicht zusammen ausgeführt werden:
/sbin/tc qdisc add dev $WAN_INTERFACE ingress
/sbin/tc qdisc add dev $WAN_INTERFACE handle ffff: ingress
Ich bekomme eine Datei existiert Fehler. Wie kann ich das Eindringen in WAN_INTERFACE und gleichzeitig den Datenverkehr zum LAN über das ifb0-Gerät gestalten?