It sounds like bind doesn't like or is loading your zone file for
keiththewebguy.com, you should be able to nslookup/host/dig pointing at the local server first to make sure it works, and then see it externally from anywhere outside via the same. Next is to make sure you point your registrar's glue records to point over to your server with proper name server and soa records. They need to know how to phone home via the glue's to find where to reference the domain from. Until you can resolve your domain even from the same box, don't worry about outside. Debug bind logs first, plenty of how-to's out there to follow.
Honestly, hosting DNS is far more hassle than worth I found long ago - better off using your registrar dns, where I used to use godaddy for DNS, and now google. I'm not too proud to let them have an easy button ui for me these days. Also, DNS can be highly abused to generate a lot of traffic at times, so as much as even cox might say "unlimited", it's all fun and games until you run over their perception of "expected use", which you never know, particularly with bind vulnerabilities. Lots of small udp packets cause issues for firewalls and routers (particularly soho hardware kit), best to leave this sort of thing to a real isp imho. I've seen folks self-host dns as an experiment and get massive bills for doing so over the years several times.
-mb