免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4501 | 回复: 6

[网络管理] linux下流量控制工具tc的filter执行时机问题 [复制链接]

论坛徽章:
0
发表于 2009-09-22 11:34 |显示全部楼层
请教下,在linux下用tc做流量控制,做filter时的u32分类过滤器是在什么时候执行的
例如对于这句,想控制内网机器192.168.10.11的上传速率
  1. tc filter add dev eth0 protocol ip parent 10:0 prio 1 u32 match ip src 192.168.10.11 flowid 10:20
复制代码
eth0 外网口:192.168.1.1
eth1 内网口:192.168.10.1

filter的时机是在 路由前 还是在路由后做的呢,我测试了下用u32过滤器没有起到作用,同样我换成 fw就可以限制上传速率
  1. tc filter add dev eth0 protocol ip parent 10:0 prio 1 handle 6 fw flowid 10:20
  2. iptables -t mangle -A PREROUTING -i eth1 -s 192.168.10.11 -j MARK --set-mark 6
  3. iptables -t mangle -A PREROUTING -i eth1 -s 192.168.10.11 -j RETURN
复制代码
另外对于限制下载速率
使用u32过滤器能起到作用
  1. tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.10.11 flowid 1:20
复制代码

以上是不是意味着对于转发的数据tc的filter是在路由后做的??
另外对于fw方式的,是否一般是这样写,对于上传就写在 PREROUTING上,对于下载写在 POSTROUTING上??
类似如下
下载:
  1. iptables -t mangle -A POSTROUTING -o eth1 -d 192.168.10.11 -j MARK --set-mark 8
  2. iptables -t mangle -A POSTROUTING -o eth1 -d 192.168.10.11 -j RETURN
复制代码


上传:
  1. iptables -t mangle -A PREROUTING -i eth1 -s 192.168.10.11 -j MARK --set-mark 6
  2. iptables -t mangle -A PREROUTING -i eth1 -s 192.168.10.11 -j RETURN
复制代码


请各位指点下,thx

[ 本帖最后由 fieldstream 于 2009-9-22 16:56 编辑 ]

论坛徽章:
0
发表于 2009-09-22 14:09 |显示全部楼层
>>filter的时机是在 路由前 还是在路由后做的呢,我测试了下用u32过滤器没有起到作用,同样我换成 fw就可以限制上传速率

tc属于链路层,当然在路由之后咯

>>另外对于fw方式的,是否一般是这样写,对于上传就写在 PREROUTING上,对于下载写在 POSTROUTING上??

PREROUTING和POSTROUTING适合做NAT,而不是其他乱七八糟的规则

你的规则最好的地方就是FORWARD, -i eth0就是down,-i eth1就是up

论坛徽章:
0
发表于 2009-09-22 16:23 |显示全部楼层

回复 #2 qtdszws 的帖子

多谢 qtdszws 兄
>>filter的时机是在 路由前 还是在路由后做的呢,我测试了下用u32过滤器没有起到作用,同样我换成 fw就可以限制上传速率
这个问错了, ,本意是想说是在地址转换之前还是在地址转化之后呢,因为 filter里写的 src或者dst在地址转换前后是不一样的,一个是局域网地址,一个就是出口地址了。
目前看来若tc在链路层,那filter肯定是在nat之后了,不管是snat还是dnat

另:找到了qtdszws 兄关于tc分析的帖子,回头下来仔细看看

论坛徽章:
0
发表于 2009-09-22 23:07 |显示全部楼层
在dev_queue_xmit中进行filter的,所有都是已经路由和nat后了

论坛徽章:
0
发表于 2009-09-23 09:25 |显示全部楼层

回复 #4 emmoblin 的帖子

嗯,看来 emmoblin  兄是研究过代码的,我还没看 这几天刚上手用,回头有空了也看看  
>>在dev_queue_xmit中进行filter的,所有都是已经路由和nat后了
这个也是 我限制上传速率时用u32过滤器没有起到作用(此时地址已经变成出口的地址了,不在是内网地址了,匹配不到),换成fw就起作用的原因吧

论坛徽章:
0
发表于 2009-09-28 11:28 |显示全部楼层

回复 #1 fieldstream 的帖子

首要问题是要在内部的接口做设置的

论坛徽章:
0
发表于 2009-09-29 13:02 |显示全部楼层
原帖由 fieldstream 于 2009-9-23 09:25 发表
嗯,看来 emmoblin  兄是研究过代码的,我还没看 这几天刚上手用,回头有空了也看看  
>>在dev_queue_xmit中进行filter的,所有都是已经路由和nat后了
这个也是 我限制上传速率时用u32过滤器没有起到作 ...

我也应该学习学习!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP