Ubuntu Desktop 12.04 uses dnsmasq to perform DNS lookups, but it is not configured to cache these results. (I have checked this by using dig to resolve names and I do not see a large improvement in the response time after the first lookup.) How do I configure the NetworkManager-controlled dnsmasq to cache the results of DNS lookups?
In Ubuntu 12.10 you can enable the cache of the NetworkManager-controlled dnsmasq instance by putting the line
(with your preferred number of names instead of 1000) in a new file in /etc/NetworkManager/dnsmasq.d/. To activate this change you must then do
in 12.04 dnsmasq is started by NetworkManager with hard-coded (i.e. not configurable) parameter --cache-size=0.
manpages for dnsmasq says setting cache-size to zero disables caching. If you want to enable caching, you will probably have to disable the dnsmasq-plugin for NetworkManager to prevent NetworkManager from starting dnsmasq and start your own instance of dnsmasq with cache-size greater then zero.
here you can read how to disable dnsmasq-plugin for NetworkManager: http://askubuntu.com/a/131422/71057