同じポートから入ってくるトラフィックを 2 つの異なる VM に転送する方法はありますか?

同じポートから入ってくるトラフィックを 2 つの異なる VM に転送する方法はありますか?

基本的な考え方は上記の質問に記載されていますが、説明させてください。

私は自宅の専用サーバーで、VM 内に Minecraft サーバーをホストすることを考えていました (ブリッジ モードを使用して、ポート転送経由でトラフィックを転送できるようにします)。最近、友人から、彼の比較的小規模な Discord サーバー用のサーバーもホストできるかどうか尋ねられました。当然、同意しました。私の計画は、彼のサーバーを実行するための 2 番目の VM を開き、SSH アクセスを彼に提供するというものです。

しかし、現在、Minecraft がデフォルトで特定のポートを使用して接続するという問題に直面しています。URL の末尾にポート番号を追加することをユーザーに要求したくはありません。では、両方の VM の着信トラフィックが同じポート上にある場合、1 つの VM 向けのトラフィックを他の VM 向けのトラフィックから分離するにはどうすればよいでしょうか。それは可能ですか。同じポートを 2 つの異なる内部 IP アドレスに転送できますか。

mc1.mydomain.com と mc2.mydomain.com を使用して、トラフィックを別の着信ポートに自動的にルーティングする、つまりポートをドメイン名にバインドすることを考えていました。

不可能なことを空想しているだけなのかどうか、私にはわかりません。助けていただければ幸いです。

前もって感謝します。

PS: 固定 IP アドレスを使用するオプションがないため、動的 DNS サービスに制限されます。

答え1

できません。1 つの TCP ポートは 1 つの内部サーバーにのみ転送できます (負荷分散する場合を除きます。負荷分散するには、1) ロード バランサーと、2) 2 つの異なるアプリケーションではなく、実際に同じアプリケーションを実行する 2 つのサーバーが必要です)。

このようなことは、リバース プロキシを使用した HTTP(S) でのみ実行できます。リバース プロキシは、要求された URL を検査し、要求された内容に基づいてトラフィックをさまざまなサーバーに送信できます。これにより、同じリバース プロキシを介して複数の Web サーバーを公開できます。ただし、これが可能なのは、HTTP(S) がアプリケーション層で明示的にサポートしているためです。ネットワーク層ではそのようなことはなく、IP アドレスとポートのみで操作できます。

関連情報