Linux TC类/过滤器编号

前端之家收集整理的这篇文章主要介绍了Linux TC类/过滤器编号前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前正在为ISP级公司制定流量整形解决方案,并且遇到了一个有趣的(有点哲学的)问题.

看看系统应该处理的端点数量(约为20k)我有点担心当我需要策略/塑造更多用户的流量时会发生什么.由于我目前正在使用HFSC整形树(请参阅tc-hfsc,大多数情况下与整个网络相同但更酷的东西),我需要使用更多的ClassID(显然每个用户至少有一个)网络).我发现的问题是TC ClassID是有限的 – 它们是16位数字,这使我最多可以通过这个解决方案塑造64k个用户.

同样,如果我想有效地管理TC过滤器(例如,不使用’全部冲洗技术’),我需要能够删除修改单个过滤器条目. (我正在使用类似于LARTC [1]的哈希表的东西).同样,唯一似乎正在使用此方法方法是使用各个优先级对所有过滤器进行编号(tc filter add dev … prio 1).没有其他参数可以用于此目的,并且,令人遗憾的是,prio也只是16位.

我的问题是:是否存在一些扩展可用“标识符空间”的好方法,例如’tc class’命令的32位clsid和’tc filter’的32位优先级(或任何其他修改句柄)命令?

非常感谢,

-MK

(顺便说一句,我希望这不会是“64k用户应该足够大家”的场景……)

解决方法

我认为你不应该在同一个界面上为每个64k用户提供上游和下游类以及过滤器.您可以为每个接口重复处理程序,因此添加更多接口.你需要一个令人难以置信的工作/服务器/网卡才能拥有这些东西.如果服务器崩溃,您将有64k用户离线(并且它会随着该数量的流量轻松崩溃).不要忘记通过网卡的EACH数据包将被过滤器检查和分类,并发送到要排队的类.这对于具有64k客户的ISP网关的NIC来说是很多工作.主要是我们现在拥有的所有视频流(很难正确排队).

猜你在找的Linux相关文章