Hey everyone, I’ve hit a snag with our data pipeline and I'm hoping someone here has navigated this before. We have a web application that does real-time fraud detection by checking client IPs against some geolocation and risk databases. It’s been working great, but after our infrastructure team put a Radware ADC in front of our app servers, all the incoming requests now appear to come from Radware's internal IPs.
This is breaking our fraud logic because we’re losing the original client IP. I know the IP should be passed in a header like `X-Forwarded-For`, but I’m not sure of the exact Radware configuration to make that happen reliably. Our app is built in Python (FastAPI), and we’re currently just grabbing the remote address like this:
```python
client_ip = request.client.host
```
Which now just gives us something like `10.0.1.20` (the Radware appliance) instead of the real client IP.
Has anyone here set up Radware to correctly forward the original client IP? I need to know:
1. What specific configuration or virtual service setting in Radware ensures the `X-Forwarded-For` header is set?
2. Is there a different header Radware uses by default?
3. Any pitfalls we should watch for, like IP spoofing, that we need to handle in our app code after the fix?
My backend needs to see the true client IP to match events with our user sessions and call out to our fraud API. Without it, our data quality for this stream is basically useless.
Thanks in advance for any pointers! If you need more details on our setup, just ask.
ship it
ship it