我正在尝试在
Linux网关上设置流量整形为
written here.脚本需要自定义,因为我有多个LAN接口.因此,为了塑造LAN端,我打算像这样创建一个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
上面提到的gist repo的脚本有以下几行:
/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设备不会显示任何流量统计信息.如果我注释掉ingress gist repo代码(如上所述),那么ifb0设备会显示传输的数据包数量.这些行也不能一起执行:
/sbin/tc qdisc add dev $WAN_INTERFACE ingress
/sbin/tc qdisc add dev $WAN_INTERFACE handle ffff: ingress
我得到文件存在错误.那么,我如何在WAN_INTERFACE上塑造入口,同时还能塑造通过ifb0设备进入LAN的流量?