I was wondering if it was possible to setup a local DNS server though BIND9 that contained a large amount of entries for DNS names, similar to what an ISP DNS server or something like Google DNS would have. I have explored some options, active DNS caching being one of them. This article along with this post, both demonstrate how to setup a DNS daemon to save a copy when somebody on the network queries a DNS name so the next query is much quicker as it is no longer having to perform an external DNS request. While this is a step in the right direction, I was wondering if it was possible to download all these "cached entries" or a huge DNS zone file beforehand so I would not have to manually load a whole bunch of sites for my server to make sense. Is this how ISPs or Google DNS runs their DNS servers, with a huge DNS file? How can I get one of these? I have looked into zone transfering which is nicly demonistrated here, but according to the guy, most DNS servers deny zone transfers so it appears I am out of luck.
I am doing this for a couple reasons, first because I would like to have a faster connection ( I saw the speed increase greatly when I switched from my ISP servers to OpenDNS) and because I would like to explore the science in how ISP's run their DNS servers and how all these things work with a hands-on approach instead of reading a huge book or article.
In other words, you want to go back to the /etc/hosts files of old and abandon the advantages of DNS?
Having a big pre-downloaded version of some portion of the DNS system doesn't make any sense because entries can be invalid really quick so your data goes stale very soon in turn.
Large providers have a large number of clients that request many different domain names, including all the popular ones. They will cache these entries for the duration of the advertised TTL (Time to live) of the DNS entries and if this time span expires, they will ask the DNS system for an update of the entry before serving it to client systems.
Also, reading a book or extensive article to understand how DNS really works is the recommended approach before trying to implement something yourself. This will save you a lot of frustration as you have a chance to understand what you are doing in the first place and what the different config options might mean.