浅谈DNS协议
# 简介
DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住IP。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。
DNS 可以使用 UDP 或者 TCP 进行传输,使用的端口号都为 53。大多数情况下 DNS 使用 UDP 进行传输,这就要求域名解析器和域名服务器都必须自己处理超时和重传从而保证可靠性。在两种情况下会使用 TCP 进行传输:
- 如果返回的响应超过的 512 字节(UDP 最大只支持 512 字节的数据)。
- 区域传送(区域传送是主域名服务器向辅助域名服务器传送变化的那部分数据)。
# DNS查找过程
- 浏览器访问 www.baidu.com
- 查找浏览器缓存
- 查找dns解析器缓存host
- 查找本地dns服务器缓存
- 查找根dns服务器缓存,找到了返回对应后缀的dns服务器地址ip(比如com DNS服务器)
- 查找com dns服务器,返回baidu.com的dns服务器ip
- 查找baidu.com dns服务器ip
- 得到baidu.com服务器ip,写入缓存。
- 浏览器拿到ip进行访问。
# DNS的记录类型
其中CNAME解析就是将域名解析到另一个域名。
# DNS劫持与污染
# DNS劫持
DNS决定的是我们的域名将解析到哪一个IP地址的记录,是基于UDP协议的一种应用层协议。这种攻击的前提是攻击者掌控了你的本地DNS服务器
攻击者劫持了DNS服务器,通过某些手段取得某域名的解析记录控制权,进而修改此域名的解析结果,导致用户对该域名地址进行访问的时候,由原来的IP地址转入到修改后的IP地址。结果就是让正确的网址不能解析或者是被解析到另一个网址的IP,实现获取用户资料或者破坏原有网址正常服务的目的。
简单来说就是就是ip解析请求发送到了其他DNS服务器了,给你返回了一个错误的ip
# DNS污染
又称域名服务器缓存投毒(DNS cache poisoning),它和DNS劫持的不同之处,在于污染针对的是DNS缓存,是在查询信息到达目标DNS服务器前,经过的节点上做手脚,而劫持是DNS服务器中记录的是错误的内容。
# 参考
在 GitHub 编辑此页 (opens new window)
上次更新: 2024/02/25, 12:11:11