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

2021-08-02 04:13:43 +08:00
 waibunleung

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

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

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

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

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

9412 次点击
所在节点    DNS
68 条回复
realpg
2021-08-04 12:41:19 +08:00
@Showfom #59
对国内,十亿 PV 每天的项目,三个最小的云服务器 2C4G 啥的都能 handle,轻松加愉快
实际生产环境 handle 过
也不用集群,dns 集群,高可用啥的都没啥用,对 dns 这种东西根本不需要集群也不需要负载

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

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

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

基本一天就运营商的递归 dns 请求一些记录,以及极少数瞎改 DNS 的境外请求
Showfom
2021-08-04 13:31:32 +08:00
@realpg #63 因为他们没实战经验呀
mytsing520
2021-08-10 17:17:19 +08:00
我就自己搞了两台 1C1G 的配置在那里玩,权威 DNS
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
2021-08-11 20:27:38 +08:00
@hermanzeng 太棒了,想请教一下,流量调度也是可以通过 DNS 来实现的吗?比如想控制 10%的流量去这个机房,90%的流量去那个机房这样子?
hermanzeng
2021-08-16 14:34:24 +08:00
@waibunleung 在支持权重设置的权威是可以,比如 DNSPod ;这里取决于权威实现。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/793060

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX