サーバーが大きなウェブサーバーから同時に大量のリクエストを行う状況があります。現在、これを行うアプリケーションからのリクエストの量やリクエストの割合を制御することはできません。これらのWebサーバーからの応答は、インターネット回線が処理できる以上のものです。 (基本的に、私たちは自分たちでDoSを立ち上げています)。
これをアプリケーションレベルで修正するためにPushを入手するつもりですが、とりあえず、Linuxサーバーでトラフィックシェーピングを使用してこれを制御することはできますか?アウトバウンドトラフィックしか整形できないことはわかっていますが、TCP応答を遅くして、反対側が輻輳を検出し、これが私の状況に役立つようにする方法があるかもしれません。このようなものがある場合tcを使用すると、構成はどのようになりますか?
トラフィック制御は、ルーターに到達する前にドロップされるパケットを制御するのに役立つ可能性があるという考えです。
リモートサーバーがtcpパケットの送受信ルールに従っている場合は、tcp接続をレート制限できるはずです。そうすれば、dosを回避するためにレート制限できるはずです。
私はHTBで良い成功を収めました http://luxik.cdi.cz/~devik/qos/htb/manual/userg.htm
ciscoに精通している場合は、サーバー自体ではなくゲートウェイにQoSポリシーを実装できます。
qosを使用することは、iptables --limitよりも優れたソリューションであり、使用可能な帯域幅が効果的に使用されていることを確認します。ストリームが不足することはなく、それぞれが公平に扱われます。
HTBは非常に高度であり、最初に他のqosメソッドのいくつかを使用して、qosがどのように機能するかを把握できます。 qosルールを作成するのは簡単ですが、すべてのユースケースで実際に必要なことを実行していることを証明するのははるかに困難です。
「--limit」またはhashlimit(または最近の--seconds --hitcount)でiptablesを使用できると思います。 [もちろん、一時的な解決策としてのみ。]
trickle
を使用するのはどうですか?グローバル帯域幅シェーピング用にtrickled
として実行することもできます http://www.linux.com/archive/feed/6129 (実際にはこれを自分で発見したばかりです:-)