2017-11-08 8 views
1

私はカスタムTCPサーバー(SFTPのタイプ)のための単純なこと(私はと思われるもの)やろうとしている:TCPサーバーへのネットワークロードバランサに

トラフィックがポート上で来ることを許可2222を経由してaws ネットワークロードバランサに接続し、プライベートサブネット内のインスタンスにルーティングします。

私はアプリケーションロードバランサで同じことをしました。

しかし、ネットワークのバージョンが動作しません。

これも可能かどうかと思いますか?自分のパブリックサブネットにインスタンスが存在しないと言っているネットワークロードバランサを作成すると警告が表示されます(これはすべてtrueです...すべてのインスタンスがプライベートサブネットにあります)。しかし、アプリケーションの同じサブネットを持つロードバランサを作成すると、このエラーが発生することはありません。

ここに何か不足していますか?

(私はまた、すべての関連するセキュリティグループで2222ポート開いた。私は私のサーバー要塞ホストを使用しても問題にpingを実行することはできませんので、私はそれを実行している知っている。)

できネットワークロードバランサへの直接のトラフィックプライベートサブネット内のインスタンス?

+2

それがうまくいかなかったら私は驚くことはありません。 NLBはトラフィックをそのまま通過させ、セキュリティグループは持っていません。彼らはALBsとは異なるネットワーク層で動作しています。パブリックサブネットにインスタンスがないことに関する警告が表示されるのは、たぶん正当な理由があります。あなたはそれがALBのために働くという理由だけで動作するとは想定できません。彼らは根本的に異なっています。 –

答えて

2

NLBは、ALBやクラシックELBのように「隠されたEC2インスタンス」ではなく、ネットワークインフラストラクチャの動作を変更するように見えるため、別のネットワーク構成が必要です。

他のロードバランサ製品とは異なり、外部のNLBと連携するためにインスタンスがインターネットゲートウェイを指す既定のルートを持つパブリックサブネット上にある必要があります。バランサにはインスタンス自身のIPアドレスがないため、「バランサの内部IP」であり、インスタンスはトラフィックがクライアントIPから直接来ると見なします。

+0

偉大なフィードバック。ありがとうございました。あなたのコメントをサポートするのに役立つ関連文書を指すことができますか? –

+0

@FelipeAlvarezは本当にありません。これらの洞察は、主に観察、テスト、直感の結果です。実際には、インスタンスはパブリックサブネット上にある必要はありません。これは実装上の特質のためです。プライベートサブネット上にある場合、プライベートサブネットに既定のルートがある限り、パブリックNLBは引き続き機能します。ルートがどこにポイントするかは実際問題ではありません。ネットワークはパケットを書き換えているので、デフォルトルートのターゲットは無視されますが、デフォルトルートなしでは、書き換えが発生する可能性があります。 –

+0

概念的には、Network Load BalancerはNATゲートウェイと非常によく似ていますが、逆方向に動作し、外部クライアントが外部のパブリックIPを使用して内部マシンにアクセスし、内部のプライベートIPに接続し、両方のエンドが会話を理解できるようにパケットを書き換えます。 –

1

だから誰もが返答したことは絶対に正しいです。

ソリューションは、単に次のように順番に私のプライベートサブネットに関連付けられているネットワークインタフェースに関連付けられているセキュリティグループに変更しました:

2222 0.0.0.0/0

を私は以前としてそれを持っていました(10.0.0.0/16が私のVPCである)

2222 10.0.0.0/16

とクライアントがどこから来る可能性があるので、これは動作しません、彼らはネットワークの負荷ので、私のネットワークから来ていませんバランサーはclを過ぎ去るバックエンドインフラストラクチャに直接接続します。

この単純な変更により、すぐに問題が解決されました。

関連する問題