DNS
大约 3 分钟
介绍
DNS(Domain Name System,域名系统),是一个分布式数据库,用于存储域名和IP地址相互映射的关系,使用户能够通过域名访问目标地址而不需要记住IP地址。通过域名获取 IP 地址的过程称为域名解析。
浏览器访问网站步骤
- 发送域名请求到 DNS 服务器
- 获取域名对应 IP 地址
- 根据 IP 地址发送请求到目标网站
DNS 解析过程
- 查看本地 DNS 缓存:首先查看浏览器缓存,若浏览器中未缓存有该域名的 DNS 信息,则会到系统缓存中查询,计算机会检查 Hosts 文件中是否有配置以及系统中是否有该域名的缓存信息,若还是不存在则会在路由器中查询缓存。
- ISP 缓存:若本地 DNS 中不存在缓存,则会进入 ISP 的 DNS 缓存中查询,运营商通常会缓存一部分 DNS 信息。
- 根域名服务器查询: 若在上述两种缓存中都没有查询到对应的数据,则需要向根服务器发送查询请求,若域名属于其他顶级域名服务器,则根服务器会将顶级服务器的 IP 发送给客户端,否则直接返回对应的 IP 信息。
- 顶级域名服务器查询: 若顶级域名服务器若查询不到记录,将会返回管辖范围内的权威域名服务器的 IP 地址。
- 权威域名(主域名)服务器查询: 若权威域名服务器还是没查询到信息,将会递归查询下一级服务器,直到查询到结果。
- 保存结果: 当域名服务器查询到 IP 地址信息后会将数据返回给客户端,客户端会缓存 IP 地址信息,然后向 IP 地址发送请求。
DNS 记录类型
记录类型 | 描述 |
---|---|
A | 主机 IP 地址 |
AAAA | 主机 IPv6 地址 |
ALIAS | 自动解析的别名(Alias) |
CNAME | 别名的权威名称(Canonical name) |
MX | 邮件交换服务器(Mail eXchange) |
NS | 域名服务器(Name server) |
TXT | 描述文本 |
常见的 DNS 攻击
攻击类型 | 描述 |
---|---|
DNS 欺骗/缓存中毒 | 将伪造的 DNS 数据引入 DNS 解析器缓存中的攻击,导致解析器返回错误 IP 地址。 |
DNS 隧道 | 使用其他协议通过 DNS 查询和响应建立隧道的攻击。 |
DNS 劫持 | 将查询重定向到其他域名服务器的攻击。 |
NXDOMAIN 攻击 | 利用请求淹没 DNS 服务器,试图导致合法流量的拒绝服务的攻击。 |
幻域攻击 | 设置响应慢或不响应的“幻影”域服务器,导致性能降低和拒绝服务的攻击。 |
随机子域攻击 | 向合法站点的不存在的子域发送 DNS 查询,导致拒绝服务的攻击。 |
域锁定攻击 | 通过与其他合法解析器建立 TCP 连接,并发送缓慢的随机数据包流,占用解析器资源的攻击。 |
基于僵尸网络的 CPE 攻击 | 使用受损的 CPE 设备进行的攻击,用于对一个站点或域进行随机子域攻击。 |