Eu também tenho seus problemas.
Em princípio, depois de wiki.archlinux , parece que para habilitar o cache deve ser suficiente criar um arquivo /etc/NetworkManager/dnsmasq.d/cache
contendo simplesmente
$ cat /etc/NetworkManager/dnsmasq.d/cache
cache-size=1000
Eu tentei isso, mas, depois que o NM reiniciou, ainda não tenho cache:
# ps ax | grep dns
11724 ? S 0:00 /usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/run/sendsigs.omit.d/network-manager.dnsmasq.pid --listen-address=127.0.1.1 --conf-file=/var/run/NetworkManager/dnsmasq.conf --cache-size=0 --proxy-dnssec --enable-dbus=org.freedesktop.NetworkManager.dnsmasq --conf-dir=/etc/NetworkManager/dnsmasq.d
Observe que o arquivo conf citado está sempre vazio: Eu não consegui configurar nenhuma opção usando este procedimento.
Em suma, parece que o dnsmask em 14.04 (que é fornecido pelo pacote dnsmasq-base) é completamente bloqueado, então não é possível habilitar o cache, nem qualquer outra coisa (dhcp, tftp).
Se isso está certo, eu acho que, como você disse, a única solução para o problema é desabilitar o dnsmasq da unidade NM, comentando a linha
dns=dnsmasq
no arquivo /etc/NetworkManager/NetworkManager.conf
e instale o dnsmasq "padrão" e configure-o através do arquivo de configuração /etc/dnsmasq.conf
padrão.