徐如林的博客

2019年11月15日星期五晚上8点理发

基于Iptables的流量统计不太可能测出tc限流后的实际流量

基于Iptables的流量统计不太可能测出tc限流后的实际流量

Tc的应用流程

数据包 ->通过iptable (根据不同的Ip设置不同的mark)->TC(class)->TC(queue)

Wrtbwmon 是基于iptable来统计流量的,所以不太可能作用于tc规则之后的流量。

 

下面是zserve包中ecos_atheros_tc.c的一些关于tc的指令,可以解释一下

tc qdisc del dev %s root    //清除 eth0所有队列规则

tc qdisc del dev eth0 ingress    //

ip link set ifb0 txqueuelen 1000 down  //

tc qdisc add dev %s root handle %x:%x htb //在根HTB排队规则上创建的分类  

 

tc class add dev %s parent %x:%x classid %x:%x htb rate %dkbit ceil %dkbit   

//定义第一层的类 classid %x:%x 类的编号  rate  %dkbit  一个子类能保证的带宽  ceil %dkbit 一个类能得到的最大带宽

 

tc class del dev %s parent %x:%x classid %x:%x  // 删除某个类

 

tc filter add dev %s parent %x:%x handle 0x%x protocol 802.1Q prio %d u32 "

            "match u16 0x%02x%02x 0xffff at %d match u32 0x%02x%02x%02x%02x 0xffffffff at %d flowid %x:%x"   //添加一个过滤器到队列中,这里也可以用iptables --set-mark 做标记,这就说明了,iptable是在tc之前

 

tc filter del dev %s parent %x:%x protocol 802.1Q prio %d handle %x::%x u32 flowid %x:%x

//删除某个过滤器

 

"tc class add dev %s parent %x:%x classid %x:%x htb rate %dkbit ceil %dkbit  //基于VAP的限速

tc class change dev %s parent %x:%x classid %x:%x htb rate %dkbit ceil %dkbit" //改变VAP的限速

tc class del dev %s parent %x:%x classid %x:%x  //VAP  限速被取消

 

tc filter add dev %s parent %x:%x handle 0x%x protocol ip prio %d u32 "

"match u16 0x%02x%02x 0xffff at %d match u32 0x%02x%02x%02x%02x 0xffffffff at %d flowid %x:%x",

         // 将连上VAP的 sta 添加到 对应VAP的限速类中

 

tc filter del dev %s parent %x:%x protocol all prio %d handle %x::%x u32 flowid %x:%x"

//sta 断开连接或 没有被限速 从限速列表中被删除

 

 

 

要实现统计实际流量,还是在驱动层 接口层 做文章

 

posted on 2019-10-23 19:43  骑象人的烦恼  阅读(415)  评论(0)    收藏  举报

导航