# Elastic Agent TCP Input - Proxy Protocol

**URL:** <https://discuss.elastic.co/t/elastic-agent-tcp-input-proxy-protocol/361789>\
**Category:** Elastic Agent\
**Created:** [June 20, 2024, 11:25am UTC](https://discuss.elastic.co/t/elastic-agent-tcp-input-proxy-protocol/361789 "2024-06-20T11:25:37Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![lduvnjak](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/lduvnjak/32/77724_2.png) [@lduvnjak](https://discuss.elastic.co/u/lduvnjak)\
**Post date:** [June 20, 2024, 11:25am UTC](https://discuss.elastic.co/t/elastic-agent-tcp-input-proxy-protocol/361789/1 "2024-06-20T11:25:37Z")

</div>

We're trying to configure load balancing for certain integrations that listen on a specific TCP port for incoming traffic, for example [Cisco FTD](https://www.elastic.co/docs/current/en/integrations/cisco_ftd).

The LB is Nginx and it's load balancing on L4 (stream module). Here's the Nginx configuration:

```auto
    # Cisco FTD LB
    upstream ftd-ingress {
        server server01:9003;
        server server02:9003;
    }

    server {
        listen 9003;
        proxy_pass ftd-ingress;
        proxy_protocol on;
        proxy_connect_timeout 360s;
        proxy_timeout 360s;
    }

```

When `proxy_protocol` is set to `on` it doesn't work because the Agent does not understand the Proxy Protocol. Is there any way we can load balance the traffic while still having the source IP information in Elasticsearch?

On UDP it is possible with `proxy_bind $remote_addr transparent;`, however that does not work on TCP.

Cheers,  
Luka

---

<div class="post-metadata">

**Author:** ![lduvnjak](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/lduvnjak/32/77724_2.png) [@lduvnjak](https://discuss.elastic.co/u/lduvnjak)\
**Post date:** [June 21, 2024, 8:32am UTC](https://discuss.elastic.co/t/elastic-agent-tcp-input-proxy-protocol/361789/2 "2024-06-21T08:32:06Z")

</div>

To sum up, does the Elastic Agent/Filebeat TCP input support the proxy protocol? If not, is there any plan to do so?  
It can be solved by mangling packets on the LB, but that does not seem like an elegant solution.
