我如何告诉 nsd3 为目录中的所有区域文件提供服务?

我如何告诉 nsd3 为目录中的所有区域文件提供服务?

我有这个目录结构:

\etc\nsd3
   |- nsd3.conf
   |- zones
   |   |- zonefile.com.zone
   |   |- zonefile2.com.zone

目前,我必须为每个希望提供 DNS 的区域文件在 nsd3.conf 中添加一个条目。

有没有办法让 nsd3 获取区域/目录中的所有区域文件?

谢谢-vox

答案1

您无法使用常规 NSD3 配置文件执行此操作:NSD 不知道(或不关心)您的区域文件命名方案。实施这样的操作会违反其 KISS 设计原则。

另一个使此问题变得困难的问题是,与 BIND 不同,NSD 不会自动从区域文件生成主/从区域传输 ACL。因此,您仍然必须以某种方式指定这些。

但你当然可以使用脚本来生成(部分)NSD 配置。快速模拟:

# nsd.conf:
server:
    # static configuration here

include: "/etc/nsd3/zones.conf"

#!/bin/sh    
for i in /etc/nsd3/zones/*.zone
do
    printf "zone:\nname: %s\nzonefile: %s\n" "$(basename $i zone)" "$i"
done > /etc/nsd3/zones.conf

相关内容