【愚公系列】2023年08月 网络安全高级班 011.DNS协议
前言
DNS(Domain Name System)协议是一种将域名转换为IP地址的系统。它是因特网使用的一种标准服务,它可以为互联网上的任何设备提供 IP 地址,从而可以使计算机或设备能够相互通信。DNS 协议是基于客户机/服务器模型开发的。它包括两个主要组件:DNS 服务器和 DNS 客户端。
DNS 服务器负责维护一个域名与 IP 地址之间的转换表,并在需要时提供给 DNS 客户端。
DNS 客户端向 DNS 服务器发送请求,以获取与给定域名相关联的 IP 地址。
DNS 协议使用 UDP 或 TCP 协议进行通信,UDP 用于短的请求,而 TCP 用于长的请求。 DNS 协议的端口是 53。
一、DNS协议
1.DNS协议概述
- DNS(Domain Name System,域名系统)即互联⽹的命名系统,通过域名和IP地 址的互相映射组成⼀个分布式的数据库,能够使⽤户更⽅便地访问互联⽹,⽐如基于域名⽽不是基于IP地址来访问互联⽹。
- 通过域名或主机名,最终得到该域名或主机名对应的 IP 地址的过程叫做域名解析(或主机名解析),⽤于处理此解析过程的即 DNS 协议,其运⾏在 UDP 协议之上,使⽤端⼝号 53。
- DNS 域名系统是以域名为索引的,采⽤层次化结构来实现的,每个域名实际上就是 ⼀棵很⼤的逆向树,这棵逆向树称为域名空间(domain name space)。
2.DNS图解
1、域名空间/服务器
2、域名解析(正向)
3、 域名解析(反向)
4、 递归查询
- 主机向本地域名服务器的查询⼀般都是采⽤递归查询。(主机<->DNS 服务器)
- 递归查询是⼀种 DNS server 的查询模式,在该模式下 DNS Server 接收到客户机请求,必须使⽤⼀个准确的查询结果回复客户机。
- 假设DNS Server本地没有存储查询DNS信息,那么该Server会询问其它Server,并将返回的查询 结果提交给客户机。
5、 迭代查询
本地域名服务器向根域名服务器及其他查询⼀般都是迭代查询。(DNS 服务器<-> DNS 服务器)当根DNS服务器收到本地DNS服务器发出的迭代查询请求报⽂时,给回 IP地址或 是顶级DNS服务器地址,⽽本地DNS服务器再向顶级DNS服务器查询。
顶级服务器也是如此处理,直到最后得到解析的IP地址或是报错,本地DNS服务器再把结果返给查询主机。
客户机先检测⾃身缓存,如果没有,再检测 hosts ⽂件,如果没有,就向本地域 名服务 器发出 DNS 解析请求;
本地域名服务器收到查询请求之后,先检查缓存,若查到请求的地址或名字,即向客户 机发出应答信息;若没有查到,则在数据库中查找,若查到请求的地址或名字,即向客户 机发出应答信息;如果还没有查找到,就向根域名服务器进⾏查找,如果根域名服务器没 有查找到会让本地域名服务器去 COM 顶级域名服务器查找;
本地域名服务器向 COM 顶级域名服务器进⾏查找请求,如果 COM 顶级域名服务器没有 查找到会让本地域名服务器去 microsoft.com ⼆级域名服务器查找;
本地域名服务器向 microsoft.com ⼆级域名服务器进⾏查找请求,如果 microsoft.com⼆ 级域名服务器没有查找到会让本地域名服务器去 example.microsoft.com 权威域名服务器查 找;
example.microsoft.com 权威域名服务器收到查找请求后,从 name.conf 查找关于主机的 记录然后返回给本地域名服务器 IP 地址;
本地域名服务器收到解析的 IP 地址之后,在本地进⾏⾼速缓存记录下来然后返回客户机 查询结果。
6、 资源记录
- A:地址记录(Address),返回域名指向的IP地址。例如:www. google.com 8.8.8.8
- NS:域名服务器记录(Name Server),返回保存下⼀级域名信息的服务器地址。该记录只能设置为域名,不能设置为IP地址。
- CNAME:规范名称记录(Canonical Name ),返回另⼀个域名,即当前查询的域名是另⼀个域名的跳转。
- MX:邮件记录(Mail eXchange),返回接收电⼦邮件的服务器地址。
- PTR:逆向查询记录(Pointer Record),只⽤于从 IP 地址查询域名。
3.DNS封装
二、Wireshark协议抓包
- 进⼊命令终端,输⼊命令“ifconfifig” ,查看 IP 和 MAC 地址信息
- 通过命令 nslookup / dig 域名,例如 nslookup www.baidu.com 发起 DNS
- 点赞
- 收藏
- 关注作者
评论(0)