我期待为我的企业启动一个新的开源镜像,但也有兴趣为外部客户开放它。 但是,由于显而易见的原因,我想将传出带宽限制在不在本地子网中的任何一个(例如,stream向其中一个边界路由器的stream量)。
我原来是在看Apache apache mod_bw,但是也可能有FTP访问这个镜像。 我已经看到了一些使用'tc'的有希望的选项,但是看起来它会匹配基于子网的模式。 但我想否定这一点 – 我有一个(5或6)内部子网的列表,应该没有任何限制,其他一切都应该通过stream量整形器。 复杂的事情有点是我也需要匹配v4和v6子网。
我正在做这个试验,但是我基本上需要反过来 ,所以“不要塑造这些子网,把策略应用到其他的一切”。 也许是2class,一个是限速器,一个是没有的? 我仍然不清楚处理顺序是如何处理'tc' – find匹配后处理终止,还是一直持续到结束? (例如,最终将抓住所有东西 ,或者只是没有匹配的东西?)
据我所知,'tc match'不能用于ipv6。 你将不得不使用'-j CLASSIFY'的iptables。
在iptables中,find匹配后继续处理。 但是,使用tc,flowid将数据包redirect到类并停止处理。
关于树,我想你想要的是:
虽然,我不知道你的架构。 如果你使用的是NAT,你的iptables规则必须是准确的(没有范围)。 如果您使用的是反向代理,则无法区分内部和外部stream量。
如果您有反向代理,则可以使用以下方法:
根据您的这种能力,最好的select是第二种,因为您可以根据您的WAN带宽而不是networking服务器上的1或10Gb网卡准确定型。 即使没有反向代理,这也是您的最佳select。
关于类的select,您应该使用htb或hfsc来更好地使用dynamic带宽和root qdisc中的“default”选项。