10个基于java的cms网站内容管理系统(DNS原理及其解析过程精彩剖析大部分域名)
优采云 发布时间: 2022-04-20 05:0010个基于java的cms网站内容管理系统(DNS原理及其解析过程精彩剖析大部分域名)
DNS原理及其解析过程
精彩分析
大部分网络通信都是基于TCP/IP的,而TCP/IP是基于IP地址的,所以计算机在网络上通信时,只能识别“202.96. 13 4.133”,但不是域名。我们不记得有超过10个IP地址的网站,所以当我们访问网站时,我们大多在浏览器地址栏看到想要的页面,那是因为有一台叫做“DNS服务器”的电脑会自动将我们的域名“翻译”成对应的IP地址,然后调出IP地址对应的网页。
什么是 DNS?
DNS(域名系统)是“域名系统”的英文缩写。它是组织成域层次结构的计算机和网络服务命名系统。它用于 TCP/IP 网络。它提供的服务用于将主机名和域名转换为 IP 地址的工作。 DNS就是这样一个“翻译器”,它的基本工作原理可以用下图来表示。
DNS 域名
域名系统充当分层和分布式数据库,收录各种类型的数据,包括主机名和域名。 DNS 数据库中的名称形成称为域名称空间的层次树结构。域名收录一个以标签分隔的点,例如:.
完全限定域名 (FQDN) 唯一标识主机在 DNS 层次结构树中的位置,由以点分隔的主机名列表分隔,这些主机名由指定路径从根目录引用。下图显示了一个名为 im 的主机的 DNS 树示例。主机的 FQDN 是。
DNS域名空间结构,又称全限定域名:
全球只有13个根域名服务器(没有中国)
DNS 域命名空间的组织方式
下表描述了用于按功能描述命名空间中 DNS 域名的五个类别,以及每种名称类型的示例。
顶级域也称为一级域,二级域也称为二级域,主机名也称为三级域。三级域是自己申请二级域后自己定义的
根域名服务器只负责管理一级域名,一级域名服务器只负责管理二级域名,以此类推
DNS 和 Internet 域
Internet 域名系统由名称注册机构维护,并通过按组织和国家/地区分配顶级域在 Internet 上进行管理。这些域符合国际标准 3166。下表显示了为组织使用而保留的许多现有缩写,以及两个字母和三个字母的国家/地区缩写。一些常见的DNS域名如下:
组织域
国家或地区
资源记录
DNS 数据库中收录的资源记录 (RR)。每个 RR 标识数据库中的特定资源。我们在搭建DNS服务器的时候,经常会用到SOA、NS、A等记录,而在维护DNS服务器的时候,我们会用到MX、CNAME记录。
常见的RR如下图所示:
DNS服务工作流程
当 DNS 客户端需要查找程序中使用的名称时,它会查询本地 DNS 服务器来解析该名称。客户端发送的每个查询消息都收录 3 条信息,用于指定服务器应回答的问题。
● 指定的 DNS 域名,表示为完全限定域名 (FQDN)。
● 指定查询类型,可以按类型指定资源记录,也可以作为特殊类型的查询操作。
● DNS 域名的指定类别。
对于 DNS 服务器,应始终将其指定为 Internet 类别。例如,指定的名称可以是计算机的全限定域名,例如,指定的查询类型用于通过该名称搜索地址资源记录。
DNS 查询以多种不同的方式进行解析。客户端有时还可以使用从先前查询中获得的缓存信息来就地回答查询。 DNS 服务器可以使用自己的资源记录信息缓存来回答查询,或者可以代表请求客户端查询或联系另一个 DNS 服务器以完全解析名称,然后将答案返回给客户端。这个过程称为递归。
或者,客户端本身可能会尝试联系另一个 DNS 服务器来解析名称。如果客户端这样做,它会根据服务器的回答使用单独和附加的查询,这个过程称为迭代,即DNS服务器之间的交互查询是一个迭代查询。
DNS查询流程如下图所示。
1、在浏览器中输入域名,操作系统会先检查本地hosts文件是否有这个URL映射关系。如果是,会先调用IP地址映射,完成域名解析。
2、如果hosts中没有这个域名的映射,查找本地DNS解析器缓存,看是否有这个URL的映射关系,如果有,直接返回补全域名称解析。
3、如果主机和本地DNS解析器缓存之间没有对应的URL映射,则会先找到TCP/ip参数中设置的首选DNS服务器。这里我们称之为本地 DNS 服务器。本服务器接收到查询时,如果要查询的域名收录在本地配置区资源中,则将解析结果返回给客户端完成域名解析,具有权威性。
4、如果要查询的域名不是本地DNS服务器解析的,但是服务器已经缓存了URL映射关系,则调用IP地址映射完成域名解析,不是权威。
5、如果本地DNS服务器的本地区域文件和缓存解析无效,则根据本地DNS服务器的设置(是否设置转发器)进行查询。如果不使用转发方式,本地DNS会向13根DNS发送请求,根DNS服务器收到请求后,判断谁有权管理这个域名(.com),并返回一个IP负责顶级域名服务器。本地DNS服务器收到IP信息后,会联系负责.com域的服务器。负责.com域的服务器收到请求后,如果不能自行解析,就会找下一级的DNS服务器地址()管理.com域到本地DNS服务器。当本地DNS服务器收到这个地址后,会找到域服务器,重复以上动作,查询直到找到主机。
6、如果使用转发方式,DNS服务器会将请求转发给上级DNS服务器进行解析。如果上级服务器无法解析,或者找到根 DNS 或 将传输请求转发给上级,循环往复。无论本地DNS服务器是使用转发还是root提示,最终都会将结果返回给本地DNS服务器,再由DNS服务器返回给客户端。
从客户端到本地DNS服务器是递归查询,DNS服务器之间的交互查询是迭代查询。
附录:
本地DNS配置转发和未配置转发包分析
新建一个DNS,这里就不介绍如何搭建了,看我上一篇博文《在Win2003中安装bind [部署智能DNS]》
1、DNS 服务器未设置转发
在192.168.145.228服务器上安装wireshark软件,打开,设置数据包为UDP过滤,在192.16< @8.145.12 使用nslookup命令查询客户端,立即可以看到本地DNS服务器直接查看全球13个根域中的一部分,然后一步步解析。直到找到对应的IP为220.181.118.87。
本地DNS服务器拿到IP后,将IP返回给192.168.145.12客户端完成解析。
2、DNS 服务器集转发
由于第一步验证时使用了域名,有缓存,为了不被前面的实验干扰,我们设置为192.168. 145.12 在客户端 nslookup 上。从图中本地DNS将请求转发到192.168.133.10服务器,133.10服务器将获取到的IP返回给本地DNS,然后本地 DNS 将 IP 告诉 DNS 客户端完成解析。
本文来自《系统网络运维》博客,请务必保留此出处