从ISP角度理解DNS与DNS劫持
1、域名解析系统- Domain Name System
DNS主要工作机制是将主机域名转换为IP地址,DNS 域的本质是一种管理范围的划分,最大的域是根域,向下可以划分为顶级域、二级域、三级域、四级域等。相对应的域名是根域名、顶级域名、二级域名、三级域名等。不同等级的域名使用点号分隔,级别最低的域名写在最左边,而级别最高的域名写在最右边。

从根域至二级域示例图
2、DNS-Anycast技术
ØAnycast DNS 可为每个终结点(例如不同地理位置的一组服务器)分配相同的 IP 地址的一组终结点提供多个路由路径。 组中的每个设备在网络上播发相同的地址,路由协议用于选择最佳目标。
Ø使用 Anycast DNS,可以启用 DNS 服务器或一组服务器,以基于 DNS 客户端的地理位置响应 DNS 查询。 其主要目的是增强 DNS 响应时间并简化 DNS 客户端设置。 Anycast DNS 还提供额外的冗余层,可帮助防范 DNS 拒绝服务攻击。

DNS-Anycast示例图
3、用户正常上网DNS全流程[1]

DNS 客户端进行域名 http://www.tsinghua.edu.cn 的解析过程如下:
1.用户向本地域名服务器(运行在用户端设备上)发送查询本地缓存请求,查询 http://tsinghua.edu.cn 主机的 IP 地址;
2.本地域名服务器查询数据库,发现没有域名为 http://tsinghua.edu.cn 的缓存记录,回复用户RRset exist;
2.1.用户再次向本地域名服务器发起http://tsinghua.edu.cn的DNS解析请求;
2.2.本地域名服务器收到用户发起的http://tsinghua.edu.cn解析请求后将代替用户以迭代方式向外主机查询各NS解析,首先是访问根域名服务器并递交.cn的解析请求;(此处正常情况下,由运营商ISP的LocalDNS执行了迭代查询,在用户侧感知是递归查询方式,因为用户只向外发布了一次查询请求就拿到了对应解析结果!)
3.根域名服务器查询数据库,发现没有这个主机域名记录,但是根域名服务器知道 cn 域名服务器可以解析这个域名,于是将 cn 域名服务器的 IP 地址返回给本地域名服务器;
4.本地域名服务器向 cn 域名服务器查询 http://tsinghua.edu.cn 主机的 IP 地址;
5.cn 域名服务器查询数据库,也没有相关记录,但是知道 http://edu.cn 域名服务器可以解析这个域名,于是将 http://edu.cn 域名服务器的 IP 地址返回给本地域名服务器;
6.本地域名服务器再http://edu.cn 域名服务器查询 http://tsinghua.edu.cn 主机 IP 地址;
7.http://edu.cn 域名服务器查询数据库,也没有相关记录,但是知道 http://tsinghua.edu.cn 域名服务器可以解析这个域名,于是将 http://tsinghua.edu.cn 的域名服务器 IP 地址返回给本地域名服务器;
8.本地域名服务器向 http://tsinghua.edu.cn 域名服务器查询 http://tsinghua.edu.cn 主机的 IP 地址;
9.http://tsinghua.edu.cn 域名服务器查询数据库,发现有主机域名记录,于是给本地域名服务器返回 http://tsinghua.edu.cn 对应的 IP 地址;
10.最后本地域名服务器将 http://tsinghua.edu.cn 的 IP 地址返回给客户端,整个解析过程完成。
4、ISP角度的DNS解析流程

ISP角度的DNS解析全过程与用户角度的DNS全过程区别在于以下几点:
1.在用户侧,本地DNS程序未出去迭代查询目的域名,该过程交给了ISP递归服务器代劳;
2.ISP侧缓存服务器如果存在目的域名的对应解析记录,则直接回复用户解析结果,不在由递归服务器进行迭代查询;
3.ISP递归服务器存在安全保护机制,会在ISP缓存服务器相应域名解析结果TTL值过期之前,提前进行迭代查询;
5、DNS劫持
现网DNS劫持主要分为两种方式:旁路抢答方式(分光镜像+抢先应答)与PBR策略路由方式[2]。
1、本文主要介绍旁路抢答方式,ISP通过分光镜像省网出口53端口流量,根据用户请求包的目的域名,提前抢答回复用户,因用户提前收到解析结果,用户自动丢弃掉后续收到的关于目的域名对应逐级NS记录的包。

劫持后用户逐级解析结果

正常用户逐级解析请求结果
正常用户递归Trace结果应该会展现各级NS记录,而非根服务器直接抢先应答用户http://qq.com的A记录结果,出现这种情况大概率是被劫持了(有可能被某些流氓软件-xx浏览器劫持了DNS)。

劫持时Wireshark抓包情况
后续还可以通过Wireshark抓包分析是否被劫持,当被劫持时,应该只有三个数据包:1、用户发起DNS请求(一般由所设DNS代发),2、劫持方直接抢答解析记录,3、劫持方抢答根NS记录。

未劫持Wireshark抓包情况
这显然和前文提到的DNS 客户端进行域名 http://www.tsinghua.edu.cn 的解析过程所应收到的数据包数量不相同,正常未劫持时,抓包情况应该如上图所示:
1.用户向本地DNS程序发起查询请求,查询数据库是否存在http://qq.com的缓存记录;
2.本地DNS程序回复RRset exist(Answer RRset表示回答区域的数量,此时为0),表示没有目的请求域名http://qq.com对应的缓存记录;
3.用户再次给本地DNS发起解析请求,此时DNS本地程序向本机配置的LocalDNS发起解析请求(部分用户是自定义配置的DNS业务地址,另外部分用户默认使用由ISP省网侧BRAS自动下发给ONT(光网络终端,即光猫)的LocalDNS地址),LocalDNS(可以理解为位于ISP内部的DNS缓存服务器)首先查看是否存在缓存记录,若有则直接返回缓存记录,若无则交给递归服务器进行逐级递归,最终抓包过程中会先反馈用户一个A记录解析包,然后再回复一个请求http://qq.com递归过程中的逐级NS(名称服务器,即授权服务器)的解析记录。
补充记录:
【1】DNS劫持主要分为三种:
1)路由牵引方式-通过获取异网DNS地址,凡是访问这些异网DNS的请求全部重定向至特定DNS;
2)旁路抢答(分光镜像+抢先应答),镜像分光所有DPI出口的53端口流量,针对流向异网DNS的递归,本地DNS伪装异网DNS进行抢答,此时会收到多个回包解析结果;
3)PBR策略路由,在出口设备配置策略路由,将53端口流量策略路由至网内,指向专门部署的DNS重定向系统,DNS重定向系统向ISP官方DNS发起解析请求并获取到解析结果,最后由DNS重定向系统把结果返回给用户,此时用户只会收到一个回包解析结果。
【2】DNS异网劫持,实际上返回的也是ISP缓存服务器上对应目标域名的缓存记录,只是有可能大环境下省内ISP递归服务器在去根服务器的回程上就被更上级的XX劫持了,本身拿到的解析ip就无法访问,而非故意返回一个错误的缓存结果给用户。
【3】异网劫持只对设置非本省本ISP的DNS业务地址用户生效,大多数用户直接从光猫和OLT上拿到从BRAS下发的DNS业务地址,此时并不会被异网劫持。
热门推荐
更多案例-

2024-06-02
项目案例展示
read more网页设计,是根据企业希望向浏览者传递的信息(包括产品、服务、理念、文化),进行网站功能策划,然后进行···
-

2024-06-02
项目案例展示
read more网页设计,是根据企业希望向浏览者传递的信息(包括产品、服务、理念、文化),进行网站功能策划,然后进行···
-

2024-06-02
项目案例展示
read more网页设计,是根据企业希望向浏览者传递的信息(包括产品、服务、理念、文化),进行网站功能策划,然后进行···
-

2024-06-02
项目案例展示
read more网页设计,是根据企业希望向浏览者传递的信息(包括产品、服务、理念、文化),进行网站功能策划,然后进行···