|
1
1
你的问题与编程无关。 但是:
只有两种类型的dns服务器(我们暂时不讨论存根情况):它要么是 权威的 nameserver(保存有关某些域的信息并作为其信任源)或 递归的 一个附加到缓存,基本上是从没有数据开始,然后根据它得到的查询逐步执行各种查询以获取信息。 从技术上讲,一台服务器可以同时执行这两种操作,但至少对于缓存的原因和不同的客户端群来说,这是一个坏主意:权威名称服务器通常对任何客户端开放,因为它需要在任何地方“扩散”其数据,而递归名称服务器通常只对选定的客户端列表(如isp客户端)开放。 目前有开放的公共递归名称服务器的大型组织:CyrdFLARE,谷歌,Que9等。然而,他们有硬件,链接,和人力来处理所有的困难来自公共递归名称服务器,如DDoS与放大。 Technicall你可以拥有一个递归名称服务器场,就像大型ISP需要做的(或以上大型公共服务器),因为任何单个实例都不能支持所有客户端查询,它们可以共享一个缓存或在一个层次结构中工作,底层实例将数据发送到另一个上游递归名称服务器,等等。
这种历史性的中庸方式可以概括为:一个请求到达,我的缓存中有它吗?如果没有,请在外部查询并缓存它。如果是,它在我的缓存中过期了吗?如果不是,则将其发送到客户端,但如果是,则需要将其从缓存中移除,然后从一开始就将其视为不在缓存中。 然后,您可以使用各种变体:
我建议你看看
您也可以阅读此文档: https://www.ietf.org/archive/id/draft-wkumari-dnsop-hammer-03.txt IETF互联网草案关于:
请务必阅读附录A中的许多有用示例,例如:
举一个例子,bind one,你可以读到:
|
|
|
Aivengo · NS Cloudflare的变化 3 年前 |