AWS Black Belt Online Seminar は毎回、素晴らしい内容です。 2017 年公開の資料なので、最新の情報ではありませんが NLB の基本的動作については ELB Update - Network Load Balancer (NLB) と関連サービス に分かりやすく、且つ、丁寧にかかれています。 この資料の P.20 に下記の記載があります。
- クライアントの Source IP と Port が、そのまま Target まで届く
- Target はクライアントと直接通信しているかの様に見える
- 実際は、行きも帰りも NLB を通っている (DSR ではない)
- IP Target (後述) の場合は保持されず、NLB からの通信となる
- Direct Connect は接続されている VPC からのみ通信可能なので、こちらで回避
Instance Target で NLB を設定すると分散対象のサーバでは送信元パケットで「クライアントのアドレス」が確認出来る為、一見すると「NLB は DSR 動作している」ように見えますが、上述の Black Belt 資料に記載がある通り、実は DSR 動作をしていないそうです。 今回は検証環境で実際のトラフィックフローを確認してみました。