我有一个简单的规则来将我的指向domain.tld
本地地址192.168.0.205
。它包含所有内容;所有子域*.domain.tld
以及主域本身。
local-zone: "domain.tld." redirect
local-data: "domain.tld. IN A 192.168.0.205"
我的负载均衡器位于192.168.0.205
,因此为了让请求在内部工作,我需要这样做。但是,我的邮件服务器位于此网络之外,因此我需要对此做出三个例外:smtp.domain.tld
,imap.domain.tld
和domain.tld
它本身。我更希望我能让它们通过 ISP 的 DNS,但如果这不可能,我可以忍受在我的配置中设置它们的全局 IP。
我该怎么做?我尝试过使用transparent
而不是 ,redirect
但无法让它按我想要的方式工作。我认为主要问题之一是处理没有子域前缀的主域。
答案1
使用这种样式,多级通配符子域名:
local-zone: "sub.domain.tld." redirect
local-data: "sub.domain.tld. IN A 222.222.222.222"
local-zone: "domain.tld." redirect
local-data: "domain.tld. IN A 111.111.111.111"
答案2
对于我来说,使用 Unbound v1.9.0 时,此配置有效:
server:
# Resolve smtp and imap subdomains normally
local-zone: "smtp.domain.tld" transparent
local-zone: "imap.domain.tld" transparent
# Redirect domain.tld to a machine on the LAN
local-zone: "domain.tld" redirect
local-data: "domain.tld 3600 IN A 192.168.0.205"
请注意,这些语句的顺序很重要。按照从最具体到最不具体的顺序编写规则。
答案3
要使 MX 记录发挥作用,您可以使用以下构造。对邮件服务器子域使用 transparent。并将 MX 记录添加到重定向部分。
local-zone: "mail.domain.tld." transparent
local-zone: "domain.tld" redirect
local-data: "domain.tld IN A 192.168.0.205"
local-data: "domain.tld IN MX 0 mail.domain.tld."