在为"host1.cool.com“的"A”记录查询权威名称服务器(在VM中使用bind本地实现)时,它在内部使用递归(可能)解析查询,并返回实际的"A“记录。我需要名称服务器用一个CNAME记录回答每个查询,递归解析器可以发出多个dns查询来解析名称。但是,我无法将“递归不;”设置为"named.conf.options“。
我的查询(来自另一台计算机):
dig A @192.168.0.115 host1.cool.com答复是整个CNAME链,最后的答案是:
;; ANSWER SECTION:
host1.cool.com. 5 IN CNAME host2.cool.com.
host2.cool.com. 5 IN CNAME host3.cool.com.
host3.cool.com. 5 IN CNAME host4.cool.com.
host4.cool.com. 5 IN CNAME host5.cool.com.
host5.cool.com. 5 IN CNAME host6.cool.com.
host6.cool.com. 5 IN CNAME host7.cool.com.
host7.cool.com. 5 IN A 22.33.44.55我希望名称服务器只响应一条CNAME记录,即使是"A“查询也是如此。也许是这样的:
host1.cool.com CNAME host2.cool.com我的named.conf.local文件
zone "cool.com" IN {
type master;
file "/etc/bind/db.cool.com";
allow-transfer { none; };
};和named.conf.options文件
options {
directory "/var/cache/bind";
auth-nxdomain no;
allow-query { any; };
allow-transfer { none; };
recursion no;
};db.cool.com文件
@TTL 5S
@ IN SOA @ hostmaster.cool.com. (
0, 3H, 1H, 1W, 3H )
@ IN NS ns1.cool.com.
@ IN NS ns2.cool.com.
@ IN A 98.87.76.65
ns1 IN A 10.20.30.40
ns2 IN A 10.20.30.41
host1.cool.com. IN CNAME host2.cool.com.
host2.cool.com. IN CNAME host3.cool.com.
host3.cool.com. IN CNAME host4.cool.com.
host4.cool.com. IN A 22.33.44.55如何将绑定配置为内部不使用递归来解析查询?
发布于 2021-01-29 12:40:43
这种行为会破坏CNAME。如果您不想获取IP地址,则不应该查询A/AAAA资源记录,而是向服务器显式地请求CNAME。
引用RFC 1034:
CNAME RRs导致DNS软件中的特殊操作。当名称服务器无法在与域名关联的资源集中找到所需的RR时,它会检查资源集是否由具有匹配类的CNAME记录组成。如果是,则名称服务器在响应中包含CNAME记录,并在CNAME记录的数据字段中指定的域名上重新启动查询。这个规则的一个例外是匹配CNAME类型的查询不会重新启动。例如,假设一个名称服务器正在为USC-ISIC.ARPA处理一个查询,请求A类型信息,并且拥有以下资源记录:USC-ISIC.ARPA在CNAME C.ISI.EDU C.ISI.EDU中的一个10.0.0.52,这两个RRs将在对A类型查询的响应中返回,而一个类型CNAME或*查询应该只返回CNAME。
在DNS语言中,递归是指DNS服务器解析从根区域开始的名称,递归下降区域,直到到达终端标签,查询所需的RR。
https://serverfault.com/questions/1051653
复制相似问题