if you are behind a NAT and using private IP space then how many public IPs do you have? If you only have one public IP then the only way I can think of to serve from two different machines behind it is if your router supports some sort of load balancing or failover. I don't belive any of the home/SOHO routers (dsl modem, cable modem, etc) support this.
I also noted that your zonefile has multiple A records for the same machine. When setting up a DNS zone I've learned to use a single A record for each server and then CNAMEs for the other DNS names that point to that system. I'm not sure of the exact source that started me doing this, but it seems like good practice to have one address per server and then point all the other DNS names to those record. Something like this:
Code:
@ SOA adomain.com. webmaster.adomain.com. (
2005051701 ;serial
8h ; refresh
4h ; retry
15d ; expiry
224h ) ; minimum
; Name Servers
NS ns1.adomain.com.
NS ns2.adomain.com.
; Mail Servers
MX 10 mail1.adomain.com.
MX 20 mail2.adomain.com.
; Public Servers
bart A 192.168.20.8
maggie A 192.168.20.9
;Canonical names
www1 CNAME bart.adomain.com.
www2 CNAME maggie
ns1 CNAME bart
ns2 CNAME maggie
mail1 CNAME bart
mail2 CNAME maggie
Also note that the NS and MX records do not define a host record per se, they are pointers and need to resolve to one of the DNS records. This is why in my example I have an MX record for mail1 and then a CNAME to define what mail1 is. Another note, you left the trailing periods off some of the records in your first post. When you do not end a record with the dot, it basically tacks on the zone name at the end, so just plain
ns.adomain.com actually means
ns.adomain.com.adomain.com.