I am sharing internet from eth1 to eth2. I do this by editing the eth2 properties and setting method to Shared to other computers.
I also use dnsmasq for dns caching. Now if I enable Internet sharing I have to stop the existing dnsmasq instance as network manager starts its own dnsmasq instance. But this new dnsmasq instance has no dns caching options.
I have router based on OpenWRT which has dnsmasq 2.59. Inside my local area network I have a NS server bind. This server has internal and external views for a couple of my domains. My router forwards port 53 TCP and UDP from outside IP (router WAN) to this server.