Linux

100Mb 網路的 Per-IP 頻寬監控和流量整形解決方案

  • February 26, 2012

我有大約 30 台伺服器連接到 Cisco 3500 系列交換機,上行頻寬為 100M。定期,我的一台或多台伺服器會進行大型文件傳輸,這將使網路完全飽和並導致 10-15% 的封包遺失到其他設備。我需要一個好的解決方案來 1) 在所有伺服器上基於每個 IP 地址監控我的頻寬 2) 防止任何給定 IP 消耗超過 50% 的可用頻寬 3) 優先考慮某些協議(流式傳輸流量、SSH ) 並降低其他流量(BitTorrent、SMTP、FTP)的優先級。我可以使用該交換機在每個埠上監控流量,但是除了設置埠速度之外,這並沒有給我任何 IP 級別的可見性和頻寬控制。

我有一個備用的帶有雙 1G NIC 的戴爾 R200,我可以投入到這項事業中,而且我對 Linux 相當滿意。我知道這可以通過 IPTABLES、TC 和 HTB 來完成,但我寧願有一個更完整的解決方案,它有像樣的文件和管理界面。如果答案是購買 Cisco XXX,我也對此持開放態度,但由於我有一台伺服器,所以我想先嘗試一下。

所以問題是:什麼樣的 Linux/BSD 防火牆/路由器/QOS 解決方案可以滿足這些要求?我在http://en.wikipedia.org/wiki/List_of_router_or_firewall_distributions看到了列表,但我正在尋找其中任何一個的真實體驗。

針對這種情況的預打包解決方案會很棒,但我還沒有找到理想的解決方案。我的特定設置是一個較小的無線 ISP,但它是一個類似的問題,即呈現特定客戶端免於氾濫網路。我用過的兩種解決方案:

  • cbq.inithtb.init。這兩者都易於管理各種 tc 隊列和過濾。如果您已經了解 tc 和Shaping,這可能是幫助管理各種隊列的好方法。這是我用於大多數頻寬管理伺服器的解決方案。效果很好,但沒有集成到 iptables 中來標記流量。我們使用 tc 過濾器,但它們並不理想。
  • shorewall防火牆項目是一個用於一般防火牆管理的 Linux 軟體包。它包括對頻寬管理的支持,並且似乎允許使用 iptables 規則標記包,我發現這更容易處理。更大的學習曲線,但從長遠來看可能是值得的。

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