- 论坛徽章:
- 0
|
小弟在做路由器的开发过程中要做一个基于WAN口的流控,具体要求是这样的:比如内网的一个IP为192.168.0.5,路由器有两个WAN口,当192.168.0.5走WAN1的时候,WAN1对192.168.0.5的流量下行速度为30K,内网的其它IP不受192.168.0.5的流量下行速度为30K的限制。当192.168.0.5走WAN2的时候,WAN2对192.168.0.5的流量下行速度为50K,内网的其它IP不受192.168.0.5的流量下行速度为50K的限制。小弟的代码如下:
if [ -n "$host_speed_up" ]; then #上行
/bin/tc class add dev $WAN1_IF parent 1:1 classid $cid cbq bandwidth $ALLBW_UP rate $host_speed_up allot 1514 maxburst $MAXBURST weight $host_weight_up prio $PRIO_2 avpkt 1000 $BOUND 1>/dev/null 2>&1
/bin/tc filter add dev $WAN1_IF parent 1:1 protocol ip prio $PRIO_2 handle $ip_val fw flowid $cid 1>/dev/null 2>&1
fi
if [ -n "$host_speed_down" ]; then #下行
/bin/tc class add dev $LAN_IF parent 1:1 classid $cid cbq bandwidth $ALLBW_DOWN rate $host_speed_down allot 1514 maxburst $MAXBURST weight $host_weight_down prio $PRIO_2 avpkt 1000 $BOUND 1>/dev/null 2>&1
/bin/tc filter add dev $LAN_IF parent 1:1 protocol ip prio $PRIO_2 u32 match ip src "$WAN1_IPADDR" match ip dst "$ip_net.$ip_host" flowid $cid 1>/dev/null 2>&1
fi
#---WAN1_IPADDR为WAN1的IP------
#----ip_net.$ip_host为内网的一个IP---
现小弟只插了WAN1口,但是下行速度不起作用啊。还有一个问题就是当同时对WAN1、WAN2都做了流量控制的时候,192.168.0.5的流量怎么叠加在一起呢?求各位大哥帮小弟指点一下。 |
|