BIND9 按视图转发

Tri*_*ian 2 domain-name-system configuration bind internal-dns

嗨,我认为这是一个简单的问题,我只想转发到 LAN 网络中的某些 IP,例如我有 2 个 acl 列表:

acl "office1" {
    192.168.1.15; // With internet access
};

acl "production" {
    192.168.1.101; // No internet access
};
Run Code Online (Sandbox Code Playgroud)

我知道可能应该有更有效的方法来限制互联网访问,但目前这是我想尝试的。这是我尝试过的 named.conf.local

// Inlcude my acl definitions
include "/etc/bind/acls.conf";

view "no-internet" {
    match-clients { production; };
    include "/etc/bind/named.conf.default-zones";
    zone "localdomain.com" {
       type master;
       file "/etc/bind/db.localdomain.com";
    };
    zone "1.168.192.in-addr.arpa" {
       type master;
       file "/etc/bind/db.192.168.1";
    };
}

view "internet" {
    match-clients { office1; };
    include "/etc/bind/named.conf.default-zones";

    forwarders {
            201.56.59.14; // Made Up
            201.56.59.15; // Made Up
    };

    zone "localdomain.com" {
       type master;
       file "/etc/bind/db.localdomain.com";
    };

    zone "1.168.192.in-addr.arpa" {
       type master;
       file "/etc/bind/db.192.168.1";
    };
};
Run Code Online (Sandbox Code Playgroud)

如您所见,我希望localdomain.com为网络中的每台计算机定义一个,并将 Internet 访问转发到办公室中的计算机,而不是生产车间的计算机。


我已经修改了我的 conf 文件,但是"no-internet"acl 中的 IP能够解析域,即使我已经重新启动计算机,使用刷新 DNSipconfig /flushdns并将我的 DNS 服务器设置为唯一的,为什么这仍然发生?提前致谢。

小智 5

视图中不能有选项,但是可以直接使用转发器

view "internet" {
    match-clients { office1; };
    recursion no;
    forwarders {
            201.56.59.14; // Made Up
            201.56.59.15; // Made Up
    };
};
Run Code Online (Sandbox Code Playgroud)