You can do all of this (maybe not DNS) with a dynamic IP but you'll be limited to what domains you can get. My cable modem has a dynamic IP address with a 24-hour lease from by ISPs DHCP server. To get myself a name that follows my IP around (not that it changes often) i've registered with
http://www.dyndns.org so their DNS points to my IP address, I have a script that runs every 15mins on the server to check if the IP address has changed and if so update their DNS. Clearly you get an outage when the address does change as their DNS records have a 4-hour TTL (time to live) - so I can be 'offline' for upto 4 hours as there is no guarantee that people to queries their DNS servers again.
Running your own DNS (for external access) on a dynamic IP address isn't really practicle as the root name servers around the world need to know where you are all the time. If you want to play with an 'internal' DNS that will be for your own LAN machines and not accessed by others on the web then this isn't a problem for you.
cheers
Jamie...