I am attempting to define a subdomain for a private network (RFC1918) behind a NAT firewall; let's call it priv.example.com. Normally, and from what I can gather on various websites, this could be done by delegating the subdomain from the public and external DNS server for example.com to another DNS server that is internal and authoritative for priv.example.com.
I have a couple problems to overcome with this solution, however. The first is that I don't need or want the public Internet to be aware of priv.example.com. I suppose this could be handled with bind views, but I haven't quite figured this out yet (nor am I sure whether our DNS host supports views). The second is that I would have to open a hole in the firewall and create an address translation so the external DNS server can see the internal one. This seems like an unnecessary security risk.
Is there a way to create this scenario without making the public DNS server for example.com aware of the private DNS for priv.example.com? I am using bind9 for the internal, private server. Is there a better overall solution to provide name service for my private network? I've seen other, more controversial, solutions such as using a private TLD or defining a duplicate "master" DNS for the second-level domain within the private network. These seem like ugly hacks to me.