在大型系统(约2000个用户)中进行流量控制的最佳解决方案是什么?


11

以下情况:我们是一群学生,负责管理本地居民大厅的Internet连接,共有大约2000个最终用户。

我们有一个交通点系统,每个MB降低或上传的成本点,按小时添加新的点。目前,当用户花完所有积分后,我们便将其阻止(通过将其放入Debian网关路由器iptables中的REJECT策略中)。

我们只想限制用户的带宽。做这个的最好方式是什么?

简单的答案是在用户的交换机端口(主要是Cisco Catalyst 3550)上设置速率限制。但是,这是不可取的,因为我们自己网络内部和大学网络之间的流量应保持无限。在Cisco IOS中,是否有一种方法仅对具有特定目标或源IP范围(因此,出站和入站)的数据包限制带宽?我什么都找不到。

另一种方法是控制网关路由器上的流量。我想到了几种解决方案:

  • tc或tcng-似乎两者都具有相当奥秘的语法,而且都没有提供用于进行按IP流量控制的良好功能。专用于这么多人的QDisc可能会大大降低路由器的速度。此外,两者的文档都已经过时了。

  • Shorewall-似乎具有相当整齐的配置语法,但是,我不确定它是否可以处理这么多的流量和用户,是否适合每个IP流量限制

  • pfSense-看起来像是用于我们这样的目的的操作系统。但是,这将要求我们完全重新安装网关路由器。我们没有其他BSD系统,并且pfSense也需要具有非常好的流量统计功能(目前我们正在使用fprobe-ulog和ulog-acctd)。

你有什么经验?哪种解决方案适合我们的需求,并且最容易维护?您还有其他想法吗?

如果您需要有关我们系统的任何其他信息,请随时询问。

提前致谢。


编辑:我已经实现了iptables和的系统tc

每个用户都有一个/ 28子网,一个VPN IP(均从10.0.0.0/8起)和一个外部IP,它们都通过一个iptables链进行控制。这条链只有一个规则,一个简单的规则RETURN

Python脚本每五分钟读取一次这些规则的字节计数器。它将重置计数器并更新我们的PostgreSQL数据库中的用户流量点帐户。

如果用户的积分余额减少到某个阈值以下,则会为此用户创建两个tc类(一个用于传入,一个用于网关路由器上的传出接口),将IP输入到属于这些类的tc过滤器中。这些类受HTB限制速度。

相比之前的系统,fprobe-ulog而且ulog-acctd这是更快的字节计数由iptables的完成。

对于我们的用户,网络速度已大大提高。

Answers:


2

我不确定您对重新配置整个安装程序(例如,替换Debian)有多感兴趣,或者将这样的内容放置在网关后面是否可行,但是FreeBSD在ipfw中具有一个称为dummynet的功能。由于听起来好像您不想获得专用的硬件流量调整器,因此这可能是您的选择。当前,我们使用它来阻止通过我们的代理网关之一进站和出站的SMTP通信,以防止老化的NFS后端系统不堪重负,并随后变得无响应。

借助一些脚本和规则集的智能配置,能够对数千个单独的IP地址进行流量控制是可行的。


0

我不得不问我们正在使用什么,但是我们的ResTek人员在Internet边界处有一台具有服务质量功能的设备。对于未分类的流,它具有默认优先级,并根据规则对其他流量进行优先级排序。这是真正销售它的优先级功能,因为他们还运行一个基于Squid的缓存集群,该集群在Border Appliance中被列为最高优先级。然后,网络上的人们可以选择以标准(有些麻烦)优先级浏览网络,或者使用代理并获得快速响应。他们当然也接受游戏服务器优先级请求,因为它们对延迟敏感,但带宽很低。

有大量工作要处理游戏服务器请求,但是随着越来越多的游戏从私有服务器移开,这些请求正在慢慢地搁浅。总体而言,我听说它对他们来说效果很好。他们可以阻止bittorrent之类的东西淹没所有其他流量,同时仍然可以使人们的YouTube加载时间更快。


0

有了这么多的用户,大多数基于简单软件的东西将开始崩溃。

考虑查看打包器和类似设备。如今,它们的价格几乎要比购买更多的带宽贵(在美国和欧洲,澳大利亚的美国穷人仍然是非常高的费率)。


不幸的是,我们不能为此花很多钱,既没有专用的数据包整形器,也没有更多的带宽。目前,我们的系统正在运行,问题是,如何只能阻止减少可用带宽,而不是阻止超出其分配流量的用户。
Christoph Wurm,2009年

0

在我看来,虚拟网络是一个很好的建议。但是我确信iptables也可以进行流量整形,因此您可以在debian机器上进行操作。


0

tc应该可以正常工作。我相信您想要做的是更改当前的iptables规则以标记而不是拒绝流量,然后可以使用少量的tc规则将流量整形应用于那些标记的流。

另外,查看ipset以管理受限制的用户列表http://ipset.netfilter.org/


0

Trafficpanel似乎是一种解决方案。其他功能:

  • 限制每个连接的最大HTTP速度
  • 限制每个本地网络主机的Web资源的总流量
  • 记录每个本地网络主机的互联网流量
  • 限制每个本地网络主机的最大流量速度
  • 限制每个本地网络主机的总互联网流量

实际上,从来没有尝试过这个东西,但是看起来还可以。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.