自学内容网 自学内容网

DNS原理详解,DNS解析过程

《网络安全自学教程》

在这里插入图片描述

DNS ( Domain Name System)负责「将域名成IP地址」,工作在「应用层」,使用 UDP 协议 53 端口,域名服务器(Domain Name Server)之间同步数据用TCP协议53端口。

设备在互联网中使用IP地址通信,用户需要使用IP地址访问网站,但「IP地址不方便记忆」,于是用域名来代替IP地址,DNS通过「分布式数据库」的形式,存储域名和IP地址的「映射关系」

终端和DNS使用C/S架构,终端发送 DNS request ,域名服务器在响应的 DNS response 中返回IP地址,终端拿到IP地址后,就能建立TCP连接了。

用户输入 www.baidu.com 后

  1. 先查「浏览器缓存」,有就直接访问IP。
  2. 没有就就查「本地缓存」
  3. 缓存没有,就找「本地域名服务器」
  4. 本地域名服务器没有,就找「根域名服务器」
  5. 根域名服务器没有,就从上往下递归查询「下级域名服务器」,直到找到IP地址。
  6. 找到IP地址的下级服务器把IP地址返回给本地域名服务器。
  7. 本地域名服务器把IP返回给终端,然后「缓存」IP和域名的映射关系。

1、浏览器缓存

​​
​​​​以Chrome浏览器为例,地址栏输入 chrome://net-internals/#dns

在这里插入图片描述

由于相关功能已删除,需要使用 chrome://net-internals 来开启日志,并使用外部的 netlog viewer 来查看。

在这里插入图片描述
在这里插入图片描述

2、本地缓存

C:\Windows\System32\drivers\etc\hosts 文件保存本地缓存。

Hosts文件是静态的,添加映射关系后就不会请求DNS,如果不及时更新文件,就会导致网站无法正常访问。

有些病毒木马会篡改hosts文件,让你访问恶意网站。

在这里插入图片描述

3、本地域名服务器

本地域名服务器就是终端上配的DNS服务器。它会缓存常用的域名/IP映射关系,并代替终端请求上级域名服务器。

在这里插入图片描述

4、根域名服务器

根域名服务器是整个域名系统最上级的服务器,它不存储映射关系,只记录哪个服务器管理哪个区域。

比如你是xx.com,就找管理.com的域名服务器;你是xx.cn,就找管理.cn的域名服务器。然后按照这种方式一级一级的往下找下级服务器。

在这里插入图片描述

5、递归查询和迭代查询

  • 递归查询:我发送DNS请求后,你去一级一级的递归给我查,查到了给我结果。
  • 迭代查询:我发送DNS请求后,你返回一个服务器地址给我,我自己按照递归查询的模式,一级一级的去发送请求,然后查到结果。

实际场景中,两种查询方式是同时使用的。比如:终端跟本地域名服务器之间使用递归查询;本地服务器根上级服务器之间使用迭代查询。

6、静态域名解析和动态域名解析

  • 静态域名解析:像hosts那样,手动配置域名和IP地址的映射关系,服务器IP发生变化时,要及时的手动修改映射关系,否则会访问失败。
  • 动态域名解析:通过本地服务每隔数分钟检查一次服务器IP,如果变化就更新到DNS服务器上,维护域名与动态IP的映射关系。

实际场景中,两种方式会同时使用。


原文地址:https://blog.csdn.net/wangyuxiang946/article/details/143811487

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!