码迷,mamicode.com
首页 > 其他好文 > 详细

CDN技术之--关于GSLB的部署问题

时间:2017-12-20 13:40:27      阅读:604      评论:0      收藏:0      [点我收藏+]

标签:返回   进入   dos攻击   连接   计算   精度   请求   inter   分布式   

负载均衡就是智能调度
全局负载均衡(GSLB)的负载均衡主要是在多个节点之间进行均衡,其结果可能直接终结负载均衡过程,
也可能将用户访问交付下一层次的(区域或本地)负载均衡系统进行处理。
GSLB最通用的是基于DNS解析方式,还有HTTP重定向、IP路由等方法

DNS就是IP地址和网址互换
当需要访问abc.com这个站点时,
实际上我们想要浏览的网页内容都存放在互联网中对应某个IP的服务器上,
而浏览器的任务就是找到我们想要访问的这台服务器的IP地址,然后向它请求内容。

本地DNS服务器(local DNS server)是用户所在局域网或ISP网络中的域名服务器。
当客户端在浏览器里请求abc.com时,浏览器会首先向本地DNS服务器请求将 abc.com解析成IP地址,
本地DNS服务器再向整个DNS系统查询,直到找到解析结果。
客户端可以配置DNS服务器或通过DHCP来分配
DNS给使用它的互联网应用带来额外的时延,有时时延还比较大,为了解决问题,需要引入“缓存”机制。
缓存是指DNS查询结果在主机(local DNS server)中缓存。
在区内主机对某个域名发起第一次查询请求时,
负责处理递归查询的DNS服务器要发送好几次查询(先查.root,再查.com之 类,再定位IP地址等)才能找到结果,
不过在这过程中它也得到了许多信息,
比如各区域权威DNS服务器(就是告诉你最终abc.com在哪里的DNS服务 器)和它们的地址、域名解析最终结果。
他会把这些信息保存起来,当其他主机向它发起查询请求时,它就直接向主机返回缓存中能够找到的结果,直到数据过期。


客户端浏览器也可以缓存DNS响应信息。
Internet类资源记录分为
–A记录(address):域名->多个IP的映射。对同一个域名,可以有多条A记录
–NS记录(name server):指定由哪台DNS服务器来解析
–SOA记录(start of authority):指定该区域的权威域名服务器
–CNAME记录(canonical name):多个域名->服务器的映射
–PTR记录(pointer record):IP->域名的映射

DNS系统本身是具备简单负载分配能力的,这是基于DNS的轮询机制。
如果有多台Web服务器(多源)同时为站点 abc.com提供服务,abc.com的权威服务器可能会解析出一个或多个IP地址。
权威域名服务器还可以调整响应中IP地址的排列方式,即在每次响应中将不同的IP地址置于首位(取决于可服务能力和服务质量),
通过这种方式实现对这些Web服务器的负载均衡通过CNAME方式实现负载均衡:域名服务器获得CNAME记录后,
就会用记录中的别名来替换查找的域名或主机名(实现多个域名->服务器映射)。
后面会查询这个别名的A记录来获取相应的IP地址。

具体操作为:先将GSLB的主机名定义为所查询域名的权威DNS服务器的别名,
然后将GSLB主机名添加多条A记录,分别对应多个服务器的IP地址。
这样,本地DNS服务器会向客户端返回多个IP地址作为域名的查询结果,并且这些IP地址的排列顺序是轮换的。
客户端一般会选择首个IP地址进行访问。

负载均衡器作为权威DNS服务器:负载均衡器就会接收所有对这个域名的DNS请求,
从而能够根据预先设置的一些策略来提供对域名的智能DNS解析。
F5的DNS具有完整的DNS功能以及增强的GSLB特性,Foundry、Nortel、Cisco和Radware的产品 能实现部分DNS功能。

负载均衡作为代理DNS服务器:负载均衡器被注册为一个域名空间的权威DNS服务器,
而真正的权威域名服务器则部署在负载均衡器后面。
所有的DNS请求都会先到达负载均衡器,由负载均衡器转发到真正的权威DNS服务器,然后修改权威DNS服务器返回的响应信息。
真正的权威DNS服务器正常响应浏览器的DNS请求,返回域名解析结果列表,
这个响应会先发送到负载均衡器,而负载均衡器会根据自己的策略选择一个性能最好的服务器 IP并修改需要实现GSLB的域名的DNS查询响应,
对其他请求透明转发,这样就不会影响整个域名空间的解析性能。

在基于DNS方式下无论采用何种工作方式,都会有一些请求不会到达GSLB,这是DNS系统本身的缓存机制在起作用。
当用户请求的域名在本地DNS或本机(客户端浏览器)得到了解析结果,这些请求就不会达到GSLB。
Cache更新时间越短,用户请求达到GSLB的几率越大。由于DNS的缓存机制屏蔽掉相当一部分用户请求,从而大大减 轻了GSLB处理压力,使得系统抗流量冲击能力显著提升,这也是很多商业CDN选择DNS机制做全局负载均衡的原因之一。
但弊端在于,如果在DNS缓存刷新间隔之内系统发生影响用户服务的变化,
比如某个节点故障,某个链路拥塞等,用户依然会被调度到故障部位去。

智能DNS功能,它在向本地DNS返回应答之前会先根据一些静态或动态策略进行智能计算。
– 服务器的“健康状况”
– 地理区域距离
– 会话保持
– 响应时间
– IP地址权重
– 会话能力阈值
– 往返时间(TTL)
– 其他信息,包括服务器当前可用会话数、最少选择次数、轮询等

关于GSLB的部署问题

关于内容的缓存问题(如何智能调度最有效)和配置

在有些CDN中(用于视频网站加速的情况较多),网站需要加速的内容全部先缓存在OCS(内容中心),
然后再将一部分 (通常是热门的内容)分发到个POP节点(Cache边缘集群),
所以POP节点在某些时候会出现本地不命中而需要回OCS取内容或者从其他POP节点取内容的情况

纯粹基于DNS方式的GSLB只能完成就近性判断。
为实现智能调度,大多数解决方案需要在GSLB设备附近以旁路的方式部署一台辅助设备(为方便描述,我们可称之为GRM——全局资源管理设备),
用以实现和各POP节点的本地资源管理设备进行通信,完成CDN对各POP节点的状态检查,
并根据POP节点的状态和流量情况,重新制订用户调度策略,将策略实时发送到GSLB中去执行

因为DNS服务采用以UDP为基础的、默认无连接的访问方式,给分布式攻击(DDoS)带来了更大的便利。
(有DNSSEC可以提供某程度的DDoS攻击保护)
隐藏节点的存在很大程度上可以避免GSLB被攻击致瘫痪的机会,
实际隐藏节点的实现方法就是在实际组网时除了部署正常工作的GSLB以外,
再部署一台备份的GSLB设备,并将这一备份GSLB设备隐藏起来,不对外公布。

HTTP重定向(CDN GSLB用302重定向):在HTTP协议中,有三类重定向状态码:
301永久性转移(permanently moved)、
302暂时转移(temporarily moved)、
meta fresh在特定时间后重定向到新的网页
HTTP重定向只适用于HTTP应用,不适用于任何其他应用。
比如微软的MMS协议,RTSP协议,就不能使用这种方式 进行重定向。
其次,由于HTTP重定向过程需要额外解析域名URL,还需要与URL建立TCP连接并且发送HTTP请求,使得响应时间加长。
第三,不同于DNS方式,没有任何用户请求能被外部系统终结(不能缓存),
所有请求都必须进入GSLB系统,这将成为性能和可靠性的瓶颈。(流媒体用的比较多)

基于IP路由的GSLB
基于路由协议算法选择一条路由到达这两个本地均衡器中的一个。
因为每次访问请求的终端IP地址不同,路由条件也不同,
所以在多个路由器上优选的路由不同,从统计复用的角度来看基本是在负载均衡器1和2之间均匀分布的。
IP路由在多个POP点之间实现的负载均衡是一种概率上的均衡,而不是真正的均衡(没做智能调度)。



基于DNS解析方式,基于HTTP重定向方式,基于IP路由方式 这3种方式的比较

性能
基于DNS解析方式:本地DNS服务器和用户终端DNS缓存能力使GSLB的负载得到有效分担
基于HTTP重定向方式:GSLB处理压力大,容易成为系统性能的瓶颈
基于IP路由方式:借助IP网络设备完成负载均衡,没有单点性能瓶颈

准确度
基于DNS解析方式:定位准确度取决于本地DNS覆盖范围,本地DNS设置错误会造成定位不准确
基于HTTP重定向方式:在对用户IP地址数据进行有效维护的前提下,定位准确且精度高
基于IP路由方式:就近性调度准确,但对设备健康性等动态信息响应会有延迟

效率
基于DNS解析方式:效率约等于DNS系统本身处理效率
基于HTTP重定向方式:依靠服务器做处理,对硬件资源的要求高
基于IP路由方式:效率约等于IP设备本身效率

扩展性
基于DNS解析方式:扩展性和通用性好
基于HTTP重定向方式:扩展性较差,需对各种应用协议进行定制开发
基于IP路由方式:通用性好,但适用范围有限

商用性
基于DNS解析方式:在Web加速领域使用较多
基于HTTP重定向方式:国内流媒体CDN应用较多
基于IP路由方式:尚无商用案例

备注:随笔中内容来源于网上资料整理,仅供参考

CDN技术之--关于GSLB的部署问题

标签:返回   进入   dos攻击   连接   计算   精度   请求   inter   分布式   

原文地址:http://www.cnblogs.com/Alanf/p/8072312.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!