0

2 台の専用サーバーがあり、ハードウェア ファイアウォールはありません。ポート 1008 のプライマリ サーバーに着信するすべての要求を転送して、同じネットワーク上の別の専用サーバーで処理したいと考えています。ある種の TCP プロキシをセットアップする必要があることは知っていますが、昨日 IPTables について初めて耳にしました。簡単なヒントはありますか?

4

3 に答える 3

2

最も簡単な方法は、単なる TCP プロキシを使用することです。iptables を使用してこれを実現することは可能ですが、簡単ではありません。

B 宛ての A から C への要求を (DNAT を使用して) 転送するのは簡単ですが、C の応答を B 経由で A に戻すのは困難です (DNAT は送信者アドレスを変更しないため)。A は、B ではなく C からの応答であるため、応答を無視します。

基本的にこれを行う方法は、B を C のデフォルト ゲートウェイとして設定し、転送を使用することですが、これにより B に追加の障害点が生じます。B に障害が発生した場合、C のアウトバウンド トラフィック (C に直接送信された要求への応答を含む) はブラック ホールに落ちてしまいます。

IPtables を使用すると、このルーティング トリックがなくても可能だと思いますが、同じ接続を SNAT および DNAT にする必要があります。

通常、このような状況では、ほとんどの人が別のホスト (ファイアウォール) を 2 台のマシンの前に配置し、DNAT の決定を行います。もちろん、これにより障害点も発生します。そのため、重要なセットアップでは、ファイアウォールは通常冗長化されます。バックアップ (構成が同期され、場合によっては接続追跡テーブルも同期されます)

于 2008-11-29T21:20:52.043 に答える
1

まず、ファイアウォールを設置することをお勧めします。私は長い間Shorewallを使用してiptablesを管理してきましたが、構成は非常に簡単です。次に、Shorewallのようなものを使用する場合、DNAT(ポートフォワーディング)の実行方法に関する簡単なガイドがあります。

于 2008-11-29T20:15:32.737 に答える
1

Carson の言うとおりです。サーバーとクライアントの間にブリッジ ファイアウォールを配置します。ショアウォール (IP テーブル) は、トラフィックを別のポートと別のマシンにリダイレクトできます。

ファイアウォールがブリッジであるため、ネットワーク設定を変更する必要はありませんが、ブリッジ インターフェイスには、クライアントとサーバーが存在する各ネットワークの 1 つの IP アドレスを割り当てる必要があります。そうしないと、リダイレクトが機能しません。

警告: 接続が最初に指定されたマシンはオンラインである必要があります (つまり、その IP アドレスが使用されている必要があります)。そうでない場合、リダイレクトは機能しません。

リダイレクトが高可用性のためのフェイルオーバーの手段として意図されている場合、ファイアウォールの代わりにロード バランサー (クラスター) を検討します。これは、Linux 仮想サーバー (一般的なアプローチの場合) または Apache ( mod proxy_balancer を使用)、balance または pount (http リクエストのみをバランスさせる場合)。負荷分散用の f5 などのハードウェア アプライアンスもあります。

于 2008-12-01T11:49:18.653 に答える