VPN Question

I would appreciate a shove in the right direction. I need to setup a vpn from a device to a Mikrotik I my side. The device on other side is only capable of IPSec, GRE, or SSL tunnels. The device on their side is nat’d. Is there one of these options that I would be able to get working when they don’t have a public IP?
Thanks.

best ( in my opinion) is l2tp. You always have to port forward, if the vpn terminator is on the other side of a nat box. if you’re not, is it possible to have the server at at public ip, and the nat box be a client?