我想了解该过程如何用于 CNAME 记录解析。假设我在 DNS 服务器 NS1 上有一条记录
proxy.example.com IN CNAME proxy.example1.com
NS1 对 example1.com 不具有权威性。在服务器 NS2 我有一个记录
proxy.example1.com IN A 1.2.3.4
proxy.example1.com
只能从客户端网络解析,而不能从 NS1 所在的网络解析。
如果客户端要求proxy.example.com
,服务器 NS1 将尝试代表客户端解析整个链还是返回名称proxy.example1.com
?如果它试图解决整个链,当它失败时会发生什么,因为 NS2 无法从 NS1 访问?它会向客户发送什么回复?
谢谢。
不,只有权威的服务器只会用它拥有的数据来回答。
相反,在这种跨区域别名的情况下,解析器服务器应该将最终结果拼凑在一起。
该问题没有详细说明 DNS 设置中的任何异常情况(除了奇怪的缺乏连接,但这可能不相关),因此我将仅描述通常预期的工作方式:
您的场景(为了简单起见,没有任何缓存):
proxy.example.com. IN A
a.root-servers.net
要求proxy.example.com. IN A
com
(指a.gtld-servers.net
)的推荐响应a.gtld-servers.net
要求proxy.example.com. IN A
example.com
(指"NS1"
)的推荐响应"NS1"
要求proxy.example.com IN A
proxy.example.com. IN CNAME proxy.example1.com.
a.root-servers.net
要求proxy.example1.com. IN A
com
(指a.gtld-servers.net
)的推荐响应a.gtld-servers.net
要求proxy.example1.com. IN A
example1.com
(指"NS2"
)的推荐响应"NS2"
要求proxy.example1.com. IN A
proxy.example1.com. IN A 1.2.3.4
proxy.example.com. IN CNAME proxy.example1.com.
proxy.example1.com. IN A 1.2.3.4