月光博客

青青子衿, 悠悠我心, 但为君故, 沉吟至今

« 谷歌拼音输入法的重大算法更新六步实现Google BlogSpot变成日记本 »

OpenDNS不能解决DNS解析错误

  我先前曾经写了篇文章《使用OpenDNS解决DNS域名劫持》,经过我进一步的测试和使用,使用OpenDNS并不能解决所有的国外网站的域名解析错误问题,当目标域名同时被DNS(Domain Name System)劫持和关键字过滤的时候,OpenDNS解析的结果会在中途被污染,只有使用远程解析域名才能彻底解决DNS劫持的问题。

  我测试的方式是,在国内网络使用OpenDNS,然后登陆我在国外的一台服务器,同时对某一个特殊网站执行nslookup命令。(nslookup命令的功能是查询一台机器的IP地址和其对应的域名。它通常需要一台域名服务器来提供域名服务。如果用户已经设置好域名服务器,就可以用这个命令查看不同主机的IP地址对应的域名)

  我在国内使用nslookup之后显示的结果如下图所示:

国内DNS解析情况

  而使用国外的服务器执行nslookup之后得到的结果如下图所示:

国外DNS解析情况

  从上面两张图片我们可以看到,当目标域名同时被DNS劫持和关键字过滤的时候,在国内和国外使用对于同一个域名地址会解析出不同的IP地址,因此可以得出结论,在国内即使使用国外的OpenDNS,对于某些“特定”的域名,也不能解析出正确的域名IP地址,解析DNS的结果依然被电信控制。

  不过,我们可以通过手动修改本地hosts文件,或者远程解析DNS来解决这种错误的域名解析,为什么要远程解析?这就涉及到了DNS污染技术。

  DNS污染是一种让一般用户由于得到虚假目标主机IP而不能与其通信的方法,是一种DNS缓存投毒攻击(DNS cache poisoning)。其工作方式是:在UDP端口53上的DNS查询进行入侵检测,一经发现与关键词相匹配的请求则立即伪装成目标域名的解析服务器(NS,Name Server)给查询者返回虚假结果。由于通常的DNS查询没有任何认证机制,而且DNS查询通常基于的UDP是无连接不可靠的协议,查询者只能接受最先到达的格式正确结果,并丢弃之后的结果。对于不了解相关知识的网民来说也就是,由于系统默认使用的ISP提供的NS查询国外的权威服务器时被劫持,其缓存受到污染,因而默认情况下查询ISP的服务器就会获得虚假IP;而用户直接查询境外NS(比如OpenDNS)又可能被劫持,从而在没有防范机制的情况下仍然不能获得正确IP。

  在Firefox中,设置远程解析DNS很简单,只需要在在about:config 改成 network.proxy.socks_remote_dns=true 就可以了。对于IE或者其他用户来说,需要安装一个名为SocksCap的软件,选中Resolve all names remot即可。



原创文章如转载,请注明:转载自月光博客 [ http://www.williamlong.info/ ]

本文链接地址:http://www.williamlong.info/archives/1113.html
  • 文章排行:
  • 1.FQX
  • 你这个论证有问题。
    一个域名可以对应几个IP的,比如说Google。
  • ip: 222.35.2.*  2007-10-28 13:22:14   回复该留言
  • 2.JasonNg
  • OpenDNS确实能返回正确的IP,使用wujie.net进行测试不能证明什么,因为wujie有很多IP,我每天都至少接收wujie.net四个新的IP。
  • ip: 221.192.236.*  2007-10-28 13:32:41   回复该留言
  • 3.kkk
  • 就算在本机用两次nslookup,也不会返回同样的结果

    反正我现在用的opendns,用了tor,没有tor的dns,上××没问题
  • ip: 222.85.179.*  2007-10-28 13:44:46   回复该留言
  • 4.opendns
  • 我也是用电信,用opendns能返回正确ip啊。
    或者说和http://www.opendns.com/support/cache/返回的ip是一样的。
  • ip: 203.88.217.*  2007-10-28 13:49:29   回复该留言
  • 5.涛tall
  • 是不是**大后封锁又加紧了,过去常用的几个powang软件似乎都不好用了。
  • ip: 123.52.18.*  2007-10-28 14:27:06   回复该留言
  • 8.robert
  • 很多站点可能采用global load balance DNS技术(参考http://dev.robertmao.com/2007/06/30/global-dns-load-balancing-for-free/)来解析不同的地址给不同的来源.
    但电信可以轻松采用流氓手段在接入服务器(华为目前就专门把这个作为一个功能和卖点)上发送欺骗的DNS报文来扰乱域名解析,无论你设置dns server在那里.
  • ip: 89.100.45.*  2007-10-28 18:50:49   回复该留言
  • 11.d
  • opendns这么厉害吗?
    还是担心来一招把opendns的ip给封了。趁现在还可以用大家要多用。
  • ip: 218.81.179.*  2007-10-28 19:04:57   回复该留言
  • 16.fly
  • 只有tor才安全啊,opendns我这里很慢,而且真要封很容易啊。
  • ip: 61.185.219.*  2007-10-29 5:42:32   回复该留言
  • 18.carfieldily
  • 目前还是想不到办法来访问Youtube,试过很多方法,修改hosts,换国外代理,Tor,什么都用了,希望这一辈子还能再看到Youtube
  • ip: 58.61.79.*  2007-10-29 9:11:07   回复该留言
  • 19.jianshuigen
  • 你好,月光,我想问问你可以不可以提供一些国外注册域名的网站啊.谢谢
  • ip: 203.86.25.*  2007-10-29 9:35:25   回复该留言
  • 22.cxy152376
  • SocksCap配合加密Socks5代理(如Tor)
    设置远端域名解析 .

    这是最稳妥方法.
  • ip: 218.94.6.*  2007-10-29 13:40:36   回复该留言
  • 23.dawnh
  • 你这个论据似乎跟你要论证的东西没有关系.
    另外,对于一些大的网站,会采用Bind的View功能,简单来说就是对于不同的dns client返回不同的结果.而存在这样一个前提:客户一般都是使用离自己无力位置比较近的DNS服务器的,因此就可以根据这个前提来做文章,利用view功能,对dns查询返回离他物理位置最近的IP.这样就达成了就近访问的目的.现在的CDN就是这个原理.

    然后再看看你的问题,你使用了opendns,从而破坏了这个前提,这样你得到的IP是离opendns较近的IP.
    然后结论就是,使用哪的DNS就得到哪得服务器IP,而与劫持毫不相干.

  • ip: 58.215.64.*  2007-10-29 13:54:11   回复该留言
  • 24.在在在
  • 呵呵,本文没有技术含量,大家就不要用技术的眼光来看待了.
  • ip: 124.243.206.*  2007-10-29 14:24:33   回复该留言
  • 28.shinko
  • 我用OPENDNS一年多了...重来没有给垃圾电信劫持过......OPENDNS应该是可以正确解析出域名IP的....
  • ip: 218.19.137.*  2007-10-29 20:14:45   回复该留言
  • 30.yksoft1
  • 理论上DNS请求百分之百是可以被中途拦截下来的。
    opendns 问题也很多,大量国内注册的域名无法解析。
    tor被封不存在太大技术问题,只是他们不去做。
  • ip: 64.62.138.*  2007-10-30 10:01:56   回复该留言
  • 31.ayanamist
  • 据我了解在大型机房的网关处一般都有设置DNS Relay的东东,这个东东不管客户机设置了什么DNS服务器,都会强制转换成某个指定的DNS。我们学校就是这样设置的,可惜我们学校的DNS太烂了,经常Server Not Found,即使用OpenDNS也没用,郁闷
  • ip: 202.114.128.*  2007-10-30 10:22:33   回复该留言
  • 33.gzdavidwong
  • C:\Documents and Settings\Winner>nslookup www.wujie.net
    Server: resolver1.opendns.com
    Address: 208.67.222.222

    Non-authoritative answer:
    Name: www.wujie.net
    Address: 64.33.88.161

    C:\Documents and Settings\Winner>nslookup www.wujie.net
    Server: resolver1.opendns.com
    Address: 208.67.222.222

    Non-authoritative answer:
    Name: www.wujie.net
    Address: 203.161.230.171

    C:\Documents and Settings\Winner>nslookup www.wujie.net
    Server: resolver1.opendns.com
    Address: 208.67.222.222

    Non-authoritative answer:
    Name: www.wujie.net
    Address: 202.181.7.85
  • ip: 219.135.241.*  2007-10-30 11:18:38   回复该留言
  • 36.Cap
  • 没用的,我试过中华电信自己的DNS,都不行
    168.95.1.1(dns.hinet.net)
    168.95.192.1(hntp1.hinet.net)
    168.95.192.2(hntp3.hinet.net)
  • ip: 124.134.145.*  2007-11-11 13:14:56   回复该留言
  • 39.小米
  • 现在已经有国内的OpenDNS了——17395!17395是免费的,并且不需要下载任何插件!
    17395除了有OpenDNS的功能外,
    还可以免费注册中文寻址!这一点像中文域名或是说3721(但不需要插件)

    60.190.228.88/218.108.234.88
  • ip: 61.164.43.*  2008-2-23 9:34:10   回复该留言
  • 40.Jarod
  • 唉,怎么就找不到一个干净上网的地儿呢,现在各家服务商又开始搞DNS劫持了,铁通居然强推网页游戏的广告。当打开一个错误的URL时,就这样,大家有什么办法的来分享一下呀,我是没招了。
  • ip: 122.13.132.*  2008-8-17 19:38:05   回复该留言
  • 41.呵呵
  • “因此可以得出结论,在国内即使使用国外的OpenDNS,对于某些“特定”的域名,也不能解析出正确的域名IP地址,解析DNS的结果依然被电信控制。”

    确实是这样的。
  • ip: 221.6.117.*  2009-12-10 11:21:22   回复该留言

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

订阅博客

  • 订阅我的博客:订阅我的博客
  • 跟随我的推特:跟随我的推特
  • 跟随新浪微博:跟随新浪微博
  • 通过Google订阅本站
  • 通过鲜果订阅本站
  • 通过电子邮件订阅本站

站内搜索

热文排行

最新评论及回复

最近发表

网站收藏

本站采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载本站内容必须也遵循“署名-非商业用途-保持一致”的创作共用协议.

This site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License.