阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

DNS全局负载均衡(GSLB)基本原理

129次阅读
没有评论

共计 1347 个字符,预计需要花费 4 分钟才能阅读完成。

原理

DNS 全局负载均衡通过智能 DNS 解析来实现,通常在不同的地区设立多个数据中心,每个数据中心又使用多个运营商的线路。

目前很多 DNS 服务商都提供了智能 DNS 服务,智能 DNS 通常是利用各运营商分省 IP 地理信息数据来判断用户的就进性,并结合健康检查策略来分配访问量。

第三方智能 DNS 的不足在于通过公网健康检查可能会受到运营商网络拥塞的影响,并且不能感知站点内部的情况。除了使用智能 DNS 解析软件或者云服务,多数对可靠性和性能要求高的用户都会使用硬件的全局负载均衡解决方案。全局负载均衡设备以通过更丰富的维度来判断用户就进性,形成就进性表,除了分地域 IP 数据库外,还可以通过 TTL、用户访问延时、服务器负载情况等来判断。

下例的全局负载均衡解决方案中,域名服务商或者授权服务器将域名的 NS 记录指向有智能 DNS 解析功能的全局负载均衡(GSLB)设备,然后由 GSLB 设备来进行 A 记录解析,如果在多地部署了 GSLB 设备,它们都应该添加到 NS 记录中以保证高可用性,域名服务商处轮询地返回 GSLB 地址或者一次性返回全部地址。GSLB 设备会对各个数据中心的各个运营商线路公网 IP 进行健康检查,并根据全局负载均衡策略来选择最优的地址解析给用户。

解析的步骤示意如下图:

DNS 全局负载均衡(GSLB)基本原理

 

  1. 用户向本级配置的本地 DNS 服务器发出查询请求,如果本地 DNS 服务器有该域名的缓存记录,则返回给用户,否则进行第 2 步;
  2. 本地 DNS 服务器进行递归查询,最终会查询到域名注册商处的授权 DNS 服务器,这里可能有多个步骤,图中只反映最后一步;
  3. 授权 DNS 服务器返回一条 NS 记录给本地 DNS 服务器。根据授权 DNS 服务器上的不同设置,这条 NS 记录可能是指向随机一个 GSLB 设备的接口地址或者是所有 GSLB 设备的接口地址;
  4. 本地 DNS 服务器向其中一个 GSLB 地址发出域名查询请求,如果请求超时会向其它地址发出查询;
  5. GSLB 设备返回一条 A 记录给本地 DNS 服务器。根据全局负载均衡策略设定的不同可能返回一个或多个 VIP 地址;
  6. 本地服务器将查询结果通过一条 A 记录返回给用户,并将缓存这条记录。

通过 DNS 解析报文中的 TTL(Time To Live)字段可以控制客户端缓存这条记录的时间,在缓存时间内客户端会使用旧的查询结果,当缓存时间超时后才可能重新发出查询,TTL 值过大会导致故障发生时切换时间过长,TTL 值太小会造成查询频繁,对设备和网络的压力增大。

局限性

请注意 GSLB 设备收到的 DNS 请求的源地址不是用户的地址而是用户所配置的本地 DNS 服务器地址,而 GSLB 的就进性探测是根据这个地址来判断的,在我国大多数 ADSL 拨号上网用户都能就近分配正确的数据中心,但是当用户 用户通过 4G 移动网络上网的情况下,客户会一直使用归属地的 DNS 服务器,或这手动设定本地 DNS 而设置的 DNS 距离用户较远的情况,GSLB 不能分配最佳的地址。这种情况很常见,国内有很多人使用 google 的公有 dns 或者 opendns。

这种情况可以使用重定向来解决,SLB 设备正式收到用户发来的请求时,会再次查找就进性表,当发现用户的最佳访问节点非自己时,通过 http 302 重定向来再次引导用户流量。

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-05/144247.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计1347字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中