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

目前有完全满足这样功能需求的 DNS 服务么?

  •  
  •   Livid · 2014-05-08 22:06:02 +08:00 · 10406 次点击
    这是一个创建于 3844 天前的主题,其中的信息可能已经有所发展或是发生改变。
    定义一个 A RECORD,这个 A RECORD 后面对应 N 个 IP,然后每 30 秒去探测一次这些 IP,如果连续 3 次探测失败,就把这个 IP 标识为不可用,如果连续 2 次探测成功,就把一个之前标识为不可用的 IP 标识为可用。解析的时候返回当前可用的 IP。

    如果这个 A RECORD 后面对应的全部 IP 都 down,就把这个 A RECORD 指向到另外一个 CNAME 或者 IP。
    25 条回复    2016-10-23 09:45:53 +08:00
    likexian
        1
    likexian  
       2014-05-08 22:08:06 +08:00   ❤️ 1
    dnspod d监控
    SnD6CeI1
        2
    SnD6CeI1  
       2014-05-08 22:10:57 +08:00
    这么复杂,肯定不能广泛用,DNSPOD的时间间隔很长。建议自己搞吧。
    FarBox
        3
    FarBox  
       2014-05-08 22:11:39 +08:00   ❤️ 1
    如果只是这个功能,自己写一个,也是挺容易的事情。

    我们有类似的机制,但是更复杂一些,是N个IP主机自己会心跳。
    Livid
        4
    Livid  
    MOD
    OP
       2014-05-08 22:15:33 +08:00
    @likexian 我去看了这个页面:

    https://support.dnspod.cn/Kb/showarticle/tsid/16/

    还是有一些疑问,还请大神解答。具体的应用场景是这样的:

    假设在美国西海岸有两个数据中心,每个数据中心有 6 台机器。

    www.example.com 默认情况下 CNAME 指向到 sjc.example.com

    sjc.example.com 背后是 sjc 数据中心的 6 个 IP,我希望解析结果中只包含这个数据中心中还活着的 IP。如果 6 个全挂了,sjc.example.com 就 CNAME 到 lax.example.com

    备份点 lax.example.com 背后也是 6 个 IP,平时解析时返回的是 lax 里还活着的,如果 6 个全挂了,lax.example.com 就 CNAME 到 sjc.example.com

    因为 sjc/lax 同时挂的可能性不大,所以这样基本上可以尽量满足 SLA。

    目前在海外有这样的产品存在么?如果用中国的监控点的话,我担心由于中美之间网络的天然不靠谱造成很多不必要的切换。
    halfbloodrock
        5
    halfbloodrock  
       2014-05-08 22:16:21 +08:00
    这个看起来像一个负载均衡的机制。
    FarBox
        6
    FarBox  
       2014-05-08 22:25:07 +08:00
    @Livid check the email.
    likexian
        7
    likexian  
       2014-05-08 22:56:01 +08:00
    @Livid dnspod可以做到只返回可用的ip,在所有设置的ip都不可用了也可以自动切换到指定的a或cname(同样会检查是否可用),不过现在只有国内版有监控,国外版还没有上,不过已经是计划中的了
    likexian
        8
    likexian  
       2014-05-08 22:57:57 +08:00
    @Livid 考虑你的需求,自己写个监控吧,然后调用dns提供商的接口完成切换,也不是很麻烦的
    xoxo
        9
    xoxo  
       2014-05-08 22:58:50 +08:00
    Webluker(ChinaCache旗下)有这个功能. 不怕得罪楼上, DNSPOD的功能有限
    vvoody
        10
    vvoody  
       2014-05-08 23:33:37 +08:00   ❤️ 1
    BigIP的GTM就可以这样,不过不知道有没有好的开源方案,这里有个讨论:
    http://serverfault.com/questions/294496/how-does-f5-gtm-work
    jerry74
        11
    jerry74  
       2014-05-08 23:50:56 +08:00
    弄個Global Server Load Balance??
    ritksm
        12
    ritksm  
       2014-05-09 00:03:32 +08:00
    一下就想到Zookeeper...
    adieu
        13
    adieu  
       2014-05-09 09:28:52 +08:00
    可以用skydns https://github.com/skynetservices/skydns + 定制化health checker来实现。

    在health checker定期扫描所有ip,然后更新对应记录的ttl。

    有一个skydns和docker集成的项目,skydock https://github.com/crosbymichael/skydock 用了类似的实现,可以参考。
    Livid
        14
    Livid  
    MOD
    OP
       2016-09-01 20:16:56 +08:00
    qcloud
        15
    qcloud  
       2016-09-01 20:20:54 +08:00
    @Livid 可怕,几年前的帖子突然上了首页....
    adfsadfssfd
        16
    adfsadfssfd  
       2016-09-01 20:26:08 +08:00
    gslb...
    anjunecha
        17
    anjunecha  
       2016-09-01 21:25:35 +08:00   ❤️ 1
    我用的是 NSONE , 觉得比 Route53 的 failover 功能好用一些, 使用 Failter Chain 实现 automatic failover 的功能, NSONE 相比 Route53 可以使用更多的 monitoring services ,使用 failback 功能可以实现在 primary 记录可用之后自动切到 primary 记录

    https://ns1.com/articles/automated-failover
    est
        18
    est  
       2016-09-01 22:21:12 +08:00
    2014 年的帖子。。。
    kn007
        19
    kn007  
       2016-09-01 22:53:13 +08:00
    mark
    panzhc
        20
    panzhc  
       2016-09-01 23:49:45 +08:00
    不明白为什么不用负载均衡? DNS 有缓存。 dnspod 有 API ,撸一个挺方便的。
    yun
        21
    yun  
       2016-09-01 23:59:15 +08:00
    @qcloud 站长回复自动加成置顶,这功能不错。
    aveline
        22
    aveline  
       2016-09-02 01:36:06 +08:00
    说起来最近在公司做了个简单的调度系统,通过某两家探针服务自己实现了这个功能。
    不过间隔没有那么短,按次数算 30 秒跑一次实在是太贵了 ...
    voostar
        23
    voostar  
       2016-09-02 11:03:20 +08:00
    为什么不上 AWS 的 ELB ?
    mytsing520
        24
    mytsing520  
       2016-09-09 02:30:59 +08:00
    Route 53
    vanishs
        25
    vanishs  
       2016-10-23 09:45:53 +08:00
    mark
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2174 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 00:35 · PVG 08:35 · LAX 16:35 · JFK 19:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.