I currently have a free VPS hosted in Oracle Cloud. This machine sits in a so-called "Virtual Cloud Network", which is just a virtual LAN with an address in the range of 10.0.0.0/8 (10.0.0.19 to be precise).
In order to talk to the real world, it has a public, dedicated IPv4, which let's say it's 203.0.113.1. The gateway applies a full-cone, 1:1 NAT so every packet sent to this 203.0.113.1 IP, regardless of protocol and port (if applicable), gets forwarded to the machine.
This NAT means, however, that the destination IP gets replaced to be 10.0.0.19, rather than the actual public IP of 203.0.113.1. This is not a problem for most services such as HTTPS, SSH, etc... which do not care about the destination IP.
For IPsec however, this is a problem. IPsec expects the machine to have assigned a publicly routable IP address, and it uses the destination IP for connection requests to report clients where to connect to. This results in clients attempting to connect to 10.0.0.19, which of course fail.
Would it be possible to create some sorta of virtual adapter, such as a loopback one, and forward packets coming from the internet to it, replacing the 10.0.0.19 IP with the real IP of 203.0.113.1 so IPsec works?