exa*_*exa 12 networking linux traffic-shaping isp tc
我目前正在为 ISP 级公司开发流量整形解决方案,并遇到了一个有趣的(有点哲学)问题。
查看系统应该处理的端点数量(大约 20k),我有点担心当我需要策略/调整更多用户的流量时会发生什么。由于我目前正在为整个网络使用 HFSC 整形树(参见 tc-hfsc,主要是与众所周知的 HTB 相同但更酷的东西),我需要使用更多的 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 用户应该对每个人都足够”的情况......)
小智 3
我认为你不应该将 64k 个用户与上游和下游类以及每个用户的过滤器放在同一个接口上。您可以为拥有的每个接口重复处理程序,因此添加更多接口。你将需要一个令人难以置信的工作/服务器/网卡来拥有这些东西。如果服务器崩溃,您将有 64k 用户离线(并且在这样的流量下很容易崩溃)。不要忘记,通过网卡的每个数据包都将由过滤器进行检查和分类,然后发送到要排队的类。对于拥有 64k 客户的 ISP 网关的 NIC 来说,这是一项艰巨的工作。主要是我们现在拥有的所有视频流(很难正确排队)。