What you are looking for is a DDNS service, which tracks your public dynamic IP address, and links it to a host name.
Then you need to setup port forwarding, see the VPN example.
I want to do routing.
Network mask: 255.255.255.0
So I want to push all traffic for my VPN subnet to my VPN server(192.168.1.101)
Basically any traffic for my VPN needs to go via my VPN server.