我正在为Pentest公司build立扫描系统。 这个盒子有很多带宽,我担心testing人员可能会无意中拒绝客户。 将出站带宽限制在10mbps似乎是testing速度和避免DoS之间的合理平衡。 然而,多个testing人员将在不同的客户端上工作,所以我需要每个端口10mbps,而不是10mbps。
这个理想的合理的近似是限制基于目的地址/ 24地址的通信量。 例如,到1.2.3.4和1.2.3.5的stream量都将被封装在同一个10mbps的“桶”中,因为它们都在1.2.3.0/24。 但2.3.4.5将在一个单独的10mbps桶。
我怎样才能在Linux上实现这一点? 我已经阅读了关于tc的一些介绍性文档,似乎我们需要标记数据包来识别桶。 我已经看到一些在configuration中具有硬编码IP地址的例子。 不过,我想这样做一般,而不必每次我们开始一个新的testing重新configurationTC。
在你的情况下,TC不会工作,因为你需要提前创build2 ^ 24 = 16777216桶。
替代scheme是iptables中的每秒数据包限制,或者在软件中实现整形。