DNS

DNS是域名系统(Domain Name System),简单来说就是平时上网输入的URL,如 www.baidu.com 就是域名,而DNS就是将这个域名解析成IP地址,如 www.baidu.com 的一个IP地址为 14.215.177.38,DNS使用的端口号为53,使用UDP协议

因为在我们上网的过程中,IP地址很难记住,而域名相对说就简单很多,所以需要把我们的域名转换成IP地址

因为域名长度可变,计算机处理起来困难,而IP地址是定长的,处理起来简单很多

从理论上来讲,可以只需要一台服务器把所有的域名都装入这台服务器就可以,大家查询DNS的时候访问这个DNS服务器即可,为了安全也可以设置多个服务器,每台服务器都装入所有的IP地址,个人认为这样显然是可以的(如果担心访问量太大导致网络瘫痪就设置多个这样的服务器,而且同一个IP可以用多台主机来进行处理),书上的解释就是所有的主机都访问这一台DNS服务器导致瘫痪,期待更合理的解释

  • 事务 ID(2字节):DNS 报文的 ID 标识。对于请求报文和其对应的应答报文,该字段的值是相同的。通过它可以区分 DNS 应答报文是对哪个请求进行响应的;
  • 标志(2字节):DNS 报文中的标志字段;
  • QR(Response):查询请求/响应的标志信息。查询请求时,值为 0;响应时,值为 1。
  • Opcode:操作码。其中,0 表示标准查询;1 表示反向查询;2 表示服务器状态请求。
  • AA(Authoritative):授权应答,该字段在响应报文中有效。值为 1 时,表示名称服务器是权威服务器;值为 0 时,表示不是权威服务器。
  • TC(Truncated):表示是否被截断。值为 1 时,表示响应已超过 512 字节并已被截断,只返回前 512 个字节。
  • RD(Recursion Desired):期望递归。该字段能在一个查询中设置,并在响应中返回。该标志告诉名称服务器必须处理这个查询,这种方式被称为一个递归查询。如果该位为 0,且被请求的名称服务器没有一个授权回答,它将返回一个能解答该查询的其他名称服务器列表。这种方式被称为迭代查询。
  • RA(Recursion Available):可用递归。该字段只出现在响应报文中。当值为 1 时,表示服务器支持递归查询。
  • Z:保留字段,在所有的请求和应答报文中,它的值必须为 0。
  • rcode(Reply code):返回码字段,表示响应的差错状态。当值为 0 时,表示没有错误;当值为 1 时,表示报文格式错误(Format error),服务器不能理解请求的报文;当值为 2 时,表示域名服务器失败(Server failure),因为服务器的原因导致没办法处理这个请求;当值为 3 时,表示名字错误(Name Error),只有对授权域名解析服务器有意义,指出解析的域名不存在;当值为 4 时,表示查询类型不支持(Not Implemented),即域名服务器不支持查询类型;当值为 5 时,表示拒绝(Refused),一般是服务器由于设置的策略拒绝给出应答,如服务器不希望对某些请求者给出应答。
  • 问题计数(2字节):DNS 查询请求的数目;
  • 回答资源记录数(2字节):DNS 响应的数目;
  • 权威名称服务器计数(2字节):权威名称服务器的数目;
  • 附加资源记录数(2字节):额外的记录数目(权威名称服务器对应 IP 地址的数目)。

以上,为DNS的头部,长度固定,为12字节

  • 问题部分
    DNS

其中,查询名长度不固定,查询类型2字节,查询类长度2字节,在DNS请求报文中,只有以上部分,而查询名长度不固定,所以查询类型和查询类是通过DNS报文最后4个字节来确定的;

以上,就是DNS请求的所有部分

  • 在回复报文中,除了以上部分,还有如下三个:
    DNS
  • 域名:DNS 请求的域名。
  • 类型:资源记录的类型,与问题部分中的查询类型值是一样的。
  • 类:地址类型,与问题部分中的查询类值是一样的。
  • 生存时间:以秒为单位,表示资源记录的生命周期,一般用于当地址解析程序取出资源记录后决定保存及使用缓存数据的时间。它同时也可以表明该资源记录的稳定程度,稳定的信息会被分配一个很大的值。
  • 资源数据长度:资源数据的长度。
  • 资源数据:表示按查询段要求返回的相关资源记录的数据。

Original: https://www.cnblogs.com/ys-wang/p/16550388.html
Author: 森森成长日记
Title: DNS

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/578640/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球