加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – TC哈希过滤器 – 单一规则删除

发布时间:2020-12-14 02:56:26 所属栏目:Linux 来源:网络整理
导读:对于流量整形,我目前在此页面上使用的设置与LARTC的设置完全相同: http://lartc.org/howto/lartc.adv-filter.hashing.html 我有一个简单的问题 – 每次我想修改哈希表中的东西(比如将IP分配给不同的flowid),我需要删除整个过滤器表并再次按过滤器添加它. (
对于流量整形,我目前在此页面上使用的设置与LARTC的设置完全相同:

http://lartc.org/howto/lartc.adv-filter.hashing.html

我有一个简单的问题 – 每次我想修改哈希表中的东西(比如将IP分配给不同的flowid),我需要删除整个过滤器表并再次按过滤器添加它. (我实际上不是手工完成,我有一个很好的程序,它为我做…但仍然…)有一个问题 – 我有这样的方式分配大约10k过滤器并删除和重新填充整个filtertable可以变得非常冗长,这对于流量整形来说并不是很好.我的程序可以轻松地设法只删除需要删除的规则(从而将整个问题减少到几个命令和毫秒),但我根本不知道只删除一个哈希规则的命令.

我的过滤器显示:

filter parent 1: protocol ip pref 1 u32 
filter parent 1: protocol ip pref 1 u32 fh 2: ht divisor 256 
filter parent 1: protocol ip pref 1 u32 fh 2:a:800 order 2048 key ht 2 bkt a flowid 1:101 
  match 0a0a0a0a/ffffffff at 16
filter parent 1: protocol ip pref 1 u32 fh 2:c:800 order 2048 key ht 2 bkt c flowid 1:102 
  match 0a0a0a0c/ffffffff at 16
filter parent 1: protocol ip pref 1 u32 fh 800: ht divisor 1 
filter parent 1: protocol ip pref 1 u32 fh 800::800 order 2048 key ht 800 bkt 0 link 2: 
  match 00000000/00000000 at 16
    hash mask 000000ff at 16

希望:’tc filter del …’命令只删除一个特定的过滤器(例如0a0a0a0a IP匹配(IP地址10.10.10.10)).删除一些小的子组也会很好 – 例如我仍然可以很快地重建一个桶(bkt a).

我的尝试:我尝试使用prio对所有过滤器进行编号,但没有任何帮助 – 它们只是在下面创建了一些不可用(但可删除)的东西,但是被删除之后仍然存在被删除的过滤器.

有任何想法吗?

编辑 – 我正在添加一个简化的tl; dr描述问题:

>我在一些interfce上创建了哈希过滤器,就像在这个http://lartc.org/howto/lartc.adv-filter.hashing.html中一样
>我想找到一个从表中删除一条规则(例如1.2.1.123)的命令,其余部分保持不变并正常工作.

解决方法

我知道这是一个老帖子,但我正在使用它,它似乎运作良好:

添加过滤器:

tc filter add dev eth1 parent 1: handle ::100 prio 1 protocol ip u32 match ip dst 10.10.10.10/32 flowid 1:100

删除过滤器:

tc filter del dev eth1 parent 1: handle 800::100 prio 1 protocol ip u32

只需为您需要的每个过滤器更改数字“100”

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读