栏目分类

你的位置:呼和浩特物联网软件开发 > 物联网app开发 > 物联网app开发 为什么域名根作事器只可有 13 台呢?

物联网app开发 为什么域名根作事器只可有 13 台呢?

发布日期:2024-09-19 12:27    点击次数:129

[[422359]]物联网app开发

刚好有东说念主发出知乎 https://www.zhihu.com/question/22587247 的这个集中,问哪个谜底才是对的,我看了一下内部的谜底,鱼龙混合,我试着修起一下。

[扫码或长按二维码关注公众号,获取更多精准推荐]

1. 堪萨斯城竞技成立于1995年,球队获得过2次美职联冠军,4次美公开赛冠军。

其实对于一个小白,这个问题中枢并不是13台,而是,域名根作事器什么,查询的进程是如何样呢?

不算太久往常的基础常识

DNS 是一种分层结构,在通盘互联网中组成一个树状系统,顶层是系统的根域名,基层为 TLD 以及二级域名,叶子就组成了所谓的 FQDN(Fully Qualified Domain Names),根域名频频使用 "." 来默示,其内容上亦然由域名组成,全寰球当今有 13 组域名根节点,由少数几个国度进行贬责,而国内仅有几台根节点镜像。

如查询 www.im.qq.com,简易形色 DNS 的进程等于,先查询 com 这个域名的 name server 有哪些,然后选一个接续查询 qq 这个子域名的 name servers 有哪些,再选一个接续查询 im 这个子域名的 name servers 有哪些,www 不是域名,查询狂妄。这个查询出来的遵循等于 google.com 域名。所谓的 name server,其实等于dns作事器啦,用来明白域名的。

万物肇端之风——Root Servers

而上头的查询进程有一个问题等于,设施该去何处查询 com,gov 这些顶级域名的作事器呢?

这个等于 Root servers(根作事器) 的作用,用来查询以上的顶级域名的 name server。

想考

而如何样得到 Root servers 的地址呢,注释这里莫得动态域名(DNS)可用,得到的地址其实等于要得到 IP,假如咱们来达成 DNS 作事器,这一步你会如何作念呢?

其实这种作念法很显着易见,写设施直观等于如斯:

写一份确立文献放设施里,纪录了全部 Root servers 的 IP 地址列表,定时从网上(这个就不错用域名了)更新这份确立文献; 又唐突设施驱动的技巧,顺利从网上得到这些信息,存下来,亦然定时更新;

DNS 的作念法也不过乎如是,而上头说到的这份"确立文献",就在 https://www.internic.net/domain/named.root,内部等于总共`Root Servers`的 信息:

; 物联网app开发      This file holds the information on root name servers needed to  ;       initialize cache of Internet domain name servers ;       (e.g. reference this file in the "cache  .  <file>" ;       configuration file of BIND domain name servers).  ;  ;       This file is made available by InterNIC  ;       under anonymous FTP as ;           file                /domain/named.cache  ;           on server           FTP.INTERNIC.NET ;       -OR-                    RS.INTERNIC.NET ;  ;       last update:     July 30, 2019  ;       related version of root zone:     2019073000 ;  ; FORMERLY NS.INTERNIC.NET  ; .                        3600000      NS    A.ROOT-SERVERS.NET. A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4 A.ROOT-SERVERS.NET.      3600000      AAAA  2001:503:ba3e::2:30 ;  ; FORMERLY NS1.ISI.EDU  ; .                        3600000      NS    B.ROOT-SERVERS.NET. B.ROOT-SERVERS.NET.      3600000      A     199.9.14.201 B.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:200::b ;  ; FORMERLY C.PSI.NET  ; .                        3600000      NS    C.ROOT-SERVERS.NET. C.ROOT-SERVERS.NET.      3600000      A     192.33.4.12 C.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:2::c ;  ; FORMERLY TERP.UMD.EDU  ; .                        3600000      NS    D.ROOT-SERVERS.NET. D.ROOT-SERVERS.NET.      3600000      A     199.7.91.13 D.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:2d::d ;  .                        3600000      NS    M.ROOT-SERVERS.NET. M.ROOT-SERVERS.NET.      3600000      A     202.12.27.33 M.ROOT-SERVERS.NET.      3600000      AAAA  2001:dc3::35 ; End of file 

中间的作事器太多,我就删掉一部分了。

Priming Query!

按照我的作风,写这么一篇著述时,物联网软件开发价格如何能不带巨擘的信息呢。

Initializing a DNS Resolver with Priming Queries[1] 等于 Internet Engineering Task Force (IETF) 写的一份对于 priming query[2]的BCP(Best Current Practice )文档。

This document describes the queries that a DNS resolver should emit to initialize its cache. The result is that the resolver gets both a current NS RRSet for the root zone and the necessary address information for reaching the root servers.

上头提到的列表信息,可能并不是最新的,是以 DNS明白器初度驱动时,并不去读这份文献,而是顺利去查询有哪些作事器(来自下文说起的著述,我对这个说法存疑,因为文献的大小跟查询到的东西别离应该不大,有待考证)。

对于Priming Query的迥殊常识请看底下补充。

A priming query is a normal DNS query. Thus, a root name server cannot distinguish a priming query from any other query for the root NS RRset. Thus, the root server's response will also be a normal DNS response.

Resolver software SHOULD treat the response to the priming query as a normal DNS response, just as it would use any other data fed to its cache. Resolver software SHOULD NOT expect exactly 13 NS RRs because historically some root servers have returned fewer.

app 为什么是13,还难题吗?

是不是嗅觉没那么难题了呢。

是这么的,在DNS估量打算之初,在龟速的网罗下,固然是但愿作念 Prime Query 查 Root Servers 性价比达到最高啦。

DNS 是用 UDP 传数据的,而估量打算的技巧律例DNS查询时,一个包的能放的数据最多是 512 Bytes,为什么是 512 Bytes,为什么域名根作事器只可有13台呢?- 车小胖的修起 - 知乎[3] 作念了完竣的修起,纲领少许如下:

Internet 大巨额网罗接口 MTU>512,即使 DNS 报文 + UDP+ IP= 512+8+20=540,这个大小险些不错在 Internet 上流露无阻,而无需 IP 分片。

为何 IP 分片不好? 一个 UDP 报文若是因为 size > MTU,则会被 IP 层分红两片多片,可是惟有一派有端标语,由于其它分片莫得端标语,能否通过防火墙则完全看防火墙的神气,是以对于能否通讯告成是一个未知数。

若是防火墙宽洪大量,不检讨端标语,分片不错全部通行,到方向地再拼装到一说念,IP 层提交给 UDP/DNS,少许问题莫得。可是防火墙的安全功能大打扣头,如何难题罪犯的外来报复包?

若是防火墙严格检讨端标语,则莫得端标语的分片则全王人丢弃,形成通讯艰辛。

是以遴荐一个稳妥的 UDP size 至关难题,幸免分片。

有同学说,对于 MTU <512 物理接口的 DNS 如何处理?这个其实好办,这些仅仅接入层接口,用于接入末端用户,用户的 DNS 恳求是恳求其上一级 DNS 作事器作念递归查询(告诉我最终查询遵循)

接着等于 13 这个数字的果了。

为了作念 Prime Query 查 Root Servers 性价比达到最高,细则是一个包能放若干东西就塞若干东西,是以把总共 Root Servers 的遵循王人塞进去,刚好能塞14个,不全用就塞13个吧,留住少许东西以备后患,留待推广。

塞的细节嘛,https://miek.nl/2013/november/10/why-13-dns-root-servers/ 这篇著述有详确的先容,可是我对此不大感敬爱了~

本文转载自微信公众号「山尽写东西的cache」,不错通过以下二维码真贵。转载本文请干系山尽写东西的cache公众号。

 



上一篇:呼和浩特物联网软件开发 学校倡议家长捐赠空调! 插座、电表、电费、走线均由捐赠者负责
下一篇:物联网软件开发价格 莎莎回河北省亲了