Bind version 9 allows the DNS administrator to define views. Views allow for client-dependent resolution of DNS names are provide the flexibility of multiple DNS servers without most of the administrative complexity.
Views are described in DNS and BIND, 4th Edition, Paul Ablitz & Cricket Lui, O,Reilly, April 2001, ISBN 0-596-00158-4.
Here are the DNS files that correspond to my configuration.
options { directory "/var/named"; listen-on { 127.0.0.1 ; 206.124.146.177; }; }; logging { channel xfer-log { file "/var/log/named/bind-xfer.log"; print-category yes; print-severity yes; print-time yes; severity info; }; category xfer-in { xfer-log; }; category xfer-out { xfer-log; }; category notify { xfer-log; }; }; view "internal" { match-clients { 192.168.1.0/24; 192.168.2.0/24; 192.168.9.0/24; 127.0.0/24; }; recursion yes; zone "." in { type hint; file "int/root.cache"; }; zone "shorewall.net" in { type master; notify no; allow-update { none; }; file "int/db.shorewall"; }; zone "seattlefirewall.dyndns.org" in { type master; notify no; allow-update { none; }; file "int/db.seattlefirewall"; }; zone "0.0.127.in-addr.arpa" in { type master; notify no; allow-update { none; }; file "int/db.127.0.0"; }; zone "1.168.192.in-addr.arpa" in { type master; notify no; allow-update { none; }; file "int/db.192.168.1"; }; zone "2.168.192.in-addr.arpa" in { type master; notify no; allow-update { none; }; file "int/db.192.168.2"; }; zone "176.146.124.206.in-addr.arpa" in { type master; notify no; allow-update { none; }; file "db.206.124.146.176"; }; zone "177.146.124.206.in-addr.arpa" in { type master; notify no; allow-update { none; }; file "db.206.124.146.177"; }; zone "178.146.124.206.in-addr.arpa" in { type master; notify no; allow-update { none; }; file "db.206.124.146.178"; }; zone "179.146.124.206.in-addr.arpa" in { type master; notify no; allow-update { none; }; file "db.206.124.146.179"; }; zone "180.146.124.206.in-addr.arpa" in { type master; notify no; allow-update { none; }; file "db.206.124.146.180"; }; zone "254.146.124.206.in-addr.arpa" in { type master; notify no; allow-update { none; }; file "int/db.206.124.146.254"; };