Named \ Bind9 example config

I came across this nice example of a bind9 config file that handles multiple subnet\vlans\zones and treats them differently

server:/var/named/etc/bind# cat named.conf
// This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian for information on the
// structure of BIND configuration files in Debian, *BEFORE* you customize
// this configuration file.
//

acl "lan" {
"localhost";
192.168.16.0/24;
};

acl "guest" {
192.168.0.0/16;
10.0.0.0/8;
};

options {
directory "/var/cache/bind";
listen-on { "localhost"; };

// If there is a firewall between you and nameservers you want
// to talk to, you might need to uncomment the query-source
// directive below. Previous versions of BIND always asked
// questions using port 53, but BIND 8.1 and later use an unprivileged
// port by default.

// query-source address * port 53;

// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
// the all-0's placeholder.

auth-nxdomain no; # conform to RFC1035

};

include "/etc/bind/rndc.key";

controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};

view "internal" {
match-clients { "lan"; };

recursion yes;

// forwarders { 192.168.1.254; };
forwarders { 8.8.8.8; 8.8.4.4; } ;

include "/etc/bind/named.conf.internal";

};

view "guest" {
match-clients { "guest"; };

recursion yes;

include "/etc/bind/named.conf.guest";

};

view "external" {
match-clients { any; };

recursion no;

include "/etc/bind/named.conf.external";

};