这些DNS基础知识你都知道吗

CDN测评 0 246

DNS(Domain Name System), 也叫网域名称系统,是互联网的一项服务。它实质上是一个 域名 和 IP 相互映射的分布式数据库,有了它,我们就可以通过域名更方便的访问互联网。

DNS 有以下特点:

  • 分布式的

  • 协议支持 TCP 和 UDP,常用端口是 53

  • 每一级域名的长度限制是 63

  • 域名总长度限制是 253

那么,什么情况下使用 TCP,什么情况下使用 UDP 呢?

最早的时候,DNS 的 UDP 报文上限大小是 512 字节, 所以当某个 response 大小超过512 (返回信息太多),DNS 服务就会使用 TCP 协议来传输。后来 DNS 协议扩展了自己的UDP 协议,DNS client 发出查询请求时,可以指定自己能接收超过512字节的 UDP 包, 这种情况下,DNS 还是会使用 UDP 协议。


分层的数据库结构

DNS 的结构跟 Linux 文件系统很相似,像一棵倒立的树。下面用站长之家的域名举例:

最上面的.是根域名,接着是顶级域名com,再下来是站长之家域名 chinaz 依次类推。使用域名时,从下而上。s.tool.chinaz.com. 就是一个完整的域名,www.chinaz.com. 也是。

之所以设计这样复杂的树形结构, 是为了防止名称冲突。这样一棵树结构,当然可以存储在一台机器上,但现实世界中完整的域名非常多,并且每天都在新增、删除大量的域名,存在一台机器上,对单机器的存储性能就是不小的挑战。另外,集中管理还有一个缺点就是管理不够灵活。可以想象一下,每次新增、删除域名都需要向中央数据库申请是多么麻烦。所以现实中的 DNS 都是分布式存储的。

根域名服务器只管理顶级域,同时把每个顶级域的管理委派给各个顶级域,所以当你想要申请com下的二级域名时,找 com 域名注册中心就好了。例如你申请了上图的 chinaz.com 二级域名,chinaz.com 再向下的域名就归你管理了。当你管理 chinaz.com 的子域名时,你可以搭建自己的 nameserver,在 .com 注册中心把 chinaz.com 的管理权委派给自己搭建的nameserver。自建nameserver 和不自建的结构图如下:

一般情况下,能不自建就不要自建,因为维护一个高可用的 DNS 也并非容易。据我所知,有两种情况需要搭建自己的 nameserver:

  1. 搭建对内的 DNS。公司内部机器众多,通过 IP 相互访问太过凌乱,这时可以搭建对内的 nameserver,允许内部服务器通过域名互通

  2. 公司对域名厂商提供的 nameserver 性能不满意。虽然顶级域名注册商都有自己的nameserver,但注册商提供的 nameserver 并不专业,在性能和稳定性上无法满足企业需求,这时就需要企业搭建自己的高性能 nameserver,比如增加智能解析功能,让不同地域的用户访问最近的 IP,以此来提高服务质量

概括一下 DNS 的分布式管理, 当把一个域委派给一个nameserver后,这个域下的管理权都交由此nameserver处理。这种设计一方面解决了存储压力,另一方面提高了域名管理的灵活性 (这种结构像极了Linux File System, 可以把任何一个子目录挂载到另一个磁盘,还可以把它下面的子目录继续挂载出去)

顶级域名

像 com 这样的顶级域名,由 ICANN 严格控制,是不允许随便创建的。顶级域名分两类:

  • 通用顶级域名

  • 国家顶级域名

通用顶级域名常见的如.com、.org、.edu等, 国家顶级域名如我国的.cn, 美国的.us。一般公司申请公网域名时,如果是跨国产品,应该选择通用顶级域名;如果没有跨国业务,看自己喜好(可以对比各家顶级域的服务、稳定性等再做选择)。这里说一下几个比较热的顶级域,完整的顶级域参见维基百科。

me

me顶级域其实是国家域名, 是黑山共和国的国家域名,只不过它对个人开发申请,所以很多个人博主就用它作为自己的博客域名(本博客也是这么来的~)

io

很多开源项目常用io做顶级域名,它也是国家域名。因为io 与计算机中的 input/output 缩写相同,和计算机的二机制10也很像,给人一种geek的感觉。相较于.com域名,.io下的资源很多,更多选择。

聊完了 DNS 的基本概念,我们下一篇再来聊一聊 DNS 的解析流程这篇就先到这里 需要购买CDN解决移动屏蔽可以联系我哦5765953

也许您对下面的内容还感兴趣:

留言0

评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。