当我在 .NET 服务器上查询 ns 服务器时,答案总是以相同的顺序:
dig ns google.net @F.GTLD-SERVERS.net +short
ns1.google.com.
ns2.google.com.
ns3.google.com.
ns4.google.com.
如果我不使用 .net 服务器 anwser 旋转:
dig ns google.net +short
ns4.google.com.
ns1.google.com.
ns2.google.com.
ns3.google.com.
dig ns google.net +short
ns2.google.com.
ns1.google.com.
ns4.google.com.
ns3.google.com.
com。服务器似乎像网络一样工作。服务器(无轮换),但 org. 服务器和我尝试过的所有其他服务器似乎都在轮换答案。
为什么网。和 com。服务器不轮换他们的答案?
简短的回答可能是“他们为什么要这样做?” 或“为什么另一个人这样做?”,但简短的回答有什么乐趣?
它主要取决于服务器上运行的软件配置,BIND 有一个名为的配置指令
rrset-order
,它就是这样做的,例如,如果你有:BIND 将始终按照它们在区域文件中的顺序返回资源记录。
和 :
记录将以随机顺序返回。
随机性的事情是它不存在于计算机中。操作系统通过收集“随机”事件(如中断、网络流量、键盘或鼠标事件等)来创建伪随机性付出了巨大的努力。
但是你调用的越多
random(3)
,它给出的随机值就越少,它的结果就越能被预测。在我们的例子中,DNS 查询结果的随机性,即 com. 和净。永远不会(好吧,他们可以,但你不想弄乱胶水)被用来返回结果,比如 www.google.com,这是 google.com 的名称服务器业务,所以,它没有坏处总是以相同的顺序返回 google.com 的名称服务器,一旦您的递归名称服务器获取它们,它将以循环方式使用它们来进行查询。