• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

DNS工作原理

武飞扬头像
苏显
帮助1

  • DNS工作原理(其他的域名查询服务实现方式还有NIS、本地静态文件等)

    • DNS是一套分布式的域名服务系统。每个DNS服务器上存放着大量的机器名和IP地址的映射,并且是动态更新的。客户端程序使用DNS协议来向DNS服务器查询目标主机的IP地址。
    • DNS查询和应答报文格式学新通

      • 16位标识字段用于标记一对DNS查询和应答(区分应答是哪个DNS查询的回应)
      • 16位标志字段用于协商具体的通信方式和反馈通信状态。学新通

        • QR,查询/应答标志。0为查询报文;1为应答报文。
        • opcode,定义查询和应答的类型。0为标准查询;1为反向查询(由ip查域名);2为请求服务器状态。
        • AA,授权应答标志,仅由应答报文使用。1表示域名服务器是授权服务器。
        • TC,截断标志,仅当DNS报文使用UDP服务时使用。因为UDP数据报有长度限制,过长的DNS报文将被阶段。1表示DNS报文超过512字节且被截断。
        • RD,递归查询标志。1表示执行递归查询(若目标DNS服务器无法解析机器名,会向其他DNS服务器继续查询,如此递归直到获得结果并返回给客户端);0表示执行迭代查询(若目标DNS服务器无法解析机器名,则将它已知的其他DNS服务器IP地址返回给客户端让客户端自选)
        • RA,允许递归标志,仅由应答报文使用。1表示DNS服务器支持递归查询。
        • zero,未使用,设为0。
        • rcode,返回码,表示应答的状态。常用值为0(无误)和3(域名不存在)
      • 第二、三行4个字段分别指出DNS报文的最后4个字段的资源记录数目。对查询报文,一般包含1个查询问题,其他三个为0;对应答报文,应答资源记录数至少为1,下面俩可为0或非0。
      • 查询问题,格式:学新通

        • 查询名以一定格式封装要查询的主机域名;
        • 查询类型表示如何执行查询操作,常见的:

          • 类型A,值为1,获取目标主机的IP
          • 类型CNAME,值为5,获取目标主机的别名
          • 类型PTR,值为12,表反向查询
        • 查询类通常为1,表示获取因特网地址(IP地址)
      • 应答、授权、额外信息都是用资源记录格式:学新通

        • 域名是该记录中与资源对应的名字,格式与查询名相同。类型和类含义也与查询问题的对应字段相同。
        • 生存时间指该查询记录结果可被本地客户端程序缓存的时间,以秒计。
        • 资源数据是32位的IPv4地址,资源数据长度为4(字节)。
      • 更多细节参考RFC文档(真™多,分得还细,有时间慢慢看吧)
    • Linux下访问DNS服务

      • /etc/resolv.conf 存放DNS服务器IP,我机子上是 192.168.1.1,还是看书上例子。学新通

        • 上 - 首选;下 - 备选。
      • tcpdump观察DNS通信

          1. 开一终端,输入tcpdump -i ens33 -nt -s 500 port domain

          • 其中port domain表示只抓取使用域名服务的数据包。
          1. 再开一终端,输入host -t A www.百度.com,看结果:![](https://p3-juejin.…

          • 开始的IP指出后面的内容是IP数据报。
          • 以「IP.port」的形式描述通信的一端;>表示数据传输方向:「源>目的」。
          • domain是DNS服务使用的端口,为53。
          • 第一个数据包 -- 查询报文

            • 57428 是查询报文的标识值; 是启用递归查询的标志; A? 表示查询类型是类型A;www.百度.com是查询名;(31) 是查询报文的长度(字节)。
          • 第二个数据包 -- 应答报文

            • 3/0/0 表示报文中包含3个应答记录,0个授权记录,0个额外记录(如果不用虚拟机host是3/5/9,不过不影响);「CNAME www.a.shifen.com., A 14.119.104.189, A 14.119.104.254」是3个应答记录内容,CNAME 表示紧随其后的记录是机器别名,A 表示紧随其后的是IP地址;(226) 是应答报文长度(字节)。
          1. tcpdump开-x看看,输入tcpdump -i ens33 -ntx -s 500 port domain学新通

          • 前面说了是IP数据报,且DNS用的是UDP协议,把IP头和UDP头砍掉,后面才是数据部分。
          • (可参考下这个牛掰老哥的blog.csdn.net/xiao666wang…
  •  

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgbafig
系列文章
更多 icon
同类精品
更多 icon
继续加载