Networking

動態流量整形

  • November 15, 2009

我有一個 64MB/s 的網際網路連接,它應該優先分配給 17 個 LAN。來自任何 LAN 的任何電腦都應該具有特定的頻寬份額(例如,來自 LAN1 的電腦的頻寬是來自 LAN2 的電腦的一半)但是當整體網際網路負載變化時,它的份額應該會有所不同。

所以分配的頻寬不應該是靜態給定的,必鬚根據負載變化。

我試過魷魚和iproute。但據我發現,它們都不能動態分配頻寬。他們只是可以給 IP 一個靜態頻寬(比如 64kbps)


更新:

正如 Crankyadmin、carson 和 David Bliss 所說,有三種方法可以做到這一點:

  • pfSense
  • 護牆
  • 使用 linux(OpenBSD?)核心(它也適用於 Ubuntu 嗎?)

正如我發現的那樣,它們都是解決這個問題的方法。但我不知道是否適合高負載並可以管理數百台電腦。

我使用 FreeBSD 作為代理伺服器,所以很高興有一個適用於 FreeBSD 的解決方案。

所以我需要一個可以處理高負載的 FreeBSD 兼容解決方案。它應該高效且快速)並且不會浪費網際網路頻寬。

您應該可以使用Shorewall之類的東西來做到這一點。查看流量整形部分。查看“使用內置流量整形/控制”部分,然後查看 RATE。您應該能夠為每個 LAN 指定最小和最大速率,然後對每個 LAN 進行優先級排序。如果管道空閒,每個人都會得到他們想要的東西,但是當它填滿時,較高優先級的 LAN 將推出較低優先級的 LAN。

BSD pf數據包過濾器和ALTQ的組合應該使您能夠動態分配網路頻寬。OpenBSD 文件包含以下情況的範例配置:

為 Bob 預留 80Kbps 的下載頻寬,這樣他就可以玩他的線上遊戲而不會被 Alice 或 Charlie 的下載所拖累。允許 Bob 在可用時使用超過 80Kbps。

在 FreeBSD 上,pf 包過濾器可作為可載入模組使用,或者可以編譯到核心中。ALTQ 也可以在 FreeBSD 上使用,但只能編譯到核心中。

引用自:https://serverfault.com/questions/84384