用語を混同していると思います。
通常、ロードバランシングとは、1つのホスト(example.com
)に接続し、ロードバランサーがすべての接続を1つ以上のバックエンドホストに分散させることを意味します。通常は、実際に接続するホストをユーザーが制御できません。これは、さまざまな方法でSSHに対して簡単に実行できます。
HTTPのようないくつかのプロトコルで、Host
ヘッダは、ロードバランサに接続が(例えばにルーティングされるべきバックエンドサーバを決定するより多くの情報与えることができますexample.com
にルーティングされますa
とb
、ながらexample.org
にルーティングされるc
とd
)を。
SSHにはそのようなフィールドがないため、ロードバランサーと1つのIPアドレスのみではこれを実行できません。これにより、LBがこのタスクに適さなくなります。
通常、これはホストをSSHプロキシ/ゲートウェイ/ジャンプホストとして使用して解決し、SSHクライアントにそのように使用するように指示します。OpenSSHを使用している場合は、クライアントに次のものを追加します~/.ssh/config
Host *.internal.lan
ProxyCommand ssh -q -A -x proxy.example.com -W %h:%p
Host
行にリストされている名前に接続すると、SSHクライアントは最初に接続しproxy.example.com
(パブリックIPアドレスを指す必要があります)、それを実際のマシンに転送するためのゲートウェイとして使用します(ポート22へのNATポート転送を使用します)該当する場合、実際のプロキシマシンの)。proxy.example.com
解決できる必要があることに注意してください*.internal.lan
。DNSサーバーをセットアップするか、ルーターが提供する内部サーバーを使用してこれを実現します。
その後、接続する外部ネットワークからnas.internal.lan
NAS(またはraspi.internal.lan
その他...)にアクセスし、ローカルネットワーク内から使用するnas
か、またはraspi
(接続はゲートウェイ経由ではなく直接接続されます)。
別の方法として、NATを使用するという事実を考えると:
NATルーターでポート転送を作成します。たとえば
Port 2210 -> internal host1, port 22
Port 2211 -> internal host2, port 22
次に、クライアントに次を入力します~/.ssh/config
。
Host host1.example.com
Port 2210
Host host2.example.com
Port 2211
host1/2.example.com
両方が外部IPアドレスを指していることを確認してください。
その後、SSH経由で接続するだけでhost1.example.com
、OpenSSHはポート2210に接続し、NATゲートウェイによって内部ホスト1に転送されます。
どちらの方法もシナリオで機能します。