最近在进行信息收集的时候,尝试漏洞挖掘时。使用了DNSlog外带方法,发现自己对DNS该协议的理解比较浅,故今日发一篇对DNS协议详解,加深自己对DNS的理解
如有不足和缺陷,望指正
0x01 什么是DNS?
DNS协议默认端口:TCP和UDP协议号的端口53
DNS是域名解析协议,基于TCP和UDP协议组的应用层协议。它在网络中起着"翻译官的角色"。
0x02 DNS协议的作用及机制
DNS协议是用来将域名解析转换为IP地址(也可以将IP地址解析成对应的域名地址),一个公网IP对应一个域名。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人们更方便地访问互联网
举个例子:
我们现在访问百度时,输入网址"www.baidu.com" 我们就能进入"百度一下,就知道"的网页
但是浏览器是不能直接识别域名的,域名的存在是为了用户方便记忆而诞生的。
比如说我们访问www.baidu.com 时,本机会先向本地DNS服务查询发起递归查询,本地DNS服务器会向根DNS服务器,顶级域名 DNS 服务器;域名 DNS服务器发起迭代查询。
从不同DNS服务器查询的结果即为"www.baidu.com" 的IP地址,第一次查询后,该IP地址会保存在本地DNS服务器的缓存中,便于下一次的访问。
那么有了这么一串IP地址,我们的电脑才能读懂我们要访问的网站,要去的地方。
0x03 DNS协议查询内容分类:■ 正向解析:
通过已知域名,访问本地DNS服务器缓存,解析IP地址。
由上图可见我们ping "www.baidu.com" 的网址时,返回了一个36.152.44.96的IP地址,这就是DNS协议的功劳。
当我们访问百度首页时,客户端会向本地服务器发送查询域名的请求,本地服务器则会通过访问缓存表或迭代查询根、域名DNS服务器。去查询该域名的解析记录,并一层层返回查询结果至客户端。
观察这里的IP地址,百度的IP可以是很多个,但是真实IP只有一个。我们又可以衍生出另一个知识点:"CDN(内容分发网络)",这里我提个引子,放在下一章节来描述
■ 反向解析:由上述正向解析可知,反向解析即为通过已知IP地址,访问本地DNS服务器缓存,解析域名。
此致,敬礼!