Próbuję skonfigurować kształtowanie ruchu w bramie systemu Linux, jak napisano tutaj . Skrypt należy dostosować, ponieważ mam wiele interfejsów LAN. Aby ukształtować stronę LAN, planuję stworzyć pseudo urządzenie ifb:
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
Skrypt z wyżej wymienionego repozytorium gist ma następujące wiersze:
/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
Ten kod i kod tworzenia interfejsu ifb nie układają się dobrze. Spersonalizowany skrypt zostanie wykonany, ale urządzenie ifb0 nie wyświetla żadnych statystyk ruchu. Jeśli skomentuję wejściowy kod Gist Repo (cytowany powyżej), to urządzenie ifb0 pokazuje liczbę przesyłanych pakietów. Również tych wierszy nie można wykonać razem:
/sbin/tc qdisc add dev $WAN_INTERFACE ingress
/sbin/tc qdisc add dev $WAN_INTERFACE handle ffff: ingress
Otrzymuję plik istnieje błąd. Jak więc mogę kształtować wejście na WAN_INTERFACE, a jednocześnie kształtować ruch do sieci LAN za pośrednictwem urządzenia ifb0?