浅谈美国老爷子所说的移动申请的DNS加速专利

上家公司离职之前,一个美国的极客老爷子联系我,说他在Twitter上看到一个推文,问我这个情况是否属实。我大概看了一下,内容基本上概括下来就是,中国移动的某些地方运营商将会对利用“DNS污染”的原理,将用户的请求解析到“其认为最近的加速节点”上,这一思想申请专利。

我们知道CDN的基本组件就是GSLB+Reverse proxy+cache,按照这位美国老爷子的截图,以及他上下文的描述,大概可以理解为:移动内网里可能有些CDN加速节点,或是某些CDN厂商的,或是廉价租给某些厂商的,甚至可能是一些“未经授权的”自建节点。

由于中国移动的网络结构比较奇葩(换而言之人家初期的网络设计就是给普通wap手机网络搞的,就算合并进来的铁通最开始也是做铁路线附近的网络的,压根不是给普通的宽带用户上网用的),且为了保证更少的缴纳跨运营商的流量费,甚至创收,早些年的适合移动经常做的事情就是在纯http协议的网站上插广告、网站劫持和代理访问。

本人之前也是在国内的云厂商工作过的,每天客户因为运营商劫持、插广告骂娘的事情不少,甚至有人因为被当地运营商插了带有“近似于色情图片”的广告差点被举报。由于年代久远,具体的也记得不是很清楚了,因而就不多举例子了。

而这一切,到底是怎么实现的呢?其实很容易,比如你使用的是http协议访问某个网站,由于http协议是明文的,因而运营商是可以看到服务器给你发的是什么内容,即HTML文本里的内容,运营商是非常清楚的。人家都知道服务器给你回传的内容是什么,直接差一条广告的html信息或者CSS样式,哪怕是JS都不过分。

有的人可能会问,那网站劫持和代理访问是怎么玩的?嗯,首先我要承认,这个叫法是我自己取得,理由嘛!你懂的……

拿用来测网络联通效果的“baidu.com“为例,当我们要通过浏览器访问这个网站的时候,本地的机器会想本地DNS请求”baidu.com”的IP地址。正常情况下,通过DNS的递归查询,然后最终的DNS权威服务器或某地的缓存服务器会将DNS结果发送给本机,之后才是本机开始发送http请求到刚刚解析到的IP地址。

但是运营与很多时候会出于省钱、省流量或创收的目的,在运营商内部搭建一套自己的DNS服务器,将尽可能多的请求都引入到本地的CDN加速节点或自建缓存服务器上,以提高访问速度、节约流量,甚至是插一些广告。如果用户选择自行设置DNS地址,比如移动用户强制制定自己的dns解析服务器为114.114.114.114,通常情况下,就不会受内网DNS服务的引流,而是访问114.114.114.114返回的结果。

而这张美国极客老爷子传给我的图片里所描述的内容,无非是在移动内网里搭建了一个DNS请求抢答器,当它监测到内网有人在发送dns请求的时候,它优先你请求的目标服务器,代答一个处于移动内网的IP地址,这个IP可能是缓存,也可能是CDN加速节点。

说白了,其实就是利用我前文提到的DNS污染的机制,即由于dns是明文数据包,因而你的每一个DNS请求都会被以明文的形式进行发送和接收。此时,运营商在获取到你尝试请求某一个域名的IP解析之后,可以利用抢答机制,回复一个非你请求的目标DNS服务器上返回的结果。由于UDP的通信原理,UDP为无状态协议,无法通过“三次握手”和“四次挥手”建立有状态的链接,因而当UDP协议如果接收到了伪造的数据包之后,会丢弃掉之后发送来的真正的请求。这样,你的请求将会被发送到运营商希望让你访问的节点。

这个老爷子可能不是很了解国内的运营商的一些省钱的小套路,但是人家毕竟是做流量管理出身的,况且他对东南亚那边更恶心的网络运营商非常了解,相信应该不会对这个事情表示过度惊讶。但是对于将“DNS污染”这种基本上大学里网络安全社团基本上拉出来个人都会搞的技术拿去申请专利……这个好像的确不好。换而言之,如果这个也可以申请专利,那以后我可以搞一个ARP劫持软件、DDoS攻击软件,然后写个专利申请书。嗯,感觉走上人生巅峰指日可待啊!

至于解决办法嘛!这种运营商级别的还是比较好解决的,一种是找工信部投诉,另一种就是用技术解决,我会在之后的文章中进行详细描述。

此条目发表在Life, Network分类目录,贴了标签。将固定链接加入收藏夹。

浅谈美国老爷子所说的移动申请的DNS加速专利》有1条回应

  1. Jamesled说:

    Seriously this is a advantageous website.

发表评论

电子邮件地址不会被公开。 必填项已用*标注