DNS 问题,研究到凌晨 4 点还是没有结论...救救孩子吧 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX    DNS

DNS 问题,研究到凌晨 4 点还是没有结论...救救孩子吧

  •  
  •   waibunleung 2021-08-02 04:13:43 +08:00 10009 次点击
    这是一个创建于 1536 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近看了 DNS 解析相关的内容,然后就好奇 dig 了一下公司的一些域名,发现自建了好多二级域名服务器。这么多服务器明显是为了容灾+分流,然后我就在想,DNS 服务器的高可用是怎么保证的?

    于是我:
    1.搜索了相关的 DNS 集群搭建,发现都是介绍 dns 主从服务器搭建的比较多,说一主多从就算是一个集群,但我觉得这点能力是不太够支撑高可用的
    2. 找了下有没有相关大厂 DNS 这块的高可用设计,找到阿里的,但是关于一些细节的描述并没有,看完之后似懂非懂 -> https://zhuanlan.zhihu.com/p/115909472
    3. 404 网站找了一番,也是多数关于 DNS 主从服务器的搭建,帮助不算太大

    无奈的我只能在这里发帖问问大家,希望有相关经验的家人们能够点拨一下~

    dns 解析这一层,是怎么保证高可用的?
    用集群冗余备份大概率没跑了,但是集群内部是怎么同步数据的?集群中的每一个节点都向外提供服务吗?
    一个进群可能不够,那多个集群之间又是怎么同步的呢?

    真的感觉自己知道的太少了~

    68 条回复    2021-08-16 14:34:24 +08:00
    mytsing520
        1
    mytsing520  
    PRO
       2021-08-02 04:46:08 +08:00
    根据楼主提供的阿里文档,接下来所有都是我个人的推( che )论( dan ),如果讲的不对请指出,我没有做过这个规模的,大佬请轻喷。

    回到 DNS 本身。除了提升 DNS 服务器本身的服务质量,为了确保高可用,主要通过负载均衡技术实现。你在互联网上看到的一个 IP 地址,其背后会有 N 台服务器来提供支撑。就算有一台挂了,SLB 也会马上抛弃之,确保无论如何最后至少会有一台服务器依然在提供服务。当然,真遇到了 DNS 服务器本身的故障,运维团队也不是吃素的。
    同一个主域名下,多组 DNS 的部署,可确保每组 DNS 在一个较大的数据范围内,其承担的解析工作量接近相等。
    至于有些厂商针对子域名单独做了 NS (比如 qq.com ),技术层面上面已经做了回答,我想更多的出于管理层面的考虑,毕竟大厂业务多,域名也多。
    希望这能回答清楚你的“dns 解析这一层,是怎么保证高可用的?”这个问题。

    至于同步数据,为了安全起见,首先订明管理端与实际提供解析服务的服务器分离。
    DNS 管理员配置域名解析后,该结果将会保存到数据库。阿里的文档中,负责存储和下发角色的数据库,通过使用集群和多副本存档等技术手段,确保数据的可靠性。
    最后,通过数据库向部署的 DNS 下发域名解析配置。文档中提及“应用机房部署与数据库解耦,可以任意机房部署”,这里的“应用机房”就是我们 dig 时看到的那些,他只需要负责接收配置结果并应用于承担外部流量,所以部署在哪里实际上只有事先会比较重要,后期按客户所在地适当调整即可。

    至于文中提及的 anycast 、解析结果正确性、安全防护,则是日常应用阶段的延展了。
    mytsing520
        2
    mytsing520  
    PRO
       2021-08-02 04:51:28 +08:00
    至于 DNS 服务本身的架构,你可以是主从架构,也可以是全主。
    但在域名委派体系里面,上级域只会给下级域一个主要的服务地址。
    mytsing520
        3
    mytsing520  
    PRO
       2021-08-02 04:56:32 +08:00
    更正:2 楼答复中,将“至于 DNS 服务本身的架构”更正为“至于 DNS 服务本身”。读着读着感觉有问题。
    wd
        4
    wd  
       2021-08-02 06:44:27 +08:00 via iPhone
    没太明白楼主的点.. dns 记录挺小的,一个公司内部自己的 dns 记录一般不会很多,因为一般流量入口就是一个 nginx 之类的 lb 集群,这样比如新建一个域名的时候通过 cname 到 lb 的 dns 就行。这样一般变更其实很少,要就是 lb 加减机器的时候会有变更。
    另外一个,dns 会有 ttl 的,现代一般 ttl 都很小,例如 5 分钟,那么即使集群同步有问题,也就几分钟的 cache,不会有太大问题。(当然可能会有长尾效应,但是毕竟没多少)
    Ariver
        5
    Ariver  
       2021-08-02 07:35:06 +08:00 via iPhone
    看看网络自顶向下
    说的很详细
    你找的那些都是针对自己的,不是解释 DNS 整体方案的。
    Bmmmmmmmmmmmmmmm
        6
    Bmmmmmmmmmmmmmmm  
       2021-08-02 08:56:30 +08:00
    从网络层解决这个问题。可以了解一下 lvs 代理
    huangmingyou
        7
    huangmingyou  
       2021-08-02 09:26:52 +08:00
    dns 主从直接有同步协议的。不过完全可以手工同步 zone 配置文件,通过 git,rsync 等同步。 有些 dns 服务器是用 mysql 做数据存储的。例如 powerdns 。
    binsys
        8
    binsys  
       2021-08-02 09:43:47 +08:00
    DNS 高可用不是用 anycast 保证嘛?
    waibunleung
        9
    waibunleung  
    OP
       2021-08-02 09:48:15 +08:00
    @wd 是外部的自建 DNS,不是内部的,内部的也有,但是我更感兴趣外部的。内部的全部走内部域名 rpc 的
    waibunleung
        10
    waibunleung  
    OP
       2021-08-02 09:50:09 +08:00
    @Ariver 具体是书里面的那一部分?
    waibunleung
        11
    waibunleung  
    OP
       2021-08-02 09:50:55 +08:00
    @binsys 你这个是很全局的,我想问的是自建的 NS,是怎么保证其高可用的?
    Ariver
        12
    Ariver  
       2021-08-02 10:06:26 +08:00
    @waibunleung 我只记得在书的前几章,tcp 开始之前,讲到了 dns
    mytsing520
        13
    mytsing520  
    PRO
       2021-08-02 10:12:14 +08:00
    @binsys 外面是 anycast,后面是 LB 负载
    nuk
        14
    nuk  
       2021-08-02 10:13:51 +08:00
    二级域名服务器不一定是为了分流和灾容,也可能只是为了有自己的 SOP 而已,又不是提供公共 DNS,要啥高可用,顶了天设两个 ns 地址让 dns 自己同步,你发的那个专栏就是公共 DNS,自建 DNS 根本不能比。
    waibunleung
        15
    waibunleung  
    OP
       2021-08-02 10:17:40 +08:00
    @mytsing520 老哥可以加个微信交流下吗?
    waibunleung
        16
    waibunleung  
    OP
       2021-08-02 10:22:51 +08:00
    @nuk 用户访问规模也不小,1 亿的 pv,为什么 DNS 层不需要高可用呢?我看至少是设置了 6 个 NS 。
    Ariver
        17
    Ariver  
       2021-08-02 10:26:04 +08:00
    dns 本地是有缓存的
    waibunleung
        18
    waibunleung  
    OP
       2021-08-02 10:37:49 +08:00
    @Ariver 本地有缓存难道就不需要高可用了吗....你这样说是想说明什么问题呢?就是我知道本地有 DNS 缓存,然后呢....
    nuk
        19
    nuk  
       2021-08-02 10:56:36 +08:00
    @waibunleung 因为用户不会直接设置 DNS 为自建的 DNS 啊,多少 pv 对于自建 DNS 基本上差别不太大,DNS 本身就会流量放大,缓存是一定要的,至于设置 6 个 ns 服务器,我看是吃饱了撑的。
    crystom
        20
    crystom  
       2021-08-02 12:25:00 +08:00
    购买国内这些普通的 dns,好像没有办法做主备同步,例如同时购买 2 个云的 dns,没法兼容
    mytsing520
        21
    mytsing520  
    PRO
       2021-08-02 13:23:30 +08:00
    @crystom
    阿里云的 DNS,如果买的是企业版本,可以作为从服务器直接对外,隐藏掉自己的主服务器
    dzdh
        22
    dzdh  
       2021-08-02 13:27:02 +08:00
    运营商缓存怎么破
    XiaoxiaoPu
        23
    XiaoxiaoPu  
       2021-08-02 13:35:00 +08:00
    自研 DNS 服务器,不需要传统 DNS 协议的主从同步。跟 Web 服务器的高可用架构没啥区别,区别只是用户协议是 DNS 协议。
    waibunleung
        24
    waibunleung  
    OP
       2021-08-02 14:12:56 +08:00
    @XiaoxiaoPu 有稍微被点拨了一下~
    web 服务器保证高可用我大概知道些套路,但是我对应不过去。DNS 服务器这一块,服务器故障转移怎么做?解析的记录是怎么同步到不同机房的里面去的?集群又是怎么建起来的?
    waibunleung
        25
    waibunleung  
    OP
       2021-08-02 14:14:35 +08:00
    @nuk 虽然用户不会直接设置自建的 DNS 地址,但是通过解析和查询,流量还是会到自建 DNS 这一层的呀~
    XiaoxiaoPu
        26
    XiaoxiaoPu  
       2021-08-02 14:56:43 +08:00
    @waibunleung

    「 DNS 服务器这一块,服务器故障转移怎么做?」
    IP 层:有条件的搞 anycast,没条件的至少弄多个不同机房的 IP
    UDP/TCP 层:接入 4 层负载均衡

    「解析的记录是怎么同步到不同机房的里面去的?」
    数据存储于高可用数据库,DNS 服务器不用关注数据的跨机房同步问题。

    「集群又是怎么建起来的?」
    解析记录都在数据库里,DNS 服务器本身就是无状态的了,可以任意横向扩展。
    waibunleung
        27
    waibunleung  
    OP
       2021-08-02 15:27:48 +08:00
    @XiaoxiaoPu
    「 IP 层:有条件的搞 anycast,没条件的至少弄多个不同机房的 IP 」
    现在通过 dig 来看,多个二级域名解析的 NS 就是多个机房 ip,有没有上 anycast 不知道,看不出来

    「 UDP/TCP 层:接入 4 层负载均衡」
    是否在 DNS 之上再加一层 LVS ?
    XiaoxiaoPu
        28
    XiaoxiaoPu  
       2021-08-02 17:04:51 +08:00
    @waibunleung LVS 就是 4 层负载均衡
    v2clay
        29
    v2clay  
       2021-08-02 17:15:18 +08:00
    想的不多,想的太多。
    高可用不是由 dns 决定的。
    高可用是由多台服务器集群实现
    dns 通过解析不同的 ip 地址,来实现负载均衡。
    waibunleung
        30
    waibunleung  
    OP
       2021-08-02 17:27:15 +08:00
    @v2clay 你误会我意思了,整个系统有整个系统的高可用设计,每一次有每一层的高可用性设计。就像数据库是这个 web 系统的一部分,但是数据库怎么保证自身的高可用?这里问的就是 DNS 怎么保证自身的高可用?
    waibunleung
        31
    waibunleung  
    OP
       2021-08-02 17:30:03 +08:00
    @XiaoxiaoPu
    「 IP 层:有条件的搞 anycast,没条件的至少弄多个不同机房的 IP 」
    这个可否理解为:多个机房里面都有一个 dns 服务器集群,每个 dns 集群有不同的 ip ?如果是这样的话,dns 集群内的故障转移,是通过 keepalived 之类的健康检查机制来剔除故障的 NS 吗?
    gBurnX
        32
    gBurnX  
       2021-08-02 19:39:25 +08:00
    1.用户电脑层的 DNS 高可用:比如 Windows 与 Linux,DNS 可以填两个。如果其中一个 DNS 地址因故障没有响应,那么就换另一个。

    如果用户电脑直接接入公网,那么这两个 DNS,是自动获取到的运营商的两个 DNS 。

    如果用户电脑,接入了自己的路由器、交换机或猫,则 DNS 只需要填一个上层设备的 IP 即可,由上层设备提供 DNS 解析服务。或者直接填运营商的 DNS 也行。


    2.用户中间设备层的 DNS 高可用,比如路由器、交换机、猫等,这些设备,DNS 也可以填两个。一般是直接获取运营商的两个 DNS,或者获取更上层设备的 DNS 地址。


    3.运营商层的 DNS 高可用:运营商发放给用户的 DNS 地址,是一个 [虚拟 IP] ,一般是代理服务器或负载均衡服务器持有该地址,此设备它本身并不直接提供 DNS 服务。然后此设备负责把用户的 DNS 请求,转发给 DNS 服务器集群。


    4.公司做 DNS 高可用的方法:

    买入两条线路,每条线路配置一个公网 IP,然后把这个公网 IP,做到公司域名的解析记录里。也就是对 xx.comwww.xx.com 写两条 A 记录。这样用户进行 DNS 解析时,就会解析到两个 IP 地址。正常的浏览器,会选择一个 IP 地址进行访问,如果发现故障,正常的浏览器会切换到另一个 IP 地址,来实现高可用。问题是,很多手机浏览器,没有切换功能。因此如果两个 IP,有一个挂了,那么手机浏览器就无法访问了。

    有钱的公司,会买入多线条路,甚至在不同城市买入线路,来防止某个城市整体断电导致网站与服务不可用。
    waibunleung
        33
    waibunleung  
    OP
       2021-08-02 20:26:08 +08:00
    @gBurnX 大佬!等的就是你这样的解答
    可是我还是有疑问,正如你所说,我 dig 到公司在不同机房里配置了共 6 台 ns 服务器(其实就是南北*3 个不同运营商各一台),那如果这些 ns 后面都是一个集群的话,这个集群是与普通 web 集群一样的吗? DNS 集群内怎么做障转移?不同集群之间怎么做故障转移?
    v2clay
        34
    v2clay  
       2021-08-02 21:07:35 +08:00
    @waibunleung # 自己搭建,那就 dns 主从集群。商业 dns 解析服务商 dnspod,底层也差不多用的这个技术。
    v2clay
        35
    v2clay  
       2021-08-02 21:19:38 +08:00
    @gBurnX #32 第四条,其实是业务层面的,与 dns 集群高可用无关。配置 2 个 A 记录,不能完全保证业务不受影响。

    @waibunleung #33 web 里,如 nginx 负载均衡,自动切换,利用的是类似心跳检查,间隔几秒发送 http/s,不可达直接切换。dns 集群没有这个功能。dns 集群简单粗暴,就是配置多个服务器,这几个服务通过主从集群同步 dns 记录,保证每台 dns 服务器的记录相同。然后把这个多个 dns 服务器的 ip 配给 dns 客户端(电脑 /路由器 /手机等)。dns 客户端收到一个 dns query,会同时向多个配置 dns server ip 发请求。客户端配了多少个 dns server,就向多少个发,总有一个回有响应。简单、粗暴,有效。
    nbsn
        36
    nbsn  
       2021-08-02 21:20:20 +08:00
    其实吧,我认为,DNS 是一个深坑,得针对不同的场景。比如入向的 DNS (被访问)和出向的 DNS (主动访问)是完全不同的。就拿出向的 DNS 来讲,一个简单的例子就是你家里的 DNS 分流,访问国内国外要用不同的 DNS,如果你家里有两条,甚至多条宽带,要分流,如何做 DNS 分流。## 所以,针对场景不同,实现方式也不同。
    v2clay
        37
    v2clay  
       2021-08-02 21:28:44 +08:00
    @waibunleung #31 集群的真正目的是为了保证集群内各个服务的记录相同。
    不用剔除机制,完全没有必要。
    dns 客户端配置多个 集群内的 dns 服务器,就可以保证高可用。
    当有一台有问题,没关系,剩下的接着顶上。
    加上报警措施,有足够的时间处理。
    ETiV
        38
    ETiV  
       2021-08-02 21:41:22 +08:00
    帮你 @naizhao,DNSPod 创始人
    gBurnX
        39
    gBurnX  
       2021-08-02 23:56:52 +08:00
    @waibunleung

    Q:这个集群是与普通 web 集群一样的吗?
    A:web 集群有很多种搭建方式。如果 web 集群里,每个节点都是平等的负载节点,且上级是代理或负载均衡设备,那么这种 ns 集群就和 web 集群相同。

    Q:DNS 集群内怎么做障转移?
    A:提供故障转移的,是上级代理或负载均衡设备。这些设备会定期检查集群中每个节点的状态,如果节点挂了,上级代理或负载均衡设备就不会把外部请求转发给这些故障节点。其次,当代理或负载均衡设备,把外部请求转发到这些节点时,也会检查它是否能在规定时间内接受响应,如果超时,则上级代理或负载均衡设备,就认为该节点故障,然后会把请求转发给别的健康节点。

    Q:不同集群之间怎么做故障转移?
    A:我在前面说过,一家公司会有多条线路。如果一条线路对应的是一个集群,那么该集群故障后,那么该线路对应的 IP 都无法响应,那么客户端会使用 A 记录返回的其他 IP 进行 dns 解析。
    gBurnX
        40
    gBurnX  
       2021-08-03 00:02:53 +08:00
    @v2clay

    你完全搞错了,dns 高可用是一个整体工程,我第一条回复的第 4 点,正是这个链条的末端。

    另外你也别钻牛角尖,你说配置 2 个 A 记录,不能完全保证业务不受影响,按你这个说法,无论配置多少个 A 记录,也不能完全保证业务不受影响。目前业界的现状是,除开银行这种机构,其他大部分对高可用并不需要极端的需求,双节点冗余,或者说双机热备,在业界是一种非常常规的做法。
    sutra
        41
    sutra  
       2021-08-03 02:21:57 +08:00
    你拿 bind 跑个 DNS server 就懂了。
    realpg
        42
    realpg  
    PRO
       2021-08-03 07:31:20 +08:00
    没你想象那么复杂……

    多建几个,不需要集群,增删改查时候,多个服务器都应用一遍即可……
    waibunleung
        43
    waibunleung  
    OP
       2021-08-03 10:15:56 +08:00
    @realpg 「增删改查,多个服务器都应用一遍即可」这句话怎么理解?
    waibunleung
        44
    waibunleung  
    OP
       2021-08-03 10:19:48 +08:00
    @v2clay 茅塞顿开!
    sutra
        45
    sutra  
       2021-08-03 10:23:18 +08:00
    「增删改查,多个服务器都应用一遍即可」 - DNS 服务器自带。
    waibunleung
        46
    waibunleung  
    OP
       2021-08-03 10:28:36 +08:00
    @gBurnX 「提供故障转移的,是上级代理或负载均衡设备。这些设备会定期检查集群中每个节点的状态,如果节点挂了,上级代理或负载均衡设备就不会把外部请求转发给这些故障节点。」
    意思是在 DNS 之上还会有一层负载均衡(如 LVS )来将请求分摊到不同机器?如果是这样的话,整个请求的链路会不会显得复杂? dns query->dns 负载均衡->dns sever->LVS 负载均衡->real server ?
    waibunleung
        47
    waibunleung  
    OP
       2021-08-03 10:30:49 +08:00
    @sutra 你的意思是,不需要 dns 集群,多建立几个 dns 的服务器,然后有什么解析记录就往各个 DNS 服务器上面添加一下,然后就可以了?
    sutra
        48
    sutra  
       2021-08-03 10:35:19 +08:00
    DNS 服务软件本身带有类似 master/slave 的广播和增量更新功能。
    waibunleung
        49
    waibunleung  
    OP
       2021-08-03 10:41:27 +08:00
    @sutra 这不就是主从吗?
    ishalla
        50
    ishalla  
       2021-08-03 10:58:57 +08:00
    我本来觉得我很懂的,进来看 LZ 讲得我完全不懂了。。
    DNS 解析的高可用不就是在一个域名下面解析两个 IP 地址,仅此而已吗?哪里来的主从、群集。。
    不会有群集,就是买两条网络,DNS 服务器上填写两个 A 记录,确实这样很可能会双活,两个解析的网络都有流量,但可以通过设置 TTL 实现理论分流但也只是理论而已,实际使用场景其实大部分时间还是双活,企业级解决方案一般这都是默认接受的风险点。
    包括主楼提到的阿里云背后其实也是这样的机制,但阿里云是给一个 DNS 地址填写两个 CNAME,探测到一个域名宕了就切换到另一个,通过设置权重判断主备线。
    waibunleung
        51
    waibunleung  
    OP
       2021-08-03 11:31:35 +08:00
    @ishalla 你知道这么多为什么不早说说出来交流一下?
    sleepm
        52
    sleepm  
       2021-08-03 11:38:47 +08:00
    https://www.root101.net/highly-available-bind-dns-cluster-design-million-user
    是集群,不过,master 不是主要负责回应查询的而是同步记录的
    ishalla
        53
    ishalla  
       2021-08-03 11:57:33 +08:00
    @waibunleung 刚刚开始摸鱼。。前面那么多楼越看越迷茫,越说越不懂,又花了一点时间思考,这个问题属于架构范畴,我以为 v2 都是搞开发的,也很少带架构玩。。
    像你司这样能被 dig 到好几个地址,还要考虑内网外网的问题,甚至 flushdns 一下就得到不同结果了,因为内网还可能引入了 F5 、Palo Alto 之类的产品,会附带所谓的智能 DNS,其实说穿了就是 Nginx,如果考虑 Nginx 配置分流,本楼所有回复都是不全面的。。
    所以不能靠 dig 结果去猜测想象,大致明白一个原理就行了,企业级解决方案很复杂的,真感兴趣找 infra team 了解吧。
    waibunleung
        54
    waibunleung  
    OP
       2021-08-03 12:14:30 +08:00
    @sleepm 你的链接返回了一个 xml
    waibunleung
        55
    waibunleung  
    OP
       2021-08-03 12:18:59 +08:00
    @ishalla v2 也有搞架构的吧
    「大致明白一个原理就行了,企业级解决方案很复杂的」
    就是想知道大概的 DNS 可用性方面的保证,感兴趣的是这方面
    gBurnX
        56
    gBurnX  
       2021-08-03 13:11:12 +08:00
    @waibunleung 觉得复杂,可以去看看系统架构图,或者 tcp 的各种功能实现图...dns 这都算是最简单的了。
    sleepm
        57
    sleepm  
       2021-08-03 13:14:22 +08:00
    @waibunleung 试了下,还真是
    谷歌搜 highly-available-bind-dns-cluster-design-million-users 然后点 root101.net 那个
    waibunleung
        58
    waibunleung  
    OP
       2021-08-03 13:53:03 +08:00
    @gBurnX 系统架构图是哪些?我的意思是找网上的架构图来看?
    Showfom
        59
    Showfom  
    PRO
       2021-08-03 13:55:51 +08:00
    @waibunleung #16 你得看 DNS 的查询次数,多少 PV 对 DNS 服务器的性能相关性有但是不是特别大,因为用户使用的 ISP 的 DNS 没准等下都是同一个出口呢

    一亿 PV 每天而已,自建两台 DNS 服务器也可以撑起来的
    dizangcn009
        60
    dizangcn009  
       2021-08-03 20:41:49 +08:00
    @gBurnX #40 话不投机半句多
    realpg
        61
    realpg  
    PRO
       2021-08-04 12:41:19 +08:00
    @Showfom #59
    对国内,十亿 PV 每天的项目,三个最小的云服务器 2C4G 啥的都能 handle,轻松加愉快
    实际生产环境 handle 过
    也不用集群,dns 集群,高可用啥的都没啥用,对 dns 这种东西根本不需要集群也不需要负载

    一个数据库服务器兼配置器(记录保存器),多个最小配置的 vps 作为 dns 服务器,分布在三个供应商的不同地区机房就够了
    Showfom
        62
    Showfom  
    PRO
       2021-08-04 12:52:22 +08:00
    @realpg #61 是这样的,DNS 基本不需要集群和备份,负载不够了就加机器嘛,况且用户的本地运营商的递归 DNS 都缓存了一大堆,流量越大的域名他们缓存的更久= =尤其是移动
    realpg
        63
    realpg  
    PRO
       2021-08-04 13:22:31 +08:00
    @Showfom #62

    所以我看之前那些搞笑级别的回复,真的一头雾水。
    DNS 协议层就不需要这些,碰瓷概念非得给搞出来

    我这边做过本地大项目的 DNS (不是互联网项目,民生刚需项目,天天访问量恐怖),因为主要服务省内,所以省内两大城市两个最小的 VPS,阿里云腾讯云 2C4G 两个省外备份,轻松扛下来。

    基本一天就运营商的递归 dns 请求一些记录,以及极少数瞎改 DNS 的境外请求
    Showfom
        64
    Showfom  
    PRO
       2021-08-04 13:31:32 +08:00
    @realpg #63 因为他们没实战经验呀
    mytsing520
        65
    mytsing520  
    PRO
       2021-08-10 17:17:19 +08:00
    我就自己搞了两台 1C1G 的配置在那里玩,权威 DNS
    hermanzeng
        66
    hermanzeng  
       2021-08-11 13:20:01 +08:00
    不同的场景需要到的高可用方式不同,不同的用户请求来源采用的架构不同。
    比如在普通家庭场景,可能部署单台 bind 就能满足自己的日常需要。
    在 10w qps 左右,通过多台 Bind/powerdns 单机可能就能抗住;
    在往上了,可能会通过 ospf 方式播布 vip,后端多台 server ;
    百万 QPS 的话,通过 dpdk 增加 dns 服务器的转发处理性能;
    在用户来源上,针对国内的场景,通过多地多运营商去做服务部署可能就可以满足需求;
    在海外的场景,通过 anycast 的服务 IP 在全球播布;

    在数据同步上,bind 上的数据来源可以是自己写脚本生成的 zone file,各后端都可以跑这个脚本生成这个 zone file,也可以是生成到 master 后通过主从同步到各机器。
    还可以根据业务的实际需求做设计,比如放到同一 db,通过时间戳的方式做数据同步;等等。
    waibunleung
        67
    waibunleung  
    OP
       2021-08-11 20:27:38 +08:00
    @hermanzeng 太棒了,想请教一下,流量调度也是可以通过 DNS 来实现的吗?比如想控制 10%的流量去这个机房,90%的流量去那个机房这样子?
    hermanzeng
        68
    hermanzeng  
       2021-08-16 14:34:24 +08:00
    @waibunleung 在支持权重设置的权威是可以,比如 DNSPod ;这里取决于权威实现。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4014 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 05:26 PVG 13:26 LAX 22:26 JFK 01:26
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86