免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3500 | 回复: 2
打印 上一主题 下一主题

[网络管理] tc 中u32过滤器的问题! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-05-29 16:06 |只看该作者 |倒序浏览
我想对22端口的流量进行限制,在建立好qdisc和class后,我以此方式来添加过滤器
tc filter add dev eth1 parent 1:0 protocol ip prio 100 u32 match tcp src 22 0xffff flowid 1:2
用tc filter show dev eth1命令查看,结果如下
filter parent 1: protocol ip pref 100 u32
filter parent 1: protocol ip pref 100 u32 fh 800: ht divisor 1
filter parent 1: protocol ip pref 100 u32 fh 800::800 order 2048 key ht 800 bkt 0 flowid 1:2
  match 00160000/ffff0000 at nexthdr+0
但是在sftp的时候,明显感觉到流量控制没有起到作用。
考虑到tcp头部中,source位于tcphdr的最前面2个字节,而ip头部长度通常为20个字节,我删除上述过滤器后,重新添加一条:
tc filter add dev eth1 parent 1:0 protocol ip prio 100 u32 match u16  22 0xffff at 20 flowid 1:2
用tc filter show dev eth1命令查看,结果如下
filter parent 1: protocol ip pref 100 u32
filter parent 1: protocol ip pref 100 u32 fh 800: ht divisor 1
filter parent 1: protocol ip pref 100 u32 fh 800::800 order 2048 key ht 800 bkt 0 flowid 1:2
  match 00160000/ffff0000 at 20
这样,就可以做到流量控制了。
但是考虑到这样做是不可靠的,不知道有什么办法,可以用u32过滤器,做到对指定端口进行控制呢?

论坛徽章:
0
2 [报告]
发表于 2006-05-30 08:47 |只看该作者
遇到了同样的问题,主要是 nexthdr 是不起作用的,无论是tcp或udp。
希望能实现nexthdr的大虾出来说说。

论坛徽章:
0
3 [报告]
发表于 2006-05-30 09:30 |只看该作者
我又用另外一个命令试了一下,
tc filter add dev eth1 parent 1:0 protocol ip prio 100 u32 match ip sport 22 0xffff flowid 1:2
生成的过滤器也是这样的
filter parent 1: protocol ip pref 100 u32
filter parent 1: protocol ip pref 100 u32 fh 800: ht divisor 1
filter parent 1: protocol ip pref 100 u32 fh 800::800 order 2048 key ht 800 bkt 0 flowid 1:2
  match 00160000/ffff0000 at 20
也能进行正常的流量控制。
但这是假定ip头部长度为20个字节。其实ip头部中可能带有选项,长度可能超过20个字节,这样就可能带来问题。
nexthdr是不起作用,不知道怎么用才可以。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP