I'd suggest using the DC to provide DHCP and DNS to your clients. That way your DC always has current listings of your internal clients IPs. It will make your life easier and more secure.
I'd setup the internal network on a different domain then your public one. However if you've already setup the windows domain that is much easier said then done. At any rate, I'd register the domain you use internally just so no one else does, it could bite you in the butt in the future if you have road warriors, well worth $10/year
I'd setup the public DNS on a *nic system, either pfsense or other in a DMZ preferably.
You do NOT want your windows domain dns to be accessible from the outside world. But if they are the same domain name then just setup the *nix box and the Windows box both with the SOA. Your public one will be the one with real authority, but you DC must believe that it does as well. Your clients will believe your DC's DNS no matter what.
You can use DNS tricks on your DC to point to the internal IP of the webserver too, this will take the traffic off your internet connection, otherwise it may route out to the internet and then back to you.
Hope this helps.