28-Sep-2022 09:40
I will try to describe this configuration the best I can and sorry if it gets to long. Our current configuration on our LTM's is as follows.
The following configuration is what we want to do.
Reasons for the new configuration.
The problem we have with the new configuration is that the original source IP of the connecting client is removed because of the SNAT needed. It is important that the original source IP is seen by the nodes. I have seen the option to use direct server return, but that is not an option in our environment mainly because Cookie insertion and port translation are not able to be implemented. I know we can make the IP of the single network adapter on the node be one in the internal VLAN of the LTM and set the default gateway to be the LTM. But, then we are passing all traffic through the LTM which goes back to the concern of the LTM performing unnecessary routing and using resources. Is there any other way to use this new configuration without SNAT and maintain the original source IP?
28-Sep-2022 12:43
There are 3 generally accepted options:
29-Sep-2022 01:58 - edited 29-Sep-2022 01:59
If you need to see clientIP, you could perform no-nat on F5 and insert a static route on the core switch in order to forward clientIP network back to F5. If your clients are all on the same network this might be the best option.
I don't understand if your servers need to contact external resources via the default Gateway. If this is the case and the external resources are on the same network as your clients (eg. public/internet), with no-nat on F5 and only 1 NIC on the servers your options are either having F5 as a router for outboud traffic or performing asymmetric return/DSR.
For web applications, you can also perform a SNAT on BIG-IP and insert client IP in XFF HTTP header for the web servers to retireve.
03-Oct-2022 06:26
As mentioned by @Kevin_Stewart , one of the way is to use X-Forwarded-For HTTP header, so F5 will insert true client IP in the header and pass it to the backend server. With this, you will see requests from F5 IP only but in the header, you will find true client IP.
Second option which is not possible in most of internet facing applications. But if you have specific list of client source IP addresses who are going to access your site from internet, then on the server, you can put those IPs routes pointing to F5 and rest default route will go to core switch as you want. I know this is not an option for all the sites but just thought of it so shared. Ty!
Hope it helps!
04-Oct-2022 09:47
Had to feature this one in this week's Highlights article, because I love the detail you gave, @kend, and the responses you got from some great members of the community. 🙂