dns服务详解

dns服务详解

dns服务

1、dns服务是什么

  • 叫做名称服务,作用就是将域名解析成ip地址,这个叫做正向解析

  • 将ip地址解析成域名叫做反向解析

  • 还提供邮件服务器的交换记录

  • 在互联网中有很重要的作用

  • 是一个c/s架构,每一个电脑就是一个dns客户端,客户端向服务端发送请求,请求服务端提供一个域名的ip地址就是寻求解析

  • dns使用udp和tcp53端口进行通信

2、dns原理

1、dns的层级结构

  • 根域, . 互联网上所有的记录解析都是靠这个根域维持的,全球有13个,负责顶级域的解析,出现example.com域名需要解析时,根域返回一组.com服务器的地址,有.com的服务器进行解析

  • 顶级域 .com .cn .org .net 顶级域负责找域名的权威域

  • 权威域 最终负责将域名解析成ip的节点

2、dns的解析方式

1、递归查询

  • zhangsan.lab0.cn

  • 先去找/etc/hosts文件有没有绑定,没有的话,就去找,本地的dns 119.29.29.29 ,还是没有的话就去找上游的dns,还没有的话,就去找权威dns, 权威dns找到后,返回给上游的dns,返回给本地的dns,最后返回给用户

  • 递归查询就是,指的就是客户端找指定的dns查询记录,dns直接返回记录,
    img

2、迭代查询

  • zhangsan.lab0.cn

  • 解析的流程:

    • 先去找本地的dns ,返回一个.cn dns

    • 用户查询.cn dns 顶级域返回一个

    • 返回一个lab0.cn dns

    • 用户查询lab0.cn dns 权威域返回ip地址

    • 返回 zhansan.lab0.cn 的ip地址

3、dns解析原理

  • 递归和迭代都使用

  • 一次递归(本地的dns发起解析)和多次迭代

  • 原理

      1. 在本地缓存中查找是否有对应IP地址
      1. 查看本地hosts文件是否配置静态域名解析
      1. 向本地DNS服务器发送查询请求
      1. 如果本地DNS服务器没有所请求的域名,则由其向根服务器查询
      1. 根服务器将对应的顶级DNS服务器地址提供给本地DNS服务器
      1. 本地DNS服务器向顶级DNS服务器发送解析请求
      1. 顶级DNS服务器将对应的权威DNS服务器地址返回给本地DNS服务器
      1. 本地DNS服务器向权威DNS服务器发送解析请求
      1. 权威DNS服务器完成地址解析,将域名对应的地址返回给本地DNS服务器
      1. 本地DNS服务器将地址返回给客户端
    • 其中还有一个点就是,各个dns服务器上面有缓存,90%以上解析的都是缓存

4、反向解析

  • 使用场景,防止垃圾邮件

  • 将域名解析成ip地址,arpa称为反向记录

  • example.com(192.168.10.100) 的人发送一个邮件

  • 交给了qq邮箱,然后对example.com进行反向解析,如果是192.168.10.100,成功,否则就是垃圾邮件

img