一、DNS基础结构部分
在DNS报文中,基础结构部分是报文首部,包括以下字段:
字段名称 | 描述 |
事务 ID | 标识DNS报文的ID,请求和响应使用相同的ID。 |
标志 | 包括多个子字段,具体如下: QR(Response):查询请求为0,响应为1。 Opcode:操作码,0表示标准查询,1表示反向查询,2表示服务器状态请求。 AA(Authoritative):授权应答,响应报文中有效,值为1表示权威服务器。 TC(Truncated):表示是否被截断,值为1表示超过512字节并被截断。 RD(Recursion Desired):期望递归,设置时表示必须处理查询。 RA(Recursion Available):可用递归,响应报文中有效,值为1表示支持递归查询。 Z:保留字段,值为0。 rcode(Reply code):返回码,0表示没有错误,其他值表示不同类型的错误。 |
问题计数 | DNS查询请求的数目。 |
回答资源记录数 | DNS响应的数目。 |
权威名称服务器计数 | 权威名称服务器的数目。 |
附加资源记录数 | 额外的记录数目(权威名称服务器对应IP地址的数目)。 |
二、问题部分
问题部分包括以下字段:
字段名称 | 描述 |
问题名称 | 要查询的域名。 |
问题类型 | 查询类型,例如A记录、MX记录等。 |
问题类别 | 查询类别,通常为IN,表示互联网地址。 |
三、资源记录部分
资源记录部分包括以下字段:
字段名称 | 描述 |
名称 | 资源的域名。 |
类型 | 资源记录类型,如A、NS、MX等。 |
类 | 通常为IN,表示互联网地址。 |
TTL | 存活时间,指示该记录在缓存中保存的时间。 |
资源数据长度 | 资源数据的长度。 |
资源数据 | 具体的资源数据,根据不同的类型有不同的格式。 |
四、DNS解析过程
DNS解析总体可分为两大步骤,第一个步骤是本机向本地域名服务器发出一个DNS请求报文,报文里携带需要查询的域名;第二个步骤是本地域名服务器向本机回应一个DNS响应报文,里面包含域名对应的IP地址,从下面对jocent.me进行域名解析的报文中可明显看出这两大步骤,注意:第二大步骤中采用的是迭代查询,其实是包含了很多小步骤的,详情见下面的流程分析。
其具体的流程可描述如下:
主机10.74.36.90先向本地域名服务器10.74.1.11进行递归查询。
本地域名服务器采用迭代查询,向一个根域名服务器进行查询。
根域名服务器告诉本地域名服务器,下一次应该查询的顶级域名服务器 dns.me的IP地址。
本地域名服务器向顶级域名服务器 dns.me进行查询。
顶级域名服务器me告诉本地域名服务器,下一步查询权限服务器dns.jocent.me 的IP地址。
本地域名服务器向权限服务器 dns.jocent.me进行查询。
权限服务器 dns.jocent.me告诉本地域名服务器所查询的主机的IP地址。
本地域名服务器最后把查询结果告诉 10.74.36.90。
其中有两个概念递归查询和迭代查询,其实在整个描述的过程中已经体现的很明显,这里再说明一下:
递归查询:本机向本地域名服务器发出一次查询请求,就静待最终的结果,如果本地域名服务器无法解析,自己会以DNS客户机的身份向其它域名服务器查询,直到得到最终的IP地址告诉本机。
迭代查询:本地域名服务器向根域名服务器查询,根域名服务器告诉它下一步到哪里去查询,然后它再去查,每次它都是以客户机的身份去各个服务器查询。
五、相关问题与解答
问:什么是DNS?
答:DNS(Domain Name System)即域名系统,是一种分布式数据库系统,用于将人类可读的域名(如www.example.com)转换为计算机可读的IP地址(如192.0.2.1),这种转换对于互联网的正常运行至关重要,因为它使得用户能够通过易于记忆的域名访问网站,而不需要记住复杂的数字IP地址。
问:DNS解析过程中涉及哪些关键步骤?
答:DNS解析过程大致可以分为以下几个关键步骤:
1、客户端发起请求:用户在浏览器中输入域名并发起请求。
2、本地缓存检查:客户端首先检查本地DNS缓存中是否有该域名的记录,如果有,直接使用缓存中的IP地址发起请求。
3、递归解析或迭代解析:如果缓存中没有记录,客户端会向本地DNS服务器发起递归或迭代解析请求,递归解析是指DNS服务器代表客户端完全解析域名(直到获得最终的IP地址)的过程;而迭代解析则是DNS服务器仅提供下一级DNS服务器的地址,让客户端自行向下一级DNS服务器发起请求。
4、根DNS服务器查询:如果本地DNS服务器无法直接回答该查询,它会代表客户端向根DNS服务器发起请求,根DNS服务器不存储具体的域名记录,但能指引客户端到负责该顶级域(如.com、.org)的DNS服务器。
5、顶级域DNS服务器查询:根据根DNS服务器的指引,本地DNS服务器向负责相应顶级域的DNS服务器发起请求。
6、权威DNS服务器查询:顶级域DNS服务器告诉本地DNS服务器负责该特定域名的权威DNS服务器的地址,本地DNS服务器向这个权威DNS服务器发起请求。
7、获取结果并返回:权威DNS服务器返回所查询域名的IP地址给本地DNS服务器(如果是递归解析),或者返回下一级更具体的DNS服务器地址(如果是迭代解析),本地DNS服务器将结果返回给客户端。
8、结果缓存:为了防止未来的重复解析,本地DNS服务器通常会将成功的DNS查询结果缓存一段时间。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/115391.html