如何在 Ubuntu 12 VPS 上为 50 个域创建区域?我有 webmin(允许我使用 BIND 创建/管理区域)。我能够弄清楚创建了什么才能成功添加区域。
但是为 50 个域创建记录非常耗时,而且我会犯错误。
快速添加相同内容的最佳方法是什么?有人可以分享一个 shell 脚本示例或其他实现方法吗?或者一些第三方工具可以帮助我实现相同功能?
每个区域的格式如下:
File 1: /etc/bind/named.conf.local
zone "dummy.org" {
type master;
file "/var/lib/bind/dummy.org.hosts";
};
----------------------
File 2: /var/lib/bind/<dummy.org.hosts>
$ttl 38400
dummy.org. IN SOA abc.com. dns.abc.com (
1366568118
10800
3600
604800
38400 )
dummy.org. IN NS ns1.abc.com.
dummy.org. 600 IN A <MyIP>
www.dummy.org. 600 IN A <My IP>
答案1
首先,你应该调整你的区域书写方法,使其可以在区域之间重复使用。避免使用以点结尾的 RR除非你明确需要。
- 您没有利用
@
代表当前原点的字符。默认情况下,区域文件的原点范围将与 named.conf 中的“zone”声明相同。(更简单地说,该@
字符将始终默认为您在 named.conf 中的“zone”后指定的字符,如果尚未出现,则会在末尾附加一个句点) - 您没有利用这样一个事实:以制表符或空格开头的行(必须省略记录的名称)被视为具有与前面的记录相同的名称范围。
- 如果您需要定义大量区域,而这些区域没有任何唯一区分记录,并且唯一改变的是区域名称,则它们都可以共享同一个区域文件。您只需确保对区域本身的任何引用都遵循提示 #1。(使用
@
) - 仅当引用当前区域之外的数据时才需要包含尾随的点。
www
将引用www.dummy.org.
此区域的内部。ns1.abc.com.
需要在末尾添加点,因为它位于dummy.org.
区域之外并且应该保持不变。
将上述内容运用到您当前的示例中:
- 记录
SOA
可以列出@
而不是dummy.org.
(提示 1) - 记录
NS
和第一条A
记录可以完全省略记录名称(提示 #2),或替换dummy.org.
为@
(提示 #1) www.dummy.org.
可以只是www
(提示#4)
如上所述删除唯一标识数据。此时,此区域文件将成为共享相同数据的任何其他区域的起点。将区域文件复制到其他区域文件,次数应适当,然后关注每个区域特有的数据。