10. 如何配置绑定网络?(PTR)

10. 如何配置绑定网络?(PTR)

我正在尝试为 10.0.1.0/24 网络配置一个区域。

我已经定义了 rfc1918 区域,但是由于我需要它,所以我注释掉了 10.in-addr.arpa 网络。

然后我配置了一个 db.1.0.10 文件(10.0.1.0/24 网络的反向)...

但随后必须为所有其他 10 个网络(不是 10.0.1.1/24)创建一个 db.10 文件 - 这是一个 4Mb 的文件,包含以下内容:

zone "0.0.10.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
//zone "1.0.10.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "2.0.10.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "3.0.10.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
... (65531 more lines)
zone "255.255.10.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };

我觉得这不合理,bind 启动需要很长时间。此外,它现在占用了我稀缺的 512Mb 内存的 79.7%。

在你停止大笑之后,你能告诉我如何才能绑定类似的东西吗:

嘿,伙计,10.something 是空的,除了 10.0.1.something,你可以在 1.0.10.db 文件中查找。

答案1

你要:

zone "10.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };

然后只需在 db.empty 中定义您需要的 PTR 记录(实际上不是空的)。

如果您觉得需要定义多个记录并且只需要增加一个数字,请使用 $GENERATE 指令,尽管我猜不出为什么要对整个 10.0.0.0/8 空间执行此操作。在 Google 上搜索“BIND $GENERATE 指令”(不带引号)。使用 $GENERATE,您可以设置一个模板,而不必输入所有这些 A 记录和 PTR 记录。示例:

$GENERATE 10-20 wks$ IN A 192.168.2.$

将生成记录(在内存中)

wks10 IN A 192.168.2.10
wks11 IN A 192.168.2.11
wks12 IN A 192.168.2.12
and so on

类似例子:

$GENERATE 10-20 wks$.something. IN A 192.168.2.$
$GENERATE 10-20 10.0.0.$  IN PTR wks$.somewhere
$GENERATE 10-20 10.0.0.$  IN PTR empty.somewhere

注意:最后一种被认为是“不好的形式”,因为它有多个 IP 指向一个主机名。但这并不是说它不起作用。

此指令可用于多种记录类型(A、PTR 等)。我无论如何也记不住整个 10.xxx IP 空间的语法。建议阅读 $GENERATE 指令(通过 Google)和/或获取 O'Reilly 书籍“DNS 和 BIND”。

注意:这种技术将节省您的磁盘空间和大量的输入,但是,IIRC,它仍然会占用内存。

相关内容