Я намагаюся налаштувати форму трафіку на шлюзі Linux, як написано тут . Сценарій потрібно налаштувати, оскільки у мене є кілька інтерфейсів локальної мережі. Тож для формування локальної мережі я планую створити псевдопристрій 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
Сценарій із зазначеної вище суті репо має такі рядки:
/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
Цей код та код створення інтерфейсу ifb не справляються разом. Індивідуальний сценарій виконується, але пристрій ifb0 не показує статистики трафіку. Якщо я коментую вхідний код репост вступу (цитується вище), тоді пристрій ifb0 показує кількість переданих пакетів. Також ці рядки не можуть бути виконані разом:
/sbin/tc qdisc add dev $WAN_INTERFACE ingress
/sbin/tc qdisc add dev $WAN_INTERFACE handle ffff: ingress
Я отримую файл існує помилка. Отже, як я можу формувати вхід на WAN_INTERFACE і в той же час також формувати трафік, який йде до локальної мережі через пристрій ifb0?