I use freedns.afraid.org, I have my own domain which is it's dns record pointed to cloudflare with a cname record to my domain so I can access my home network and hosted services with my domain name which is really handy.
Make sure your ISP does not block any ports for services you would like to use.
Also remember port forfarding and you should have no problems :)
Since dyndns became kind of pay only if you don't want you domain to expire each month, I use http://www.changeip.com/services/free-dynamic-dns/ they offer up to 7 free dyndns subdomains. They also have a simple API if you want to change the ip of your free domain just by using an HTTP GET.