我先描述一下我的情况。
我有一个由中央 x86 服务器/防火墙、5 个接入点和 2 个非托管路由器组成的网络。
20 Mbit 下载和 1 Mbit 上传 ADSL。
上传尤其成问题,因为单个用户上传电子邮件附件可能会降低整个网络的速度。
我需要的是某种方法来在连接的设备之间平均分配上传速度。如果能自动调整就好了
- 5 个连接用户 -> 每个获得 1/5 的上传带宽
- 10 个连接用户 -> 每个获得 1/10 的上传带宽
我想要什么:
- 能够在连接的用户之间均匀分配可用带宽的 x86 服务器发行版
- 如果有 GUI 工具就完美了
我想避免的:
- 基于端口的流量优先级(这不是我的目标)
- 要在每个设备上安装的程序(我不能这样做)
请记住,流量来自接入点,我不知道他们是否也需要一些特殊的软件才能使其正常工作。如果可能的话,我想只在服务器上进行操作。
答案1
答案2
我强烈鼓励您使用 OpenBSD。您查询的任务是由 ALTQ(ALTernate 队列框架)完成的,该框架最初是从 FreeBSD 移植并集成到 PF 中的。好消息是 OpenBSD 即将获得自己的队列框架(正处于测试阶段)。我不鼓励您使用 pfSense。 pfSense 是一个基于 FreeBSD 的发行版,它使用 OpenBSD 包过滤器(简称 PF)进行过滤。与 OpenSSH 不同,例如 PF 不可移植,其功能取决于网络堆栈。就此而言,pfSense 和 FreeBSD 附带的 PF 版本已过时 3 年,并且由于 FreeBSD 内核和网络堆栈中缺乏功能而无法完全发挥作用。有趣的是,默认情况下 ALTQ 甚至没有加载到 FreeBSD 内核中。如果您使用 FreeBSD,请使用 IPFW,它是 FreeBSD 默认防火墙。 FreeBSD 还支持 IPfilter。 IPFW 被用作 Linux 中 IPTables 的基础,直到大约一年前,当 OS X 切换到最新版本的 PF 时,IPFW 才成为 OS X 上的默认防火墙。如果您不喜欢 OpenBSD,请使用 NetBSD,它有自己的 NPF 针对多核机器进行优化。我不知道NPF中的排队是如何进行的。
我还鼓励您在开始做事之前先了解排队的知识。您可能会惊讶地发现排队仅对出站方向的数据包有用。一旦数据包到达入站方向的接口,就已经来不及对其进行排队了——它已经消耗了网络带宽来到达刚刚接收它的接口。唯一的解决方案是在相邻路由器上启用排队,或者如果接收数据包的主机充当路由器,则在数据包退出路由器的内部接口上启用排队。因此,在您的情况下,OpenBSD 盒子必须充当路由器,以便您能够管理用户。
从 GUI 开始,如果您需要 GUI 来配置防火墙,那么您可能没有必要配置防火墙。由于您请求不使用端口进行排队,我将引导您返回 ALTQ 文档,以便您了解各种排队方法。