Pfsense could do the job also, if you install tinyDNS and increase the cache limit which is 1Mb by default to perhaps 100mb. I'm giving a try right now because my ISP here in mexico city is so damn slow to resolve domains outside the america continent.
cheers.