DNS服务的配置与管理(2) DNS的理论知识

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介:

1. DNS域名空间

如果网络规模较小,那么使用hosts文件是一个非常简单的解决方案,但对于目前已经包括有几十亿台主机的Internet,hosts文件很明显无法满足要求。所以在Internet中才又引入了DNS系统,它的工作机制相比hosts要复杂、高效得多。

DNS系统采用的是分布式的解析方案,整个DNS架构是一种层次树状结构,这个树状结构称为DNS域名空间。

 在这个树状结构的最顶层称为根域,根域用“·”表示,相应的服务器称为根服务器,互联网管理委员会规定,整个域名空间的解析权都归根服务器所有,也就是说根服务器对互联网上所有的域名都享有完全的解析权!同时为了减轻根服务器的压力,又采用了一种“委派”机制,将位于根域下一层的顶级域分别委派给不同的顶级域服务器进行解析。
如根服务器把com域的域名解析权委派给com域服务器,以后凡是接收到以com结尾的域名解析请求,根服务器都会转发给com域服务器,由它对域名进行解析。
由根服务器委派的域名主要有:net、org、edu、gov、cn、uk……,这些被根服务器委派的域名称为顶级域名。
每个顶级域名都有预设的用途,例如com域名用于商业公司,edu域名用于教育机构,gov域名用于政府机关等等,这种顶级域名也被称为顶级机构域名。根服务器还针对不同国家进行了域名委派,例如把所有以cn结尾的域名委派给中国互联网管理中心,以uk结尾的域名委派给英国互联网管理中心,cn、uk这些顶级域名被称为顶级地理域名。
每个被委派的域名服务器再同样使用委派的方式向下发展,例如中国互联网管理中心在.cn顶级域名下面又设置了一些二级域名:.com.cn、.net.cn、.edu.cn……,并将这些二级域名的解析权委派给相应的服务器。

当一个公司或个人要申请域名时,就得去这些顶级或者二级域名服务器那里进行注册。例如新浪公司想申请使用sina.com.cn域名,这时新浪就要向负责.com.cn域名的DNS服务器提出申请,只要sina.com.cn还没有被其他公司或个人使用,而且申请者按时足额缴纳了费用,负责.com.cn域名的服务器就会把sina.com.cn这个域名委派到新浪公司自己的DNS服务器上。
这样通过层层委派,就逐步形成了现有的这种分布式的域名空间架构。这种架构把域名解析权最终下放到各公司自己的DNS服务器上,这样既有利于及时更新记录,同时对平衡流量压力也很有好处。
对于有些公司虽然注册了域名,但是并不希望花费财力来架设DNS服务器进行域名解析,这时可以将域名解析权委托给一些域名服务提供商,由其代为解析。如万网就是一家国内著名的域名服务提供商。

2. DNS域名结构

 
在DNS这种层次树状域名空间中,每一层都有不同的含义和相应的表示方法。
(1)对于最顶层的根域(root),一般用一个“.”表示。
(2)顶级域,直接处于根域下层,由根域对其进行委派,一般代表一种类型的组织机构或国家地区。
按使用范围不同,顶级域分为三种类型:
     国际通用的顶级域名,包括net、com、org。
     美国专用的顶级域名,包括edu、gov、mil等
     国家或地区顶级域名,包括cn、jp、hk、uk等
世界上所有国家的组织或个人都可以在国际通用顶级域名下面注册,而美国专用的顶级域名则只有美国的组织或个人可以使用,国家顶级域名则为每个国家所专有,只有该国的组织或个人可在其下面注册。
(3)二级域,在顶级域下面,由顶级域对其进行委派,用来标明顶级域内的一个特定的组织。
在Internet中,顶级域和二级域都由ICANN(互联网名称与数字地址分配机构)负责管理和维护,以保证它们的唯一性。国家顶级域名下面的二级域名则是由所在国家的网络部门统一管理的。
(4)子域,在二级域的下面所创建的域,可以由各个组织或用户自由申请注册。
(5)主机,是域名空间的最下面一层,也就是一台具体主机的计算机名。
如上图中的www、mail都是具体的计算机的名字,我们可以用 www.xxx.com、mail.xxx.com来表示它们,这种表示方式称为FQDN名(完全合格域名),也就是这台主机在域中的全名。我们平时上网时所输入的网址也都是一些FQDN名,如 www.sina.com.cn,这其实是表示我们要访问“sina.com.cn”域中一台名为“www”的计算机。DNS的作用就是将每个域中的FQDN名解析为这些计算机所对应的IP地址,以使用户可以通过名字访问它们。
 
3. DNS名称解析的方式
 
在DNS这种分布式的体系结构中,DNS服务器如何进行域名解析呢?比如一台客户机想要访问网站 www.benet.com.cn,整个DNS解析的过程如下图所示。

客户机首先把解析请求发送到自己的本地域名服务器上,如果这台DNS服务器中正好有这个名字所对应的IP,那就可以直接将结果发回给客户机。如果服务器中没有相关记录,那就得展开下面的一系列求助过程。
首先他要把这个域名发送到根服务器去请求解析,根服务器发现这个域名是以cn结尾的,于是告诉查询者这个域名应该询问负责cn的DNS服务器。这时查询者会转而向负责cn的域名服务器发出查询请求,负责cn域名的服务器发现域名是以com.cn结尾,就将负责com.cn的DNS服务器发给查询者。查询者只能再向com.cn服务器发出查询请求,com.cn服务器回答说“www.benet.com.cn”是以benet.com.cn结尾的域名,以benet.com.cn结尾的域名已经被委派到DNS服务器benet.com.cn了,因此这个域名的解析应该去问他。于是查询者最后向benet.com.cn服务器发出查询请求,这次应该可以如愿以偿了,benet.com.cn服务器会告诉查询者所需要的答案,查询者拿到这个答案后,会把这个查询结果放入自己的缓存中,如果在缓存的有效期内有其他DNS客户再次请求这个域名,DNS服务器就会利用自己缓存中的结果响应用户,而不用再去根服务器那里跑一趟了。

在上面的名称解析的过程中,分别用到了两种不同类型的查询,分别是客户机和本地DNS服务器之间的递归查询以及DNS服务器与服务器之间的迭代查询。
  • 递归查询:客户端计算机和DNS服务器之间都是采用递归查询,客户端得到结果只能是成功或失败 。 
  • 迭代查询:DNS服务器与服务器之间进行的查询。从根服务器开始逐级往下查询,直至找到最佳结果。
在迭代查询的过程中,根服务器非常重要,从理论上来讲,如果根服务器全部崩溃,那么整个互联网也将瘫痪。在已安装好的DNS服务器的属性设置中有一项“根提示”,即是一项允许本地DNS服务器查询根DNS服务器的功能,其中列出了13台根服务器的地址。对于Internet,这13台根服务器至关重要,所以为了提高安全性,这些根服务器分别部署在不同的国家,其中10台设置在美国,另外分别各有一台设置于英国、瑞典和日本。

本文转自 yttitan 51CTO博客,原文链接:http://blog.51cto.com/yttitan/1158218


相关文章
|
3月前
|
存储 缓存 算法
分布式锁服务深度解析:以Apache Flink的Checkpointing机制为例
【10月更文挑战第7天】在分布式系统中,多个进程或节点可能需要同时访问和操作共享资源。为了确保数据的一致性和系统的稳定性,我们需要一种机制来协调这些进程或节点的访问,避免并发冲突和竞态条件。分布式锁服务正是为此而生的一种解决方案。它通过在网络环境中实现锁机制,确保同一时间只有一个进程或节点能够访问和操作共享资源。
144 3
|
2月前
|
域名解析 缓存 网络协议
浏览器中输入URL返回页面过程(超级详细)、DNS域名解析服务,TCP三次握手、四次挥手
浏览器中输入URL返回页面过程(超级详细)、DNS域名解析服务,TCP三次握手、四次挥手
|
2月前
|
安全 测试技术 数据安全/隐私保护
原生鸿蒙应用市场开发者服务的技术解析:从集成到应用发布的完整体验
原生鸿蒙应用市场开发者服务的技术解析:从集成到应用发布的完整体验
|
2月前
|
域名解析 存储 缓存
DNS是什么?内网电脑需要配置吗?
【10月更文挑战第22天】DNS是什么?内网电脑需要配置吗?
459 1
|
3月前
|
机器学习/深度学习 调度
mmseg配置解析 Polynomial Decay 多项式衰减
Polynomial Decay(多项式衰减)是一种常用的学习率调度方法,通过多项式函数逐步减少学习率,帮助模型更好地收敛。公式为:\[ lr = (lr_{initial} - \eta_{min}) \times \left(1 - \frac{current\_iter}{max\_iters}\right)^{power} + \eta_{min} \]。参数包括初始学习率、最小学习率、当前迭代次数、总迭代次数和衰减指数。适用于需要平滑降低学习率的场景,特别在训练后期微调模型参数。
96 0
mmseg配置解析 Polynomial Decay 多项式衰减
|
3月前
|
网络协议 Docker 容器
docker中的DNS配置
【10月更文挑战第5天】
755 1
|
3月前
|
JSON JavaScript 前端开发
深入解析ESLint配置:从入门到精通的全方位指南,精细调优你的代码质量保障工具
深入解析ESLint配置:从入门到精通的全方位指南,精细调优你的代码质量保障工具
133 0
|
3月前
|
编解码 计算机视觉
mmseg配置解析 align_corners=False
`align_corners=False` 是图像插值操作中的一个参数,影响输入和输出图像的角点对齐方式。`align_corners=True` 严格对齐角点,而 `align_corners=False` 均匀分布像素点,更适用于保持整体比例关系的任务,如语义分割。
66 0
|
3月前
|
机器学习/深度学习 编解码
mmseg配置解析 contract_dilation=True
`contract_dilation=True` 是 ResNetV1c 中的一种设置,用于解决多层膨胀卷积中的“栅格效应”。通过调整膨胀率,使卷积核在不同阶段更密集地覆盖输入特征图,避免信息丢失,提升特征提取质量,尤其在语义分割任务中效果显著。
61 0
|
3月前
|
网络安全 Docker 容器
【Bug修复】秒杀服务器异常,轻松恢复网站访问--从防火墙到Docker服务的全面解析
【Bug修复】秒杀服务器异常,轻松恢复网站访问--从防火墙到Docker服务的全面解析
130 0

相关产品

  • 云解析DNS
  • 推荐镜像

    更多