DNS,这篇给你讲明白了( 五 )

  • 没有 RCODE 字段的值 。
  •  
    然后我们看一下响应报文 。
    DNS,这篇给你讲明白了

    文章插图
     
    图 7-11
    可以看到,标志位也是 0xcd28,可以说明这就是上面查询请求的响应 。
    查询请求已经解释过的报文我们这里就不再说明了,现在只解释一下请求报文中没有的内容 。
     
    • 紧随在 OpCode 后面的 AA 字段已经出现了,它的值为 0,表示不是权威 DNS 服务器的响应 。
    • 最后是 RCODE 字段的响应,值为 0 时,表示没有错误 。
    查询区 
    查询区通常指报文格式中查询的部分 。这部分用来显示 DNS 查询请求的问题,包括查询类型和查询类 。
    DNS,这篇给你讲明白了

    文章插图
     
    图 7-12
    这部分中每个字段的含义如下:
     
    • 查询名(Query Name):指定要查询的域名,有时候也是 IP 地址,用于反向查询 。
    • 查询类型(Query Type):DNS 查询请求的资源类型,通常查询类型为 A 类型,表示由域名获取对应的 IP 地址 。
    • 查询类(Query Class):地址类型,通常为互联网地址,值为 1。这个查询类的值通常是 1、254 和 255,分别表示互联网类、没有此类和所有类 。
     
    同样的,我们再使用 wireshark 查看一下查询区域 。
    DNS,这篇给你讲明白了

    文章插图
     
    图 7-13
    可以看到,这是对 mobile-gtalk.l.google.com 发起的 DNS 查询请求,查询类型是 A(0x0001),那么得到的响应类型应该也是 A,A 表示的是 IPv4 类型,如果 Type 是 AAAA,那么就表示的是 IPv6 类型 。
    DNS,这篇给你讲明白了

    文章插图
     
    图 7-14
    如上图所示,响应类型也是 A 。
    资源记录部分
    资源记录部分是 DNS 报文的最后三个字段,包括回答问题区域、权威名称服务器记录、附加信息区域,这三个字段均采用一种称为资源记录的格式,如下图所示 。
    DNS,这篇给你讲明白了

    文章插图
     
    图 7-15
    资源记录部分的字段含义如下
     
    • Name:DNS 请求的域名 。
    • Type:资源记录的类型,与查询部分中的查询类型是一样的 。
    • Class:地址类型、与问题中的查询类值一样的 。
    • TTL:以秒为单位,表示资源记录的生命周期 。
    • RDLENGTH(资源数据长度):资源数据的长度 。
    • RDATA(资源数据):表示按查询段要求返回的相关资源记录的数据 。
     
    资源记录部分只有在 DNS 响应包中才会出现 。下面我们就来通过响应报文看一下具体的字段示例 。
    DNS,这篇给你讲明白了

    文章插图
     
    图 7-16
    其中,域名的值是 mobile-gtalk.l.google.com,类型是 A,类是 1,生存时间是 5 秒,数据长度是 4 字节,资源数据表示的地址是 63.233.189.188 。
    CNAME 记录
    CNAME 是 DNS 的一种记录类型,它的全称是 Canonical Name Record,这个类型能够将某些 DNS 别名映射到 DNS 命名系统中 。
    一个很简单的例子,如下所示
    www.cxuanblog.edu IN CNAME www.cxuanblog.com
    这是啥意思呢?
    这表示的是如果用户在浏览器中输入的是 www.cxuanblog.edu 这个域名,其实输入的是 www.cxuanblog.com 这个域名,如果你打算把博客搬家后,你输入的旧域名其实会直接跳转到新域名的网页下 。
    CNAME 还有一种普遍的做法就是把它作为公共域名进行访问 。


    推荐阅读