bind9 – 一个域用于多个区域

bind9 – 一个域用于多个区域

我在公司内部维护一个带有 bind9 的 DNS 主机。我的问题是,我支持几个团队,我想将他们的配置拆分成单独的文件,但他们都有相同的域。所有 FQHN 都是 X.abc.com、Y.abc.com。我可以在一个区域下有多个文件吗?目前我的 named.conf 如果:

zone "abc.com" IN {
        type master;
        file "/ephemeral/bind_confs/all.ca";
        notify yes;
    };

我想要类似的东西:

zone "abc.com" IN {
        type master;
        files "/ephemeral/bind_confs/one.ca",
              "/ephemeral/bind_confs/two.ca";
        notify yes;
    };

答案1

典型的做法是创建多个区域,每个区域都有自己的区域文件:

zone "x.example.com" IN {
        type master;
        file "/ephemeral/bind_confs/com.example.x.conf";
        notify yes;
    };

zone "y.example.com" IN {
        type master;
        file "/ephemeral/bind_confs/com.example.y.conf";
        notify yes;
    };

zone "example.com" IN {
        type master;
        file "/ephemeral/bind_confs/com.example.conf";
        notify yes;
    };

*.x.example.com其中和的每个资源x.example.com都将放置在专用区域文件中,类似于 y.example.com 的资源和主区域文件中的所有其他资源。这将需要具有 SOA 记录的完整区域文件。

由于存在更具体的权威区域文件,因此应该有效地忽略在 example.com 的区域文件中输入的 *.x.example.com 的资源记录。

这是“适当的”控制委派,因为管理 x.example.com 的 DNS 数据的团队将无法覆盖或破坏主 example.com 区域,也不能干涉 y.example.com 区域。


在区域文件中,而不是主绑定配置文件中,您可以使用指令$INCLUDE包括来自外部文件的记录。包含的文件不是完整区域文件,它仅需包含您想要包含的记录。

 zone "example.com" IN {
        type master;
        file "/ephemeral/bind_confs/com.example.conf";
        notify yes;
    };

和区域文件/ephemeral/bind_confs/com.example.conf

$ORIGIN example.com.
$TTL 86400
@   SOA dns1.example.com.   hostmaster.example.com. (
        2001062501 ; serial
        21600      ; refresh after 6 hours
        3600       ; retry after 1 hour
        604800     ; expire after 1 week
        86400 )    ; minimum TTL of 1 day
;
;

$INCLUDE /ephemeral/bind_confs/com.example.y.data ; absolute path
...
ftp        IN      A   192.168.35.16

/ephemeral/bind_confs/com.example.y.data

ftp.y.example.com.        IN      A   192.168.1.16
www.y.example.com.        IN      A   192.168.1.17

问题在于没有控制权委托,没有什么可以阻止团队www.example.com.在 com.example.y.data 文件中设置记录。

相关内容