在G+上碰到了出现DNS相关问题的网友,于是今天又测试了一下DNS的现状。整个过程很简单,只需一个命令即可:nslookup

在Windows的命令提示符下测试,基本的格式为:

1
nslookup DOMAIN DNS_IP

而国内的DNS问题基本分两种:

一、DNS记录劫持

DNS记录劫持是指DNS服务器上的DNS记录被恶意设定为不正确的内容。DNS劫持是长期的,不经手动更改不会修复。

一类是政策问题导致国内DNS会劫持某些站点,GFW你懂的。而另一类:

ISP为了其自身利益(妨碍访问竞争对手网站、植入广告等等)进行的DNS劫持,这个在国内ISP中普遍存在,都有劫持DNS的能力。特点是,域名解析结果会一股脑的指向同一个IP,下面我们拿我所在的青岛联通的默认DNS(202.102.128.68)试试,得到以下两类结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

C:Userscokebar>nslookup baidu.com 202.102.128.68
服务器:  ns.sdjnptt.net.cn
Address:  202.102.128.68
非权威应答:
名称:    baidu.com.lan
Address:  220.250.64.228
C:Userscokebar>nslookup facebook.com 202.102.128.68
服务器:  ns.sdjnptt.net.cn
Address:  202.102.128.68
非权威应答:
名称:    facebook.com.lan
Address:  220.250.64.228
C:Userscokebar>nslookup duowan.com 202.102.128.68
服务器:  ns.sdjnptt.net.cn
Address:  202.102.128.68
非权威应答:
名称:    duowan.com.lan
Address:  220.250.64.228
C:Userscokebar>nslookup taobao.com 202.102.128.68
服务器:  ns.sdjnptt.net.cn
Address:  202.102.128.68
非权威应答:
名称:    taobao.com.lan
Address:  123.129.254.19

一种是全劫持到123.129.254.18/123.129.254.19这两个地址,经查属于山东省济南市联通

另一种是劫持到220.250.64.228这个地址,经查是北京市联通

同时域名名称也在末尾多出了一个”.lan”

至此得出结论,202.102.128.68这个DNS并不是其实际的DNS服务器,他只是完成DNS劫持的使命的。下面分析一下整个的过程:

假如你通过浏览器访问google.com,那么202.102.128.68向你返回了123.129.254.18,于是你向这个IP发出了相应的打开google.com主页的请求,而这个请求被123.129.254.18这个服务器收到后,他会根据事先设定的规则判断,如果规则里说不对这个域名进行干扰,那么你的访问请求就会被forward到真正的google.com的服务器上去,可能对于大部分网站都属于这个情况,整个过程比直接返回真实IP慢不了多少,从延迟上肯定分辨不出。

而如果你要访问的域名在黑名单上,或者你输入了一个错误的不存在的域名,那么服务器处理的方式就多种多样了:

1、对于不存在的域名,直接返回一个联通预定义的提示你“输入的域名不存在”的网页,在提示用户的同时还能植入点广告可谓是一举两得,这个还属于良性的,比如说我将DNS改为联通的DNS,随便敲了个域名,得到下面的页面:http://nfdnserror17.wo.com.cn:8080/sdjc/self0.jsp?UserUrl=

我们可以ping以下这个不存在的域名来看看到底被指向到哪里了:

1
2
3
4

C:Userscokebar>ping dfslaw343412.com
正在 Ping dfslaw343412.com [220.250.64.228] 具有 32 字节的数据:
来自 220.250.64.228 的回复: 字节=32 时间=21ms TTL=247

再ping一下nfdnserror17.wo.com.cn

1
2
3
4

C:Userscokebar>ping nfdnserror17.wo.com.cn
正在 Ping nfdnserror17.wo.com.cn [220.250.64.228] 具有 32 字节的数据:
来自 220.250.64.228 的回复: 字节=32 时间=20ms TTL=247

可以看到得到的结果正是220.250.64.228这个IP,上面提到了,部分域名被劫持到这个IP。

2、forward到一个不正确的IP地址,导致无法连接服务器或者其他奇怪的现象,通常只针对被特殊照顾的极少数国外站点,比如说twitter可是说是重点照顾,facebook、youtube都没像twitter那样有DNS劫持+污染、封IP、TCP_RESET等那么全面的封锁形式。

我们可以试着ping以下twitter看看最终连接到哪里了:

1
2
3
4

C:Userscokebar>ping twitter.com
正在 Ping twitter.com [59.24.3.173] 具有 32 字节的数据:
请求超时。

可以看到被指向了59.24.3.173这一无法访问的IP。我们通过nslookup的-v参数来通过TCP方式查询google DNS看到真正的地址是199.59.X.X的三个地址:

1
2
3
4
5
6
7
8
9

C:Userscokebar>nslookup -v twitter.com 8.8.8.8
服务器:  google-public-dns-a.google.com
Address:  8.8.8.8
非权威应答:
名称:    twitter.com
Addresses:  199.59.148.82
          199.59.150.7
          199.59.149.198

杯具的是G+同样遭受联通的劫持,IPv4被解析到google其他服务器的IP上去了,导致G+无法打开,而在家里的铁通网实测是没有劫持的:

1
2
3
4
5

C:Userscokebar>ping plus.google.com
正在 Ping plus.google.com [74.125.39.102] 具有 32 字节的数据:
请求超时。
请求超时。

不过IPv6幸免于难可以连接并正常打开G+:

1
2
3
4
5
6

C:Userscokebar>ping plus.google.com
正在 Ping plus-china.l.google.com [2404:6800:4005:806::1009] 具有 32 字节的数据:
来自 2404:6800:4005:806::1009 的回复: 时间=288ms
来自 2404:6800:4005:806::1009 的回复: 时间=288ms

3、植入广告。返回一个带有广告的网页并将原网页嵌套进去,看起来就像你访问的站点放的广告一样,这个其实算违法了,以前这情况挺多,现在还这样搞的ISP没那么多了。

综上,DNS中间过了这么一道关后,实际劫不劫持全看ISP自己,虽然多数情况不会发生(被特殊照顾的某些国外网站除外 这些是必劫持),不过还是存在部分域名在部分省市存在劫持现象,影响正常访问某些站点或者被植入广告。

解决办法自不用说,对于多数ISP,如联通电信,使用114DNS通常没有问题,将DNS改为114.114.114.114/114.114.115.115,114DNS为各大运营商做DNS记录备份,号称无劫持,不过其实某些站点还是有劫持的比如说twitter,不过还好G+是完好的。

[2014.2.27]今天又使用了校园网测试,发现114DNS对于教育网政策不同,存在不解析Google的部分域名,劫持facebook等站点的现象,114DNS也不是最佳方案,对于这些站点还是老老实实挂上代理比较好。

二、DNS记录污染

DNS记录污染,指的是有人通过恶意伪造身份、利用漏洞等方式,向用户或者其他DNS服务器提供虚假的DNS记录。由于DNS记录存在一个生存期(TTL),在生存期内,DNS保存在缓存中,除非经过了大于一个TTL的时间,或者经手工刷新DNS缓存,虚假的记录会一直存在下去,并且如果污染了DNS服务器,这种污染还具有传染性。

DNS污染具有暂时性,过了TTL周期,如果不进行再污染,污染就会消失。

DNS记录污染同劫持的不同之处,在于污染是对本来正确的DNS查询结果进行篡改,而劫持是DNS服务器自己把记录改成错误的内容。对于GFW来说,DNS劫持用于国内服务器,而对于国外服务器GFW无法更改其内容,故采用DNS污染方式篡改用户收到的信息。

GFW的DNS污染过程,是当你向国外DNS服务器查询DNS记录时候,这些流量走到国外出口处即会遭到GFW的关键字审查,如果上了黑名单,GFW会立即向你返回一个虚假的DNS记录。由于默认的DNS查询方式是UDP,加上DNS查询结果只认最快返回的结果,所以你一定是先收到了GFW给你返回的虚假DNS记录;就算100ms后你收到了真正的来自国外DNS的回复,那也会被你的系统无视掉。如果GFW想彻底污染一个域名,那么不只是普通用户,连国内所有的DNS服务器也会收到虚假的DNS纪录导致全国性的DNS污染。

前一段,不明原因的发生了国内大规模的DNS污染事件,国内大部分站点和部分地区均受到影响无法通过域名访问。这必定与GFW强大的DNS污染能力有关。

不过不仅仅是国外出口处DNS记录可能污染,各省市的ISP也可能利用现有GFW的技术进行自己的DNS污染,这种污染范围小一些,也是GFW的一环。

防止DNS污染的方法目前来说就是使用TCP协议代替UDP来进行DNS查询,因为TCP协议是有连接的协议需要双方握手成功才能通讯,从而避免GFW这种简单的DNS污染方式。目前GFW对于TCP方式的DNS查询其实已有阻断能力,但未大规模部署,目前貌似只有dl.dropbox.com会遭遇TCP阻断:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

C:Userscokebar>nslookup -v -d dl.dropbox.com 8.8.8.8
------------
Got answer:
    HEADER:
        opcode = QUERY, id = 1, rcode = NOERROR
        header flags:  response, want recursion, recursion avail.
        questions = 1,  answers = 1,  authority records = 0,  additional =
    QUESTIONS:
        8.8.8.8.in-addr.arpa, type

国内DNS劫持与污染状况分析相关推荐

  1. 详解DNS服务、DNS解析、DNS劫持和污染

    简介 DNS(全称:Domain Name System,中文:域名系统)是互联网的一项服务.它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网.1 前言 要想弄清楚 D ...

  2. 上海电信DNS劫持事件[含技术分析]

    据本人查证,上海电信在近一个月内对其所属的DNS服务器做了某些明显违背互联网规范的行为,导致出现将客户浏览器导向其自身所辖的114号码百事通,此种行为非常令人不齿.使用上海电信宽带接入的朋友可能最近也 ...

  3. 修改主机Host配置(可用于屏蔽网站/广告、防止DNS劫持和污染)

    hosts是系统文件(没有扩展名),主要用于解析域名到指定IP. 作用过程 有,获取配置的IP 无 浏览器 输入网址 Hosts配置有否 网址对应的域名 向服务器 IP发起请求 获取DNS服务器 的域 ...

  4. 中国电力行业运行形势及十四五供需状况分析报告2021-2027年

    中国电力行业运行形势及十四五供需状况分析报告2021-2027年 HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS-- [修订日期]:2021年10月 [搜 ...

  5. Windows实验——DNS劫持演练

    一.实验环境 钓鱼网站:虚拟机Windows Server 2008的缺省网站     IP:192.168.43.44 攻击者:物理机Win 10                          ...

  6. 彻底解决DNS劫持污染,如何彻底解决DNS劫持污染,方法介绍

    DNS劫持污染介绍 DNS污染--指的是用户访问一个地址,国内的服务器(非DNS)监控到用户访问的已经被标记地址时,服务器伪装成DNS服务器向用户发回错误的地址的行为.范例,访问油管.脸书之类网站等出 ...

  7. 云漫圈 | 什么是DNS?什么是DNS污染?什么又是DNS劫持?

    戳蓝字"CSDN云计算"关注我们哦! 文章转载自公众号:漫画编程 2019年1月23日下午,我正在公司疯狂的撸着代码,沉浸在我的代码世界中,正在欣赏着自己刚刚写下的一行lambda ...

  8. DNS相关专题---DNS劫持和DNS污染

    1.DNS劫持 DNS 污染 是指流量分析劫持设备在分析到需要的DNS查询请求后(一般为udp53号端口,要抓取的dns的ip地址设置白名单),抢先伪装一个DNS回复请求给用户,为什么会抢先呢,因为用 ...

  9. DNS劫持 DNS污染 介绍 与 公共DNS 推荐

    我们知道,某些网络运营商为了某些目的,对 DNS 进行了某些操作,导致使用 ISP 的正常上网设置无法通过域名取得正确的 IP 地址.常用的手段有:DNS劫持 和 DNS污染.DNS劫持 和 DNS污 ...

最新文章

  1. 大数据学习笔记一:大数据的发展历程--MapReduce,Hive,Yarn,Hadoop,Spark,Flink
  2. OpenDrive记录
  3. C下的全局变量和指针 - C/C++ / C语言
  4. 最详细的PCL编译安装流程
  5. python的爬虫功能如何实现
  6. 《31天重构》4:下置方法
  7. 记忆化搜索--poj 1597 Function Run Fun
  8. HDOJ 1106 排序
  9. Master PDF Editor for Mac(PDF文档编辑软件)
  10. 小程序商城源码(JAVA后台)
  11. 番茄花园xp开机音乐_抱歉,Windows XP的开机音乐骗了你20年
  12. php中文九九乘法表,PHP输出九九乘法表代码实例
  13. 计算机dos命令大全TXT,dos命令大全常见命令图解
  14. 神经网络机器翻译的实现
  15. 强化学习——多智能体强化学习
  16. Cadence学习笔记-第二章-瞬态仿真
  17. html打字机特效,[JS插件]酷炫的打字机效果: Typed.js
  18. 个人的工作总结(和工作规划)
  19. 我的项目: UConn summer academy BI制药 缺失值处理
  20. ES1J-ASEMI超快恢复二极管ES1J

热门文章

  1. Zookeeper的架构设计及原理分析
  2. pandas—删除某行或某列数据
  3. pytest测试报告-allure的安装与使用
  4. matlab 调幅频谱ifft,噪声干扰信号的matlab仿真.doc
  5. mysql latin1转utf8_mysql编码转换 latin1编码向utf-8转换
  6. honeyselect身高补丁_honeyselect 4k高清画质补丁 V1.1 - honey select超高清画质插件
  7. 仿真枪测速器开发之液晶横屏(ST7531)
  8. KIS专业版和旗舰版的区别在哪里?详细功能对比
  9. 现货黄金白银上阻力位和压力位的确定和应用
  10. 如何打造一流的质量保证部门?