V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
chuangbo
V2EX  ›  DNS

DNSPod 与 Google Public DNS 建立合作关系,已经对 8.8.8.8 开启了 edns 协议

  •  
  •   chuangbo · 2012-08-31 15:23:09 +08:00 · 19193 次点击
    这是一个创建于 4452 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这是
    DNS 的一个里程碑,代表了更智能、更合理的区域匹配,对 CDN 或大网站有非常好的改善效果。

    目前这个技术,在世界范围内,据我所知,只有 DNSPod 和 Google 在正式使用了。OpenDNS 和 cloudflare 都还没有启用。
    39 条回复    1970-01-01 08:00:00 +08:00
    Rabbit52
        1
    Rabbit52  
       2012-08-31 15:24:37 +08:00
    虽不明,但觉厉
    Livid
        2
    Livid  
    MOD
       2012-08-31 16:18:22 +08:00
    接下来就需要各大 CDN 的迅速跟进了。
    chuangbo
        3
    chuangbo  
    OP
       2012-08-31 16:22:37 +08:00   ❤️ 23
    @Rabbit52 亲,我来解释一下

    你知道的,国内网络比较奇葩,不同运营商之间速度很慢。好的,这要从一个故事说起。。。

    您运营了一个网站:diable3.com
    你网站有2个服务器,每个服务器有一个IP,分别是
    电信 1.1.1.1
    联通 2.2.2.2


    1. 小明
    小明在北京,用电信宽带,他访问 sex.com ,由于 DNS 的随机性,他访问到了联通 2.2.2.2 这个服务器,非常慢,慢的不能忍受,以至于 i7 + 64G内存 + SSD + GTX560 都无数次卡死。

    你就想,怎么告诉小明,他应该访问 1.1.1.1 ,这个对他来说才是最快的。

    直到你遇到了 DNSPod。

    DNSPod 可以给不同运营商的用户指定不同的服务器,你很高兴的注册了 DNSPod 的帐号,给按照线路,分配了两个IP地址,然后等待生效。。。终于生效了。。小明征服恶魔的战斗,再也不会被卡死了,他很快就60满级,回到了魔兽世界。


    2. 小华
    小华是小明对门儿,也用电信,是个自豪的程序员,他喜欢用新东西,他不屑于用运营商的 DNS,不屑于用 114.114.114.114,非要用 8.8.8.8。但是他悲剧了,DNSPod 不知道他是北京电信用户,以为他是国外用户,所以给他的IP,还是随机分配的,这次,分配到也是 2.2.2.2,但是他不知道是卡死的,因为 Mac 本来就很卡。

    你没招了,这是 DNS 协议的缺陷,使用 8.8.8.8,最后到达 DNSPod 的是 Google 的地址,DNS 协议没有在传输过程中加入原始 IP 的信息,DNSPod 无法知道小华也是北京电信用户,只知道这是一个在使用 8.8.8.8 的用户。


    3. edns
    edns 是一个 DNS 扩展协议,由 Google 起草的,改进部分很简单,就是在
    DNS 协议中加入用户原始 IP,这样 DNSPod 就可以给小华提供准确、合理的地址了。


    4. 难在哪?
    edns 只有 Google 的 8.8.8.8 支持了,而且只有加入了他们这个组织,向 Google 申请,Google 才正式开通 edns 协议,一般
    DNS 还是不开放的。
    Rabbit52
        4
    Rabbit52  
       2012-08-31 16:27:18 +08:00
    @chuangbo 那v2ex的dns也算咯
    chuangbo
        5
    chuangbo  
    OP
       2012-08-31 16:45:52 +08:00   ❤️ 1
    @Rabbit52 期待 V2EX DNS 针对 DNSPod 加入 edns 协议~
    andyliu
        6
    andyliu  
       2012-08-31 16:57:45 +08:00
    @chuangbo 通俗易懂。赞一个。
    andyliu
        7
    andyliu  
       2012-08-31 17:00:25 +08:00
    @chuangbo 但是还是有点疑惑,DNSPOD 是通过访问者的IP 完全可以识别出来吧。

    我DNS用8.8.8.8,但是我的外网IP 应该没有变化吧。
    xavierskip
        8
    xavierskip  
       2012-08-31 17:11:42 +08:00
    @chuangbo sex.com 大亮

    那DNSPod的dns服务器是多少?
    blank_dlh
        9
    blank_dlh  
       2012-08-31 17:28:01 +08:00
    @andyliu 你的 DNS 是8.8.8.8,如果 8.8.8.8 上没有个别处理正访问的域名(例如在8.8.8.8上把域名解析到了x.x.x.x.),那么根据 DNS 协议,是通过8.8.8.8去找到解析该域名的 DNS,也就是域名控制面板那里配置的那个(可以用 nslookup 查看)。
    qq286735628
        10
    qq286735628  
       2012-08-31 17:55:20 +08:00
    哇,这样子这个eDNS可给各大CDN帮大忙了
    yava555
        11
    yava555  
       2012-08-31 19:13:43 +08:00
    @chuangbo 有点小困惑,8.8.8.8每次都要带着用户ip都要向dnspod请求吗, 会不会有缓存?如果8.8.8.8有缓存,第一次电信请求,第二次联通用户怎么办?
    nijux
        12
    nijux  
       2012-08-31 19:20:05 +08:00
    很久以前就遇到设置了 8.8.8.8 然后访问Qzone 给出的ip不是最优的然后很慢 看了这篇文章才知道原来可以这样解决。
    zern
        13
    zern  
       2012-08-31 19:48:58 +08:00
    LZ好文采啊
    013231
        14
    013231  
       2012-08-31 20:02:11 +08:00
    @andyliu 8.8.8.8當然知道訪問者的IP, 但最終提供IP的那個DNS(比如DNSPod)不知道.
    red
        15
    red  
       2012-08-31 20:52:08 +08:00
    感谢LZ科普!edns 还是第一次听说
    rongbin
        16
    rongbin  
       2012-08-31 21:02:59 +08:00
    这里头还有一个局限吧。例如人家域名并不是让dnspod来托管的,例如是万网或者新网,那这个时候,使用google的8.8.8.8还是会出现判断不准
    chuangbo
        17
    chuangbo  
    OP
       2012-08-31 21:16:51 +08:00   ❤️ 1
    @andyliu 在 edns 以前,不能得到访问者的 IP ,只能拿到 Google 的 IP,所以跟你的外网 IP 没有关系。

    @xavierskip 你可能有点误会,DNSPod 不是公众 DNS,是给网站用的,意思是,使用了 DNSPod 的网站或 CDN 才可以享受到 edns 的欢乐。

    @yava555 我认为很难设计一个各方面符合 edns 要求的缓存,不知道 Google 是怎么处理的。

    @zern 谢谢,其实写的很乱,许多地方不通顺,错别字也很多。

    @rongbin 是的,所以据我所知,全球只有两种网站能享受到 edns 的便利,一是 Google 自己的网站,二是使用了 DNSPod 的网站。
    wythe
        18
    wythe  
       2012-08-31 21:42:48 +08:00
    @nijux 遗憾的是,edns仍然无法解决你访问Qzone速度慢的问题,因为Qzone使用的dns并不支持edns,就算你设置了8.8.8.8,仍然会返回不是最优的ip。

    期待edns的普及。
    nijux
        19
    nijux  
       2012-08-31 22:29:48 +08:00
    @wythe 恩 一开始就理解了 自己电脑要设置8.8.8.8 所访问的站点要使用DNSPod服务 才能有这个效果这点 ^_^
    rongbin
        20
    rongbin  
       2012-08-31 22:33:32 +08:00
    也许人家想着,绝大多数都是不会去特意修改dns解析的。是什么样的网络,就用什么运营商的DNS解析,才是合理的。

    可能是因为修改DNS是属于小众人的缘故吧,故就懒得修改了。 而且,还是单独为了8.8.8.8 ^_^
    andyliu
        21
    andyliu  
       2012-08-31 23:02:33 +08:00
    @chuangbo 看了你的最后一句,猜你是跟奶罩混的。看了你的博客,果然如此。
    shanks
        22
    shanks  
       2012-09-01 11:48:55 +08:00
    感谢楼主科普,这学期深入学习计网,先预热一下
    sm0king
        23
    sm0king  
       2012-09-03 15:08:38 +08:00
    DNSPOD好像没说使用的这种技术吧。
    raptium
        24
    raptium  
       2012-09-03 15:14:28 +08:00
    edns 的缓存想起来真复杂
    其实本来 8.8.8.8 就有 anycast routing,不过估计 google 不会在国内部署 DNS 服务器,不然至少网通电信分清楚还是很容易的
    chuangbo
        25
    chuangbo  
    OP
       2012-09-03 15:36:17 +08:00
    @sm0king 你可以试一下嘛
    sm0king
        26
    sm0king  
       2012-09-03 15:49:33 +08:00
    @chuangbo 怎么测试呢? 好像不使用这种技术一样可以实现你说的功能.
    ljbha007
        27
    ljbha007  
       2012-09-03 15:51:06 +08:00
    为啥直接用电信的DNS就可以被DNSPod知道 访问者的IP呢 难道这种情况下DNS不是通过电信的DNS转发过来的吗?
    raptium
        28
    raptium  
       2012-09-03 16:24:30 +08:00
    @ljbha007 直接用电信的 DNS 就不用知道用户的 IP 了,因为看到是电信的 IP 所以就认为用户是电信用户,所以返回电信的 IP 了
    ljbha007
        29
    ljbha007  
       2012-09-03 16:46:14 +08:00
    @raptium 原来如此
    chuangbo
        30
    chuangbo  
    OP
       2012-09-03 18:35:17 +08:00
    @sm0king 如何实现?
    mudkip
        31
    mudkip  
       2012-09-03 20:58:07 +08:00
    那剩下的问题是,如何告诉8.8.8.8我真实的IP地址?

    为了获得纯净的DNS体验,8.8.8.8直接获得的是一个国外IP,我怎么让8.8.8.8知道我是网通用户(而不是日本或美国用户),从而使上游的DNSPod返回网通IP呢?
    jybox
        32
    jybox  
       2012-09-03 21:46:44 +08:00
    @mudkip 楼上已经说过了
    以前你查询一个域名对应的ip,是这样的流程

    你向8.8.8.8询问,8.8.8.8向该域名的DNS服务提供商询问,然后将结果返回给你

    这样的话,该域名的DNS提供商不知道你的IP,它只知道是8.8.8.8向它询问的,在EDNS中,8.8.8.8向域名的DNS提供商询问的时候,会把你的IP一同提供给DNS服务提供商。这样DNS服务提供商就可以为你选择更优的线路了
    mudkip
        33
    mudkip  
       2012-09-03 22:45:11 +08:00
    @jybox 其实我的意思是用VPN上网的情况,如何让8.8.8.8知道我的真实IP而不是VPN的IP呢?
    raptium
        34
    raptium  
       2012-09-03 22:50:00 +08:00
    @mudkip 你可以加一條靜態路由 讓去 8.8.8.8 包不從 vpn interface 走
    palxex
        35
    palxex  
       2012-09-22 09:27:35 +08:00
    @raptium 那大陆用户用google dns的本意就完全没用了,不从vpn走就会受到gfw的dns下毒……
    ketao
        36
    ketao  
       2012-10-19 14:50:18 +08:00
    牛逼
    tsing
        37
    tsing  
       2012-10-19 16:08:54 +08:00
    w15973
        38
    w15973  
       2013-03-10 15:32:59 +08:00
    @raptium :直接用电信的 DNS 就不用知道用户的 IP 了,因为看到是电信的 IP 所以就认为用户是电信用户,所以返回电信的 IP 了
    那网站做了CDN优化,有北京和深圳两个IDC托管,如果域名托管在DNSpod,北京电信用户和深圳电信用户访问到的该是哪个呢?
    raptium
        39
    raptium  
       2013-03-11 08:41:30 +08:00 via iPhone
    @w15973 如果用戶使用默認 DNS,沒有自行更改的話,會訪問就近的。北京和深圳的電信 DNS IP 不同,dnspod 會解析出相應的 IP。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2665 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 15:03 · PVG 23:03 · LAX 07:03 · JFK 10:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.