我正在尝试unbound
将 DNS 查询转发到权威 DNS 服务器,缓存它们,并添加其他本地信息。我的配置非常简单:
/etc/unbound/unbound.conf
:
server:
... # all default settings
include: "/etc/unbound/unbound.conf.d/*.conf"
forward-zone:
name: "."
forward-addr: 1.1.1.1 # authoritative server
local-data
然后我想在几个中添加一些local-zone
,例如:
/etc/unbound/unbound.conf.d/foobar.org.conf
server:
local-zone: "foobar.org." transparent
local-data: "foobar.org. 3600 IN SOA admin.foobar.org. admin.foobar.org. 1710435698 86400 3600 3600000 300"
local-data: "foobar.org. 3600 IN NS admin."
local-data: "foobar.org. 3600 IN MX 0 foobar.org"
local-data: "foobar.org. 3600 IN A 12.34.56.78"
local-data: 'system.at.foobar.org. 14400 IN TXT "[email protected]"'
local-data: "private.foobar.org. 3600 IN A 10.0.1.2"
local-data-ptr: "10.0.1.2 private.foobar.org."
local-data: "public.foobar.org. 3600 IN A 98.76.54.32"
local-data-ptr: "98.76.54.32 public.foobar.org."
...
此设置工作正常。local-data
记录得到很好的解决,PTRTXT
等也是如此。
但这真的是&需要配置的unbound
方式吗?local-zone
local-data
如果我将此设置与“经典”bind
区域文件进行比较:
$ORIGIN foobar.org.
$TTL 3600
@ IN SOA admin.foobar.org. admin.foobar.org. (
1710435698 ; Serial
86400 ; Refresh
3600 ; Retry
3600000 ; Expire
300 ) ; Negative Cache TTL
@ IN NS admin.
@ IN MX 0 foobar.org.
@ IN A 12.34.56.78
system.at IN TXT "[email protected]"
private IN A 10.0.1.2
public IN A 98.76.54.32
在这个bind
区域:
- 我不必为每条记录重复 TTL
- 我不必为每条记录重复区域名称
- 对于每条记录,我知道它们是该区域的一部分
所以我的问题是:我的设置是否正确,或者我是否在配置&unbound
的过程中遗漏了某些内容?并将记录链接到区域?local-zone
local-data
该
local-data
选项不使用“经典”区域文件,因为它从来不用于托管区域。Unbound 首先是一个缓存解析器(并且旨在与 NSD 一起进行权威托管);您使用的选项只是让您逐个覆盖DNS 回复。(这就是为什么你有像“透明”这样的本地区域模式——普通的权威区域不会这样做。)所以,是的,这就是需要配置的方式
local-data
,因为您试图让它做一些并非真正适合的事情。Unbound 的当前版本(显然从 1.7.x 开始)确实支持权威托管,但您可以使用单独的
auth-zone:
部分对其进行配置: