你需要知道的一点知识——DNS

576 阅读5分钟

什么是DNS

DNS(Domain Name System)是域名系统的英文简写,是一种组织成域层次结构的计算机和网络服务名称系统,它是用于TCP/IP,它所提供的服务是用来将主机名和域名转换为IP地址的工作。

DNS的作用

一句话,把给人看的域名URL转换为给机器看的IP地址(www.baidu.com) 经过DNS转换 (163.177.151.110)

域名解析过程

  1. 在浏览器中输入域名以后,操作系统首先会检查本地hosts文件是否有这个网址的映射关系,如果有,就直接使用这个ip地址映射,完成域名的解析。

  2. 如果hosts文件中没有该域名对应的映射关系,则会查找本地DNS解析缓存中是否包含有这个网址的映射关系,如果找到则直接返回,完成域名解析。

  3. 如果上述两种方式都没有找到对应网址的映射关系,那么会根据TCP/ip参数中设置的首选DND服务器,即本地服务器。本地服务器在收到查询的时候,如果要查询的域名,存在本地配置资源中,则直接返回解析结果到客户机,完成域名的解析,此解析具有权威性。

  4. 如果要查询的域名不在本地服务器的配置资源中,但是在本地服务器缓存了该网址的映射关系,则直接调用这个IP地址映射,完成域名解析,此解析不具有权威性。

  5. 如果本地DNS服务器的配置资源和缓存中都没有该网址的映射关系,则根据本地DNS服务器的配置(是否设置转发器)进行查询,如果未使用转发,则遵循以下步骤完成查询:

    • 发送请求到13台根DNS,根DNS服务器收到请求以后会根据这个域名(对于www.juejin.cn,来说此处是.cn,也可能是.cn、.edu、.xyz、.net)来判断是谁来授权管理,并返回一个该顶级域名对应的IP地址。
    • 本地服务器收到了根DNS服务器返回的顶级域名的IP地址以后,将会发送查询请求到该顶级域名服务器(此处是.cn域)。顶级域名服务器收到请求后,如果自己可以解析,那直接返回解析结果。如果自己不能解析,那么返回下一级域名服务器的IP地址(此处为juejin.cn, 如果是www.taobao.com,那么就是taobao.com)到本地服务器。
    • 本地服务器收到收到顶级域名返回的下一级域服务器(也叫第二层域服务器)的IP地址后,在发送请求到第二层域服务器,进行查找,如果没有找到,则继续返回下一层服务器IP,重复上述步骤,最后查找到www.juejin.cn域名对应主机的IP地址。如果最终都没有查找到,那么就会报错,就是我们常见的找不到 xxxx.xxxx.xxx 的服务器IP地址。

    DNS服务器之间的交互查询也被称为迭代查询

  6. 如果本地服务器中使用了转发器(即配置了转发模式),本地服务器就会直接查询上一级DNS服务器,如果上一层服务器不能够解析该域名地址,就会查询根DNS或者转请求到上上级域名服务器。最后查找到的结果将返回本地DNS服务器,在由DNS服务器返回到客户机。

    从客户机到本地DNS服务器的查询被称为递归查询,也是实际中常用的查询方式

  7. 在查询到结果以后,本地域名服务器会把结果保存在缓存中,以备下一次使用。 查询流程图.png

DNS缓存

DNS缓存也叫DNS解析器缓存,它是由操作系统维护的临时数据库,它包含有最近的网站和其他Internet域的访问记录。

DNS缓存工作流程

在浏览器发出外部请求之前,计算机会拦截每个请求并在DNS数据库中查找域名地址,该数据库包含有最近的域名列表,以及DNS首次发出请求时DNS为它们计算的地址

浏览器缓存与hosts域名映射

windows10下可在C:\Windows\System32\drivers\etc路径下找到hosts文件,可以编辑hosts文件,添加DNS映射 例如:163.177.151.110 www.baidu.com

可以通过在chrome地址栏中直接输入 chrome://net-internals/#dns查看浏览器上DNS缓存状态。

DNS安全

  • Dos攻击 这种攻击的主要形式是使重要的DNS服务器过载,从而无法响应权威服务器的请求,使得DNS查询不起作用
  • DNS欺骗 通过改变DNS资源的内容,比如伪装一个权威的DNS服务器,回复假的资源记录,从而导致主机在尝试与另一台服务器连接时,连接到错误的IP地址
  • DNS隧道 使用其他网络协议通过DNS查询和相应建立隧道。攻击者可以使用SSH、TCP、或者HTTP将恶意软件或者被盗信息传递到DNS查询中,这种方式使防火墙无法检测到,从而形成DNS攻击
  • DNS劫持 攻击者将查询重定向到其他域名服务器。可以通过恶意的软件或未经授权的DNS服务器修改来完成。
  • DDOS攻击 也叫做分布式拒绝服务带宽洪泛攻击是Dos攻击的升级版。Dos是一对一的,而DDOS是借助成千上百的僵尸机(被入侵的电脑)同时发起的攻击。

结尾

本篇中简要的阐述了DNS的作用和DNS域名解析的步骤,最后罗列了有关DNS方面的安全问题。主要的目的是扫盲,想要深入研究的小伙伴需要自己去找找相关资料。

参考资料:www.zhihu.com/question/23…