DNS

128 阅读4分钟

一. DNS(Domain Name System)

  1. 定义:是一个分布式数据库系统,用于管理域名与IP地址的映射关系。(即里面记录着很多url和其应对ip地址)

  2. 核心功能

    • 域名解析:将域名(如www.example.com)转换为IPv4/IPv6地址(如93.184.216.34)。
  3. 分层结构

DNS的分层设计让每个层级只负责自己的一小块,分工明确,速度更快。

  • 根域名服务器(Root DNS)

    • 职责:管理顶级域(全球有13组根服务器,如 .com.org.cn 等)。
    • 🌰:根服务器相当于“电话总机”,本地DNS问根服务器、“www.example.com 在哪?”,根服务器说:“我不知道,但 .com 的服务器可能知道,你去问它吧!”
  • 顶级域名服务器(TLD DNS)

    • 职责:管理特定顶级域下的权威服务器(如 .com 下有 google.comfacebook.com)。
    • 🌰:本地DNS问 .com 的服务器:“www.example.com 的IP是啥?”,TLD服务器说:“我不知道,但 example.com 的权威服务器可能知道,你去问它吧!”
  • 权威域名服务器(Authoritative DNS)

    • 职责:存储具体域名的IP地址(如 example.com 的权威服务器知道 www.example.com 的IP)。
    • 🌰: 本地DNS问权威服务器:“www.example.com 的IP是啥?”,权威服务器回答:“IP是 X.X.X.X!”
  • 递归解析器(本地DNS)

    • 职责:由ISP或第三方(如Google DNS)提供,负责向用户返回最终解析结果。(帮用户完成所有查询步骤,最终拿到IP地址。)
    • 🌰:你家的路由器或运营商(如电信)提供的DNS服务就是递归解析器,它替你跑腿问路。

二. DNS解析过程

  1. DNS解析分为两种模式:
  • 递归查询:用户向本地DNS服务器发送请求,本地DNS负责完成所有层级的查询并返回最终结果。
  • 迭代查询:本地DNS依次向根、TLD、权威服务器发起请求,逐步获取信息。

典型流程

假设你在浏览器输入 www.example.com,解析过程如下:

步骤1:检查本地缓存(如Hosts文件、浏览器缓存)
  • 浏览器先看自己有没有缓存过 www.example.com 的IP,如果有就直接用。
  • 如果没有,进入下一步。
步骤2:问本地DNS服务器
  • 你的电脑会问本地DNS服务器(比如你设置的 8.8.8.8 或运营商提供的DNS)。
  • 本地DNS的任务:替你把域名查到底,直到拿到IP。
步骤3:本地DNS开始“问路”
  1. 问根服务器(本地DNS查询根服务器)

    • 本地DNS问根服务器:“www.example.com 的IP是啥?”
    • 根服务器回答:“我不知道,但 .com 的服务器地址是 A.B.C.D,你去问它!”
  2. 问TLD服务器(.com的服务器)

    • 本地DNS问 .com 的服务器:“www.example.com 的IP是啥?”
    • TLD服务器回答:“我不知道,但 example.com 的权威服务器地址是 X.Y.Z.W,你去问它!”
  3. 问权威服务器

    • 本地DNS问权威服务器:“www.example.com 的IP是啥?”
    • 权威服务器回答:“IP是 93.184.216.34!”
步骤4:获取IP后返回结果并缓存
  • 本地DNS把 93.184.216.34 返回给你的电脑,同时缓存这个结果(下次再查直接给缓存结果)。
  • 你的电脑也缓存这个IP,加快后续访问速度。

三. DNS劫持(DNS Hijacking)

  1. 定义:是一种网络攻击手段,攻击者通过非法手段篡改DNS响应,将用户引导至恶意IP。

  2. 原理:本质是干扰DNS解析过程,使合法域名被解析到攻击者控制的IP地址

  3. 类型

    根据攻击目标和手段,DNS劫持可分为以下类型:

    (1) 本地DNS劫持

    • 目标:用户设备(如电脑、手机)。

    • 手段

      • 恶意软件:感染设备后修改DNS配置,指向恶意DNS服务器。
      • Hosts文件篡改:直接修改本地Hosts文件,添加虚假域名-IP映射。
    • 影响:仅影响被感染的设备。

    (2) 路由器DNS劫持

    • 目标:家庭或企业路由器。

    • 手段

      • 利用默认密码或漏洞登录路由器管理界面,修改DNS服务器地址,指向恶意服务器。
      • 通过恶意固件更新劫持路由器。
    • 影响:所有连接该路由器的设备均受影响。

    (3) 中间人攻击(MITM)

    • 目标:用户与DNS服务器之间的通信链路。

    • 手段

      • 在公共Wi-Fi等不安全的网络中监听DNS请求。
      • 伪造DNS响应,快速抢在合法响应前返回虚假IP。
    • 影响:依赖网络环境,可能影响同一网络内的用户。

    (4) 运营商级DNS劫持

    • 目标:网络服务提供商(ISP)的DNS服务器。

    • 手段

      • ISP主动劫持用户DNS请求,返回广告页面或监控流量。
      • 政府或机构实施审查,将特定域名解析到封锁页面。
    • 影响:覆盖ISP所有用户,规模庞大。

    (5) DNS缓存投毒(Cache Poisoning)

    • 目标:递归DNS服务器的缓存。

    • 手段

      • 攻击者向递归服务器发送伪造响应,利用事务ID和端口号预测漏洞。
      • 一旦服务器缓存虚假记录,后续用户查询均返回错误IP。
    • 影响:污染服务器缓存,影响所有依赖该服务器的用户。

    • 影响:用户被导向钓鱼网站、恶意软件下载页面,导致数据泄露或服务中断。