9
ベンチマークの目的でTCPトラフィックを1つまたは複数のリモートサーバーに複製する方法
インフラストラクチャ:データセンターのサーバー、OS-Debian Squeeze、ウェブサーバー-Apache 2.2.16 状況: ライブサーバーは毎日お客様によって使用されているため、調整や改善をテストすることはできません。そのため、ライブサーバー上のインバウンドHTTPトラフィックをリアルタイムで1つまたは複数のリモートサーバーに複製したいと考えています。トラフィックは、ローカルWebサーバー(この場合はApache)およびリモートサーバーに渡す必要があります。これにより、構成を調整し、現在のライブサーバーとのベンチマークと比較のためにリモートサーバーで異なる/更新されたコードを使用できます。現在、ウェブサーバーは約をリッスンしています。クライアント構造のため、80および443以外に60個の追加ポート。 質問:1つまたは複数のリモートサーバーへのこの複製をどのように実装できますか? 私たちはすでに試しました: agnoster duplicator-これには、ポートごとに1つのオープンセッションが必要ですが、これは適用されません。(https://github.com/agnoster/duplicator) kklisプロキシ-トラフィックをリモートサーバーに転送するだけで、lcoal Webサーバーには渡しません。(https://github.com/kklis/proxy) iptables-DNATはトラフィックを転送するだけで、ローカルWebサーバーには渡しません iptables-TEEはローカルネットワーク内のサーバーにのみ複製します->データセンターの構造上、サーバーは同じネットワークに配置されていません stackoverflow(https://stackoverflow.com/questions/7247668/duplicate-tcp-traffic-with-a-proxy)の「プロキシでtcpトラフィックを複製する」という質問に対して提供された代替案は失敗しました。前述のように、TEEはローカルネットワーク外のリモートサーバーでは機能しません。teeproxyは使用できなくなり(https://github.com/chrislusf/tee-proxy)、他の場所で見つけることができませんでした。 2番目のIPアドレス(同じネットワーク内にある)を追加し、それをeth0:0に割り当てました(プライマリIPアドレスがeth0に割り当てられています)。この新しいIPまたは仮想インターフェイスeth0:0をiptables TEE機能またはルートと組み合わせても成功しません。 「debian squeezeで着信TCPトラフィックを複製する」(Debian Squeezeで着信TCPトラフィックを複製する)の質問に対して提供された代替案は失敗しました。cat | ncセッション(cat / tmp / prodpipe | nc 127.0.0.1 12345およびcat / tmp / testpipe | nc 127.0.0.1 23456)は、クライアントによるすべての要求/接続後に、通知またはログなしで中断されます。キープアライブはこの状況を変えませんでした。TCPパッケージはリモートシステムに転送されませんでした。 socatに関するの異なるオプションで追加の試行(手引き:http://www.cyberciti.biz/faq/linux-unix-tcp-port-forwarding/、https://stackoverflow.com/questions/9024227/duplicate-input- unix-stream-to-multiple-tcp-clients-using-socat)および同様のツールは、提供されたTEE機能がFSのみに書き込むため、失敗しました。 もちろん、この「問題」またはセットアップのグーグル検索は失敗しました。 ここでオプションが不足しています。 IPTABLESを使用する場合、TEE機能の「ローカルネットワークのサーバー」の実施を無効にする方法はありますか? IPTABLESまたはRoutesをさまざまに使用することで目標を達成できますか? これらの特定の状況でテストされ、機能するこの目的のための別のツールを知っていますか? tee-proxyの別のソースはありますか(要件に完全に適合すると思いますが)。 返信ありがとうございます。 ---------- 編集:05.02.2014 pythonスクリプトは、必要な方法で機能します。 import …