Network Load Balancer の内側にあるターゲットが、同じ Network Load Balancer に接続しようとしていますが、接続に失敗します。なぜですか?
簡単な説明
内部 Network Load Balancer のターゲットが自身の Network Load Balancer への TCP 接続を確立すると、ターゲットが自身にルーティングされるようにできます。
Network Load Balancer は送信元 IP を保持するため、到着したパケットの送信元と送信先の両方がターゲットのプライベート IP アドレスになります。その後、ホストオペレーティングシステムはパケットを無効と見なし、応答トラフィックを送信せず、接続に失敗します。
注意: この接続エラーは、送信元とターゲットが同じ場合にのみ発生します。その結果、Network Load Balancer で使用できるターゲットの数によっては、接続の問題が断続的に発生します。
このタイプの Network Load Balancer の接続障害を修正するには、preserve_client_ip.enabled のターゲットグループ属性を使用して、TCP および TLS ターゲットグループのクライアント IP 保持を無効にします。
解決方法
新しいコンソールを使用してクライアント IP 保持の有効化または無効化を行うには、次の操作を行います。
- Amazon EC2 コンソールを開きます。
- ナビゲーションペインの [Load Balancing] (ロードバランシング) の下で、[Target Groups] (ターゲットグループ) を選択します。
- ターゲットグループの名前を選択して、その詳細ページを開きます。
- [Attributes] (属性) タブで、[Edit] (編集)を選択します。
- クライアント IP 保持を有効にするには、[Preserve client IP addresses] (クライアント IP アドレスの保持) を選択します。クライアント IP 保持を無効にするには、[Preserve client IP addresses] (クライアント IP アドレスの保持) をオフにします。
- [Save changes] (変更を保存) を選択します。
ご使用のアプリケーションでクライアントの IP アドレスが必要な場合は、プロキシプロトコルのサポートを有効にし、プロキシプロトコルヘッダーからクライアントの IP アドレスにアクセスさせます。
関連情報
ターゲットからそのロードバランサーへのリクエストが接続タイムアウトになる