Real IP in rabbitmq cluster

Hello all,
i'm struggling to find an answer for this.

I am using traefik on docker swarm as proxy for my rabbitmq cluster which runs on the same cluster.
In rabbitmq -> connections i can see the connected clients but all of them have the docker swarm master node IP address, is it possible to see the client real IP instead ?

Thanks.

Who is the "real client" in your case? Is there another LB in front?

I do not know what LB means, client is the client that connects to the traefik port on public_ip:1883
There is nothing else in front.

Is passHostHeader set for your service to true? Which value does the rabbitmq UI use to display the origin? :slight_smile: Is that maybe configurable?

As per documentation passHostHeader is by default true.

It seems that rabbitmq has an option to enable proxy to be used with haproxy in front or nginx
But when i do that i see the error in logs, and no client is able to connect:
(https://www.rabbitmq.com/mqtt.html#proxy-protocol)

"The PROXY protocol header signature was not recognized"

So i'm thinking that traefik does not add the proxy headers on TCP services ?

Yeah, Traefik would terminate the proxy protocol and just do "normal" requests. However, you should see the client ip in the headers then. That's why I ask, what Header / field the UI is checking for?

What i need is traefik to add proxy headers (source, destination) as described in the documentation: http://www.haproxy.org/download/1.8/doc/proxy-protocol.txt

For example on aws you need to enable them:
https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html#proxy-protocol