すべてのトラフィックをNATの背後にある指定されたホストにリダイレクトする

すべてのトラフィックをNATの背後にある指定されたホストにリダイレクトする

すべてのトラフィックを NAT の背後にある指定されたホストにリダイレクトする可能性はありますか?

たとえば、サーバー、ドメイン「mydomain.com」、および NAT の背後にある 3 つのホストがあるとします。3 つのサブドメインを構成したいとします。

host1.mydomain.com、
host2.mydomain.com 、
host2.mydomain.com
とそれぞれがローカル ネット内の指定されたホストにすべてのポートをリダイレクトします。

このリダイレクトは次のような機能を提供するはずです。
http://host1.mydomain.com(Apacheを使用して実現可能)
ssh[メールアドレス](???)
および異なるポート上の他のプロトコル

ご協力いただきありがとうございます。

答え1

これは、HTTP 要求内のホスト ヘッダー情報を調べ、適切なコンテンツを取得して返す「リバース プロキシ」を使用して、HTTP および HTTPS に対して実行できます。Microsoft の ISA (Internet Security and Acceleration) はこれを実行できますが、Linux 上の apache/squid も同様に実行できます。

他のすべてのポートでは、ほとんどのトラフィックに目的のホスト名が含まれず、ターゲット IP のみが含まれるため、作業が難しくなります (例: 「host1.mydomain.com に SSH 接続したい」ではなく、「1.2.3.4 に SSH 接続したい」)。

特定の外部ポートを内部ポートにマッピングするのは簡単で (ポート 22 -> host1:22、ポート 23 を host2:22、ポート 24 -> host3:22 など)、必要なのはそれだけである場合もあります。

すべてのポートを異なる内部サーバーにマッピングする必要がある場合は、複数の外部 IP アドレスが必要になりますが、ほとんどの ISP がこれを提供できます (少なくともビジネス接続がある場合)。

答え2

apache mod_proxy ?

答え3

いいえ、DNS 名に基づいてポート転送を行うことはできません。ドメイン名は IP パケットの一部ではないため、ルーターがこれを使用して着信接続を区別することはできません。

リモート ホストが host1.mydomain.com に接続すると、この名前が IP アドレスに解決され、IP パケットに挿入されます。host2.mydomain.com が同じ IP アドレスに解決される場合、構築されたパケットは host1.mydomain.com の場合とまったく同じになります。

そのため、サーバーに複数の IP アドレスが設定されている場合は可能です。

Apache は受信したドメイン名を区別できますが、これはアプリケーション レベルです。HTTP 1.1 では、ブラウザは HTTP ヘッダーでドメイン名を送信し、Apache は仮想ホストを使用してそれをフィルタリングできます。

関連情報