大規模システム(約2000人のユーザー)のトラフィック制御に最適なソリューションは何ですか?


11

次の状況:私たちは、地元の居住者ホールのインターネット接続を管理する学生のグループであり、合計で約2000人のエンドユーザーがいます。

トラフィックポイントシステムがあり、MBごとにダウンポイントまたはアップロードコストポイントがあり、新しいポイントは1時間ごとに追加されます。現時点では、ユーザーがすべてのポイントを費やしたとき(DebianゲートウェイルーターのiptablesのREJECTポリシーにユーザーを配置することにより)ユーザーのインターネットアクセスをブロックします。

ユーザーの帯域幅を制限したいだけです。これを行う最良の方法は何ですか?

簡単な答えは、ユーザーのスイッチポート(主にCisco Catalyst 3550)にレート制限を設定することです。ただし、これは望ましくありません。当社のネットワーク内および大学のネットワークへのトラフィックは無制限のままである必要があるためです。Cisco IOSで特定の宛先または送信元IP範囲(つまり、出力と入力の両方)を持つパケットに対してのみ帯域幅を制限する方法はありますか?何も見つかりませんでした。

もう1つの方法は、ゲートウェイルーター上のトラフィックを制御することです。いくつかの解決策が思い浮かびます。

  • tcまたはtcng-どちらもかなり難解な構文を持ち、IPごとのトラフィック制御を行うための優れた機能を提供しないようです。非常に多くの人々に専用のQDiscを使用すると、おそらくルーターの速度が大幅に低下します。さらに、両方のドキュメントはかなり時代遅れです。

  • shorewall-構成にはかなりきちんとした構文があるようですが、この量のトラフィックとユーザーを処理できるかどうか、およびIPごとのトラフィック制限に適しているかどうかはわかりません

  • pfSense-私たちのような目的のために意図されたOSのように見えます。ただし、ゲートウェイルーターを完全に再インストールする必要があります。他のBSDシステムはなく、pfSenseには非常に優れたトラフィックアカウンティング機能が必要です(現時点ではfprobe-ulogとulog-acctdを使用しています)。

あなたの経験は?どのソリューションが私たちのニーズに合い、最も簡単に保守できますか?他にアイデアはありますか?

システムに関する追加情報が必要な場合は、お気軽にお問い合わせください。

前もって感謝します。


編集:私はシステムを実装しているiptablestc

すべてのユーザーは、/ 28-subnet、VPN IP(両方とも10.0.0.0/8から)、および外部IPを持ち、すべて1つのiptablesチェーンを介して操作されます。このチェーンには、単純なルールが1つだけありRETURNます。

5分ごとに、Pythonスクリプトがこれらのルールのバイトカウンターを読み取ります。PostgreSQLデータベースのカウンターをリセットし、ユーザーのトラフィックポイントアカウントを更新します。

ユーザーのポイントバランスが特定のしきい値を下回った場合、このユーザーに対して2つのtcクラス(ゲートウェイルーターの受信用、送信インターフェイス用)が作成され、これらのクラスに属するtcフィルターにIPが入力されます。クラスはHTBによって速度制限されています。

以前のシステムと比較してfprobe-ulogulog-acctdこれはバイトカウントがiptablesによって行われるため、はるかに高速です。

ユーザーのネットワーク速度が大幅に向上しました。

回答:


2

セットアップ全体の再構成(Debianの置き換えなど)にどの程度関心があるのか​​、またはこのようなものをゲートウェイの背後に配置するのがどの程度実現可能かはわかりませんが、FreeBSDにはipfwのdummynetという機能があります。専用のハードウェアトラフィックシェーパーを取得する気はないように聞こえるので、これはあなたのためのオプションかもしれません。現在、プロキシゲートウェイの1つを介して送受信されるSMTPトラフィックを抑制し、古くなったNFSバックエンドシステムが圧倒されて応答しなくなるのを防ぐために使用しています。

ルールセットのスクリプティングとインテリジェントな構成により、数千の個々のIPアドレスをトラフィック制御できるようになります。


0

何を使用しているのかを尋ねる必要がありますが、ResTekの社員はインターネットの境界にサービス品質機能を実行するアプライアンスを持っています。未分類のストリームにはデフォルトの優先順位があり、ルールに基づいて他のトラフィックに優先順位を付けます。ボーダーアプライアンスで最も優先度の高いものとしてリストされているSquidベースのキャッシュクラスターも運用しているため、実際に販売されているのは優先機能です。ネットワーク上の人々は、標準の(そしていくぶん下手な)優先順位でWebをサーフィンするか、プロキシを使用して非常にジッピーな応答を得るかを選択できます。もちろん、レイテンシーに敏感ですが、帯域幅が狭いため、ゲームサーバーの優先度の要求も受け付けます。

ゲーミングサーバーのリクエストを処理する作業はかなりありますが、プライベートサーバーからのゲームの移動が進むにつれて、それらはゆっくりと進んでいます。全体的に、彼らにとってはかなりうまくいくと聞いています。彼らは、ビットトレントのようなものが他のすべてのトラフィックを圧倒することを防ぎ、それでも人々のYouTubeの読み込み時間を速く保つことができます。


0

多くのユーザーがいると、単純なソフトウェアベースのもののほとんどが壊れ始めます。

packeteerおよび同様のデバイスを検討することを検討してください。最近では、帯域幅を購入するよりもほとんど高価になっています(米国とヨーロッパでは、オーストラリアの貧しい人々は依然として非常に高いレートです)。


残念ながら、専用のパケットシェーパーやより多くの帯域幅のために、これに多くのお金を投資する余裕はありません。私たちのシステムは現在動作しています。問題は、割り当てられたトラフィックを超えたユーザーをブロックするのではなく、利用可能な帯域幅のみを削減する方法です。
クリストフワーム


0

tcは正常に動作するはずです。あなたがしたいのは、現在のiptablesルールを変更してトラフィックを拒否するのではなく、マークするフローにトラフィックシェーピングを適用するために少数のtcルールを使用できることです。

また、スロットルされたユーザーのリストを管理するためのipset http://ipset.netfilter.org/を見てください。


0

Trafficpanelは解決策のようです。他の機能の中で:

  • 接続ごとの最大HTTP速度の制限
  • ローカルネットワークホストごとのWebリソースの総トラフィック量の制限
  • ローカルネットワークホストごとにインターネットトラフィックを記録する
  • ローカルネットワークホストごとの最大トラフィック速度の制限
  • ローカルネットワークホストごとのインターネットトラフィックの総量を制限する

実際には、これを試したことはありませんが、大丈夫です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.