I have an integration that attempts to use the IP that vSphere detects for a vm guest, but sometimes the IP that vSphere detects is not the IP that the integration should use. The most straightforward example is where the the guest's network traffic passes through a 1:1 NAT (each guest has a unique IP after passing through the NAT, but it is a different IP than the one vSphere sees) prior to being seen by the app that is integrating with vSphere.
Creating an internal to external map of the NAT is easy enough, but the integration consumer won't use that map, only what it gets from vSphere. Thus, I'd like to simply push that mapping back into vSphere so that vSphere reports the NAT IP to the integration instead of the internal IP. Is this possible?
I've thought about putting the NAT IP in a tag, but the integration won't use a tag value for the IP either, only what it gets from vSphere as the guest IP.
I know people are going to say to get rid of the NAT, but it is necessary for application specific reasons. In addition, there are other scenarios where the IPs vSphere sees aren't what I want the integration to see.
Edit: As guessed, one of the big reasons for the NAT is load balancing, and ensuring correct routing through the load balancer. We're aware that there are non-NAT options to deal with the routing complexities around load balancers, but they all come with tradeoffs and the NAT is the one we feel is least-bad.
As I hinted, there are non-NAT reasons for wanting to do this as well, centered around VMware reporting too many IPs (where all are technically present, but most are service specific destinations and only one is used to originate traffic. We'd like to only see the IP that originates traffic) or VMware not detecting any at IPs all (It's rare, but it does happen).