Here you can find some of them: Dynamic DNS providers
http://dnslookup.me/dynamic-dns/
If you have a machine is on 7*24, then it's easy just installing the client on it, it will automatically update your ip to the provider. If not, your router/modem I guess it should be on all the time, check the vendor make sure it suppords DDNS. On my case it's Cisco router, C870 Software (C870-ADVIPSERVICESK9-M), Version 12.4(24)T2.
The following is the key commands:
1. DNS,
ip name-server YOURDNS server
no ip domain loop
!
2. The Wan interface,
ip ddns update hostname YOURHOST.dyndns.org
ip ddns update DYNDNS.ORG
ip nat outside
!
3. The update method,
ip ddns update method DYNDNS.ORG
HTTP
add http://YOURACCOUT:YOURPASSWORD@members.dyndns.org/nic/update?system=dyndns&hostname=<h>&myip=<a>
remove http://YOURACCOUT:YOURPASSWORD@members.dyndns.org/nic/update?system=dyndns&hostname=<h>&myip=<a>
interval maximum 0 0 30 0
interval minimum 0 0 20 0
!
Tip:
I didn't bother security, because if some knows my ip, I am ok with it, I know the IP will change next time. If you do, here is the link to import the Dyndns certificate and using https rather than http.
http://www.dyndns.com/support/