我理解 DNS 客户端和 DNS 递归解析器之间的 DNS 查询数据包包含客户端的 IP 地址和 MAC 地址。
当递归解析器依次查询权威名称服务器时,会发生下列哪种情况?
每个 DNS 查询数据包(从递归解析器到每个权威 DNS 服务器)包括(例如,为了帮助识别数据包及其用途)与递归解析器从原始客户端收到的查询中存在的 IP 地址和/或 MAC 地址相同;并且将递归解析器的 IP 地址和/或 MAC 地址添加到数据包中,以确保可以将响应路由到递归解析器。即权威服务器会从查询中可能能够确定递归解析器从中接收原始查询的计算机的 IP 地址和/或 MAC 地址。
每个 DNS 查询数据包(从递归解析器到每个权威 DNS 服务器)不包括递归解析器从原始客户端收到的查询中存在的 IP 地址或 MAC 地址。递归解析器的 IP 地址和/或 MAC 地址包含在数据包中,以确保响应可以路由到递归解析器。即权威服务器不会能够从查询中确定递归解析器从中接收原始查询的计算机的 IP 地址和/或 MAC 地址。
还有别的。如果是的话,是什么?
如果您能注明答案的来源我将不胜感激。
答案1
DNS 使用 UDP 和 TCP,它们都位于 IP 之上。
两个 DNS 服务器之间的连接或交换由 4 个成员元组定义:源 IP 地址、源端口、目标 IP 地址、目标端口(对于 DNS,大部分硬编码为 53)。
MAC 地址,位于 IP“下方”,与此无关,正如评论中已经解释的那样。
因此,每个权威名称服务器在网络级别只会看到提出问题的递归名称服务器的源 IP/端口。
现在:
- 递归名称服务器可以在终端主机上运行,因此,在这种情况下,无需任何类型的转发,所有权威名称服务器看到的源 IP 将是终端客户端的 IP
- 有时查询的内容也会透露很多信息,就像源 IP 一样。请参阅有关 QNAME 最小化的新标准:RFC7816 有了它,每个名称服务器只会获得其需要回复的标签,而不是整个名称。
- 一些递归域名服务器可以使用 EDNS 客户端子网 (ECS) 扩展,请参阅RFC7871。通过它,递归名称服务器将把最终客户端源 IP 的“部分”连同查询一起发送到权威名称服务器。这个想法是为了帮助 CDN 和地理定位,以便将负载/地理平衡的资源作为靠近最终客户端的 IP 提供给最终客户端,而不一定靠近递归名称服务器。递归名称服务器必须明确配置为发送它(并选择掩码的大小,默认情况下通常为
/24
),并且权威名称服务器必须配置为使用此信息