The third party is requiring a unique public IP for the "Gateway IP", but then also another public IP for the "encryption domain". The connecting partner won't allow ANY private IPs in their tunnel definitions. Can VNS3 solve this problem?
Yes, this is something we do all the time, and it is fairly straightforward to set up.
Here is the gist:
Let's pretend the network behind your customer's device is:
And their IPsec device is at 188.8.131.52
Let's pretend your VNS3 Overlay Network is:
And your VNS3 instance gets an EIP of 184.108.40.206
The problem is they won't talk directly to your 172.16.0.0/22 Overlay Network (for example).
What you do is: in another VPC (preferably a separate AWS account), allocate a new EIP but DO NOT associate it to anything. Leave it there, and alone "forever". Let's pretend you received 220.127.116.11.
You would create the IPsec endpoint to 18.104.22.168 as normal, then use that new EIP to define the tunnel to the partner's IPsec device.
So instead of trying to create tunnel/cryptomap/policy like this: 172.16.0.17/32 - 10.10.0.0/16, you will do: 22.214.171.124/32 - 10.10.0.0/16
Then in a simple operation in the VNS3 Firewall, we need to "netmap" the inbound traffic for 126.96.36.199 to 172.16.0.17/32 and back again on the way out:
PREROUTING_CUST -s 10.10.0.0/16 -d 188.8.131.52/32 -j NETMAP --to 172.16.0.17/32
POSTROUTING_CUST -s 172.16.0.17/32 -d 10.10.0.0/16 -j NETMAP --to 184.108.40.206/32
Alternatively, you can use an SNAT rule to let you entire 172.16.0.0/22 overlay reach across:
POSTROUTING_CUST -s 172.16.0.0/22 -d 10.10.0.0/16 -j SNAT --to 220.127.116.11
In the second case, your peer would not be able to initiate connections to your overlay hosts due to the NAT.
In the first case, only the .17 host is able to use the tunnel, but connections can be made in either direction.
NOTE: in the event you are using the unencrypted underlay VLAN for your cloud network as an alternative to the unencrypted Overlay Network, simply include these additional rules in the VNS3 firewall to allow the traffic between your VPC and customer network. (When you put in a vpn local/remote subnet pair - we "auto acl" those to allow traffic..so the 18.104.22.168/32 - 10.10.0.0/16 path is allowed, but the path to the "real" address is not, you have to add it.)
FORWARD_CUST -d 172.16.0.17/32 -s
10.10.0.0/16 -j ACCEPT
FORWARD_CUST -d 10.0.0.0/16 -s 172.16.0.17/32 -j ACCEPT