请教该如何考虑内网 DNS 部署的高可用及负载均衡

2018-01-02 15:13:20 +08:00
 jamiroquai

对于中小型企业,在内网用 Bind 部署 2~3 台 DNS 应该就可以满足需求,但是对于大型企业,尤其是大型跨国企业,该如何设计一个高可用及负载均衡的内网 DNS 系统呢?初步想到如下几点,请大家指教:

  1. 通过 Anycast+Bind 来实现全局的负载均衡;
  2. 对于某个节点,使用单台 DNS 服务器可能会达到 DNS 服务器的瓶颈,是否能通过专用的负载均衡设备或者 LVS 来挂载多台 DNS 服务器,来承担 1 一百万 QPS 的访问?

另外,大家对 Bind 的优化有什么建议哈,感觉再高配的机器,Bind 也只能到 10WQPS 左右,不知道是不是我们没抓住优化的重点。

6694 次点击
所在节点    DNS
16 条回复
Aliencn
2018-01-02 16:56:42 +08:00
DNSPod 开源了
jamiroquai
2018-01-02 17:27:00 +08:00
@Aliencn,是指 DNSPod-SR 对吧,不知道国内有多少公司在使用这个开源版本,另外是否有和 Unbound,PowerDNS 等的对比哈。不过我更关注的是对于单节点上 DNS 的负载均衡,我想 DNSPod,阿里云 DNS 之类的,都不会在某个点只放一台机器吧?
owenliang
2018-01-02 18:24:50 +08:00
就是配多个 resolver 吧。。。靠加机器硬抗
jamiroquai
2018-01-03 09:27:47 +08:00
@owenliang,谢谢回复。可以通过 Anycast 来配置多个 resolver,但假如某个 resolver 的压力非常大,导致 DNS 响应缓慢,这种情况就要考虑对这个 resolver 进行多一次的负载分摊
sendmailer
2018-01-03 09:34:14 +08:00
用 lvs 或 ecmp 做单节点的负载均衡,整个内网发 anycast 路由地址。通常内网如果没有爬虫服务,递归量不是很大。如果真的大再拆分缓存和递归集群。
sendmailer
2018-01-03 09:35:03 +08:00
内网用 bind 就行了,其他的别折腾
jamiroquai
2018-01-03 10:39:49 +08:00
@sendmailer 感谢回复,LVS 能扛得住不,DNS 的访问量还是非常大的。。
jamiroquai
2018-01-03 10:46:18 +08:00
用 Bind 有时候会遇到莫名其妙的问题,64C/128G 的机器用来做转发和 cache 服务器,经常会莫名其妙出现无法解析的情况,看了下 QPS 才 3W 左右,这时候 netstat 会看到有 UDP 的包被丢掉,感觉是 Bind 处理不过来。
sendmailer
2018-01-03 11:55:03 +08:00
ecmp 没条件就用 lvs,后端 rs 可以堆,瓶颈在 lvs,具体没压测过,不过做 udp 转发+dr 模式 应该问题不大。 出现 udp 丢包就关 log,如果又想存 log 就用 dnstap,再不行就用分光器采集流量存。
jamiroquai
2018-01-03 13:53:52 +08:00
@sendmailer 感谢宝贵意见~~
jamiroquai
2018-01-03 13:59:00 +08:00
Bind 写 Log 有时候会丢包是因为磁盘 IO 导致的么?
tom82232
2018-01-05 14:44:58 +08:00
企业的 QPS 有这么大的吗? BIND 性能本来就高,架构决定。重在开源,全面。至于方案你已经有了
mykgzy
2018-01-09 19:49:48 +08:00
之前我一个超大互联网的做法是:
1. 每个机房几台 DNS,然后利用 cost 或 anycast 来做本地解析优先
2. 每组 DNS 使用 ECMP (利用 zebra 和交换机跑 OSPF )
3. master 只做下发,每个机房的都是 slave 的查询。

再深的我不清楚了,其实我是网工。我最近也在看这方面的东西
jamiroquai
2018-01-12 10:57:47 +08:00
@tom82232 有的,林子大了,什么 Bug 都有,遇到过有些程序 1 秒访问 10 多 W 次的。Bind 的性能调优有什么建议么?谢谢~~
jamiroquai
2018-01-12 10:59:16 +08:00
@mykgzy 嗯嗯,这块深入的话还是有很多东西要了解
sopato
2018-02-07 06:42:41 +08:00
借地问一问 dns 的压测大家一般用什么工具,谢谢

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

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

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

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

© 2021 V2EX