NetworkManager is a program for providing detection and configuration for systems to automatically connect to network. Your network can easily be shared to others using it. But If you want to implement DNS caching on your machine, you will find it annoying. I used to face conflict between NetworkManager/ConnectionSharing and DNS Caching, but now I find a workaround.
My DNS Caching Configure
/etc/NetworkManager/NetworkManager.conf
[main]
dhcp=dhclient
dns=dnsmasq
It works, but you need root privilege to start networksharing, like ...