Configurando Views no DNS

Vamos configurar aqui views para que  bind responda para rede interna com IPs internos e para a rede externa com os IPs externos.

Vamos criar algumas ACLs para facilitar a administração do DNS.

vi /etc/bind9/named.conf
acl "external_slaves" {
        200.xxx.xxx.xxx;
        200.xxx.xxx.xxx;
        200.xxx.xxx.xxx;
        200.xxx.xxx.xxx;
};
acl "internal_slaves" {
        10.xxx.xxx.xxx;
        172.xxx.xxx.xxx;
        192.xxx.xxx.xxx;
};
acl "lan_nets" {
        10.0.0.0/16;
        172.16.0.0/16;
        192.168.0.0/24;
};

Configurado as ACLs vamos configurar a View Interna

view "internal" IN {
    match-clients { lan_nets; };
    allow-recursion { lan_nets; };
    allow-transfer { internal_slaves; };
    notify yes;

    zone "." {
            type hint;
            file "/etc/bind/db.root";
    };
    zone "localhost" {
            type master;
            file "/etc/bind/db.local";
    };
    zone "127.in-addr.arpa" {
            type master;
            file "/etc/bind/db.127";
    };
    zone "0.in-addr.arpa" {
            type master;
            file "/etc/bind/db.0";
    };
    zone "255.in-addr.arpa" {
            type master;
            file "/etc/bind/db.255";
    };
    zone "seudominio.com.br" {
        type master;
        file "seudominio.com.br.internal";
        notify yes;
        allow-transfer { internal_slaves; };
    };

Configurado a View Interna vamos configurar a view externa.

view "external" IN {
    match-clients { !lan_hosts; any; };
    allow-transfer { external_slaves; };
    notify yes;

    zone "." {
            type hint;
            file "/etc/bind/db.root";
    };
    zone "localhost" {
            type master;
            file "/etc/bind/db.local";
    };
    zone "127.in-addr.arpa" {
            type master;
           file "/etc/bind/db.127";
    };
    zone "0.in-addr.arpa" {
            type master;
           file "/etc/bind/db.0";
    };
    zone "255.in-addr.arpa" {
            type master;
            file "/etc/bind/db.255";
    };
    zone "seudominio.com.br" {
       type master;
       file "seudominio.com.br.external";
    };

O segredo da configuração das views é o parametro match-clients aonde na view interna digo quem são as redes internas
e na view externa digo que deve responder para qualquer rede (any) menos para rede interna(!lan_hosts).