Hey again :)
If you're hosting a public DNS service the service should only return information that's relevant to the outside world. Internal IP addresses aren't so shouldn't be used within DNS itself.
Perhaps the most important records are the NS and SOA records. These should only link to Host (A) records that point to public IP addresses.
Going through your config:
> 1) DNS server NIC has internal IPs (10.x.x.x)
Absolutely fine, it needs to be able to talk on the internal network and to the router / firewall.
> 2) This server is pointing to itself as a DNS server (in the NIC)
Hmm this I generally don't do, but it's situational. I don't do it because I don't let public DNS servers resolve public names, they're only allowed to serve out the zones they host.
> 3) All DNS records are my external IPs
Excellent.
> 4) If the server itself needs to lookup domains outside of my domain (e.g. windows update),
> I have the forwarder set to use the firewall DNS proxy option. So, this IP is the internal IP
> of the trust side of my firewall. The firewall then has the ISPs DNS IPs in the proxy setup.
I would use the firewalls IP in TCP/IP configuration, with a caveat, this is only appropriate for stand-alone servers. If AD appears in this configuration anywhere it gets messy.
> 5) The firewall translates the external IPs to the Internal IPs
No problem :)
Chris