腾讯的 GSLB 新思路——HttpDNS

2014-11-13 09:40:18 +08:00
 Livid
http://mp.weixin.qq.com/s?__biz=MzA3ODgyNzcwMw==&mid=201837080&idx=1&sn=b2a152b84df1c7dbd294ea66037cf262&scene=2&from=timeline&isappinstalled=0#rd
23902 次点击
所在节点    DNS
90 条回复
typcn
2014-11-14 03:54:54 +08:00
@benjiam DNS Over HTTPS 233
invite
2014-11-14 08:27:01 +08:00
@wzxjohn 你说反了吧,DNS是自动获取的吧,特别手机。你见过几个人的手机,是自己配置DNS的?
invite
2014-11-14 08:30:06 +08:00
@hicdn 你明显没有看我的回复,BGP AnyCast的时候,如何保证TCP数据发往同一个服务器?
wzxjohn
2014-11-14 08:30:47 +08:00
@invite 我没说反啊。。。我的意思就是因为现在大多数人的DNS都是自动获取的,所以Public DNS用来解决运营商缓存意义不大。
zhengshuai
2014-11-14 09:10:31 +08:00
HttpDNS大赞,mark之。
benjiam
2014-11-14 11:39:44 +08:00
@reorx 这个方案最关键的一点 是IP库。IP库不准等于白搭
hicdn
2014-11-14 11:53:27 +08:00
@invite 你在移动,还能把数据发到电信服务器上去?
invite
2014-11-14 15:36:19 +08:00
@hicdn 难道你只在移动部署一个节点?
9hills
2014-11-15 18:05:41 +08:00
@invite 文章里有说 anycast 啊,你不会以为google 的8.8.8.8后面只有一台服务器吧。。。
invite
2014-11-15 19:10:20 +08:00
@9hills 哥, 8.8.8.8 UDP的. 一个请求一个应答就够了, TCP需要多个请求......
9hills
2014-11-15 21:54:42 +08:00
@invite udp一台也不行,只有一台机器可用性顶多两个到三个9 话说你还是认为8.8.8.8 后面只有一台?呵呵
invite
2014-11-16 10:57:55 +08:00
@9hills 关键不是台数懂了么? 关键是多个TCP请求能指向同一个服务器的问题.
lovejoy
2014-11-16 13:27:48 +08:00
@invite 你在同一个地方连到的后端服务器必然是同一个吧,anycast 难道会随意发到一个后端?这块我不懂,猜测,anycast后面应该不是随机的吧。
9hills
2014-11-16 13:59:23 +08:00
@invite Google "TCP anycast",这个早就有了。。。

另外8.8.8.8 也支持TCP over DNS的。。不还是一个IP?

@lovejoy
9hills
2014-11-16 14:03:28 +08:00
@invite
@lovejoy 来篇PDF: https://www.nanog.org/meetings/nanog37/presentations/matt.levine.pdf

人民群众的创造力是无穷的。引用pdf的一句话:

"Stop telling people anycast doesn’t work for
TCP if you haven’t tested it, it just makes us
mad."
invite
2014-11-16 16:54:41 +08:00
@9hills 没有说TCP不行, 得看你怎么运作, 而且很大程度上取决于运营商(当然, 如果你只跟一个运营商保留一条连接, 那么就随你了.). 如果一个方案需要由运营商来决定, 那么这个方案肯定是有缺陷的.
@lovejoy 首先, 你的AS跟其他AS相连, 肯定不会只有一条, 这个情况下, 运营商有可能会通过多条连接发送同一个会话里的不同数据包.
9hills
2014-11-16 17:48:13 +08:00
@invite 我不知道你在尝试表达什么,在我看来你第一次回复的疑问全部得到了解答。。。

另外单IP做负载均衡不止Anycast一种方法。。。
invite
2014-11-17 08:33:29 +08:00
@9hills 跟一个不是搞网络的人说话真的很累。现在不只是单IP的负载均衡问题,而是考虑到运营商的问题,否则上F5啥的谁不会。
zhicheng
2014-11-20 07:01:04 +08:00
我也是做 DNS 的,说两句。

TCP 是可以运行在 Anycast 上的。前提是每个 /24 段不能承载过多的业务。节点都比较稳定,不会经常因为负载过高而重新route。这也是为什么 Anycast 大多用在 DNS 和 CDN 这种单纯流量的简单业务上。

我理解原文中的含义大概是,client 本地存储一个 Anycast IP 。在需要解析的时候,向这个 Anycast IP 发送一个带有解析消息的 HTTP 的请求,HTTP 会返回一组解析后的 IP 。

这样肯定可以工作,但我有几个问题。
一,这种方式肯定没有办法在浏览器上运行。但如果是 client ,那为什么不直接向 Anycast IP 发送 DNS 请求?
二,用了 Anycast ,就不需要 IP 库了。
三,最简单的办法,难道不是 301 + subdomain 吗。
四,既然每次请求多发送一次 HTTP 的成本都能承受得起,干脆把 records 的 ttl 设成 10 好了。
五,用了 Anycast 就是机房遭受核打击都没关系啊,难道微信所有机房的光揽被同时挖断了吗,太巧合了。
Viztor
2015-04-01 17:59:04 +08:00
@invite 用IP发起吖。。

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

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

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

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

© 2021 V2EX