从子域查询父域以获取 non/authoritative 个名称
Query parent domain from sub domain for non/authoritative names
这个question/scenario让我很困惑。请帮忙!
假设我们有 3 台 DNS 服务器 - A、B 和 C。
A:缓存服务器;它服务递归查找 Internet 上的 DNS 名称。
B:服务于 example.com
的主 DNS 服务器
C: Master DNS server which servers sub.example.com <- sub domain name server of example.com
B有一个[forward only]语句,[forwarders]语句包含A的IP。
B 已将 [递归] 设置为 'no'。
对于非权威查询,比如google.com,请求从B到A。
服务器A用google.com IP地址响应B.
C 没有 example.com 区域,它将所有流量转发到 A。
我认为 example.com 的查询转到 A,A 用 example.com 响应 B。
因为,B 有一个 [forwards only] 语句并且它有 [A's IP address] 作为 [forwarders] 语句列表。
B 已将 [递归] 设置为 'no'
问题是...如果 C 尝试查找 google.com 的 IP 地址会发生什么?
如果 C 没有从 B 得到对 google.com 的响应,那么我该怎么办?请给我你的建议!
C 永远不应该那样做。
权威名称服务器,例如您示例中的 B 和 C,应该只响应对它们具有权威的区域的查询。对于 任何 其他查询,他们应该回答 REFUSED
或 SERVFAIL
。这既是出于安全原因(您不希望您的服务器滥用 DDoS 攻击)也是为了管理员的理智。由此可见,权威服务器永远不应该发送自己的查询,它们只响应发送给它们的查询。因此,在您的情况下,当被问及 google.com
.
时,B 和 C 都应拒绝回答
递归服务器,如您示例中的 A,是向其他服务器发送查询的服务器。 A 应该通过以正常方式从根向下递归来响应对 google.com
的查询。
由此得出的另一件事是 B 和 C 上的其他进程 运行 不能使用本地名称服务器守护进程进行名称解析(因为它们只会回答它们的授权区域)。所以在 B 和 C 上,resolv.conf
应该指向服务器 A。如果他们的查询是针对 example.com
或 sub.example.com
,A 将返回并查询 B 或 C 上的 auth 服务器,所以它可以回复原查询。
(当然,所有这些都假设您没有进行水平分割或其他更复杂的设置,但即便如此,如果您可以清楚地区分权威服务器和解析服务器,事情也会变得更容易理解。)
这让你更清楚了吗?
这个question/scenario让我很困惑。请帮忙!
假设我们有 3 台 DNS 服务器 - A、B 和 C。
A:缓存服务器;它服务递归查找 Internet 上的 DNS 名称。
B:服务于 example.com
的主 DNS 服务器
C: Master DNS server which servers sub.example.com <- sub domain name server of example.com
B有一个[forward only]语句,[forwarders]语句包含A的IP。
B 已将 [递归] 设置为 'no'。
对于非权威查询,比如google.com,请求从B到A。
服务器A用google.com IP地址响应B.
C 没有 example.com 区域,它将所有流量转发到 A。
我认为 example.com 的查询转到 A,A 用 example.com 响应 B。
因为,B 有一个 [forwards only] 语句并且它有 [A's IP address] 作为 [forwarders] 语句列表。
B 已将 [递归] 设置为 'no'
问题是...如果 C 尝试查找 google.com 的 IP 地址会发生什么?
如果 C 没有从 B 得到对 google.com 的响应,那么我该怎么办?请给我你的建议!
C 永远不应该那样做。
权威名称服务器,例如您示例中的 B 和 C,应该只响应对它们具有权威的区域的查询。对于 任何 其他查询,他们应该回答 REFUSED
或 SERVFAIL
。这既是出于安全原因(您不希望您的服务器滥用 DDoS 攻击)也是为了管理员的理智。由此可见,权威服务器永远不应该发送自己的查询,它们只响应发送给它们的查询。因此,在您的情况下,当被问及 google.com
.
递归服务器,如您示例中的 A,是向其他服务器发送查询的服务器。 A 应该通过以正常方式从根向下递归来响应对 google.com
的查询。
由此得出的另一件事是 B 和 C 上的其他进程 运行 不能使用本地名称服务器守护进程进行名称解析(因为它们只会回答它们的授权区域)。所以在 B 和 C 上,resolv.conf
应该指向服务器 A。如果他们的查询是针对 example.com
或 sub.example.com
,A 将返回并查询 B 或 C 上的 auth 服务器,所以它可以回复原查询。
(当然,所有这些都假设您没有进行水平分割或其他更复杂的设置,但即便如此,如果您可以清楚地区分权威服务器和解析服务器,事情也会变得更容易理解。)
这让你更清楚了吗?