根域名服务器是域名解析系统(DNS)中最为顶级的域名服务器,它们负责管理顶级域的权威域名服务器地址。作为互联网基础设施的重要部分,所有域名的解析操作均离不开它们。下面我们将从 DNS 协议实现的角度分析为什么全球只有13组根域名服务器。
13组根域名服务器的信息
其中,13组根域名服务器以英文字母 a 到 m 顺序命名,域名格式为“a~m.root-servers.net”,如“b.root-servers.net”。
DNS 数据包的大小限制
我们知道 DNS 协议是应用层协议,大多数情况下依赖传输层的 UDP 协议进行数据的传输(仅在重试的情况下可能使用 TCP 协议)。根据RFC 791规定,未保证 UDP 数据包传输成功率,尽量数据包控制在 571 字节以使数据包不会被分片传输。
除去 UDP 数据包自身包头占用的字节数,DNS 数据包被设计为不超过512字节。
DNS 协议格式
下面我们从根域名解析的返回数据包截图:
我们假设根域名由 N 组,计算数据包各部分字节占用的情况如下:
综上所述,数据包总长度为12+5+(31+(15*(N-1))+16*N,再根据前述 DNS 大小限制不超过512字节的要求,可以得 N 不超过15组,再加上早期设计的时候考虑到预留一些 buffer 于是就有了现在全球13组根域名服务器的结果。
通过问题“全球为什么只有13台 DNS 服务器?”的讨论我们了解了 DNS 解析协议,下面我们将自己的动手搭建 DNS 服务器。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。