【转载】阿⾥云SLB说明+操作
SLB(Server Load Balancer)服务通过设置虚拟服务地址(IP),将位于同⼀地域(Region)的多台云服务器(Elastic Compute Service,简称ECS)资源虚拟成⼀个⾼性能、⾼可⽤的应⽤服务池;再根据应⽤指定的⽅式,将来⾃客户端的⽹络请求分发到云服务器池中。
SLB服务会检查云服务器池中ECS的健康状态,⾃动隔离异常状态的ECS,从⽽解决了单台ECS的单点问题,同时提⾼了应⽤的整体服务能⼒。在标准的负载均衡功能之外,SLB服务还具备TCP与HTTP抗DDoS攻击的特性,增强了应⽤服务器的防护能⼒。
SLB服务是ECS⾯向多机⽅案的⼀个配套服务,需要同ECS结合使⽤。
1、技术架构
整个负载均衡系统由3部分构成:四层负载均衡、七层负载均衡和控制系统,如下图所⽰:
四层负载均衡
采⽤开源软件LVS(Linux Virtual Server)构建,并根据云计算需求对其进⾏了定制和优化。
七层负载均衡
采⽤开源软件Tengine构建。
控制系统
⽤于配置和监控负载均衡系统。
2、LVS技术特点
LVS是全球最流⾏的四层负载均衡开源软件,可以实现LINUX平台下的负载均衡。
LVS是 基于Linux Netfilter框架实现的⼀个内核模块( IPTables是基于Netfilter基本架构实现的⼀个可扩展的数据报⾼级管理系统或核外配置⼯具),名称为IPVS。其钩⼦函数分别HOOK在LOCAL_IN和FORWARD两个HOOK点,如下图所⽰:
在云计算⼤规模⽹络环境下,官⽅LVS存在如下问题:
问题1:LVS⽀持NAT/DR/TUNNEL三种转发模式,上述模式在多VLAN⽹络环境下部署时,存在⽹络拓扑复杂,运维成本⾼的问
题。
问题2:和商⽤负载均衡设备(如F5等)相⽐,LVS缺少DDOS攻击防御功能。
问题3:LVS采⽤PC服务器,常⽤Keepalived软件的VRRP⼼跳协议进⾏主备部署,其性能⽆法扩展。
问题4:LVS常⽤管理软件Keepalived的配置和健康检查性能不⾜。
为了解决上述问题, SLB在官⽅LVS基础上进⾏了如下定制化和优化:
解决1:新增转发模式FULLNAT,实现LVS-RealServer间跨VLAN通讯。
解决2:新增了SYNPROXY等TCP标志位DDOS攻击防御功能。
解决3:采⽤LVS集⽅式部署。
解决4:对Keepalived的性能进⾏了优化。
FULLNAT技术概述
如下图所⽰,FULLNAT主要实现⽅式为:
引⼊local address(内⽹IP地址)。cip-vip转换为lip->rip,⽽ lip和rip均为IDC内⽹IP,可以跨VLAN通讯。
IN/OUT的数据流全部经过LVS,为了保证带宽,采⽤万兆(10G)⽹卡。
FULLNAT转发模式,当前仅⽀持TCP协议。
SYNPROXY技术概述
LVS针对TCP标志位DDOS攻击,采取如下策略:
对于SYN flood类型攻击,利⽤SYNPROXY模块进⾏防御。
如下图所⽰,主要实现⽅式为:参照Linux TCP协议栈中SYN cookie的思想,LVS代理TCP三次握⼿。代理过程:
1) Client发送SYN包给LVS。
2) LVS构造特殊SEQ的SYN ACK包给Client。
3) Client回复ACK给LVS。
4) LVS验证ACK包中ack_seq是否合法。
5) 如果合法,则LVS再和Realserver建⽴3次握⼿。
对于ACK/FIN/RSTFlood类型攻击,查连接表,如果不存在,则直接丢弃。
集部署⽅式
LVS集部署⽅式实现的主要⽅式为:
LVS和上联交换机间运⾏OSPF协议。
上联交换机通过ECMP等价路由,将数据流分发给LVS集。
LVS集再转发给业务服务器。
集⽅式部署极⼤的保证了异常情况下,负载均衡服务的稳定性:
健壮性
LVS和交换机间运⾏OSPF⼼跳。1个VIP配置在集的所有LVS上。当⼀台LVS down,交换机会⾃动发现并将其从ECMP等价路由中剔除。
可扩展
如果当前LVS集⽆法⽀撑某个VIP的流量,LVS集可以进⾏⽔平扩容。
Keepalived优化
阿⾥云在SLB中针对LVS管理软件Keepalived进⾏了全⾯优化,主要包括:
优化了⽹络异步模型,select⽅式改为epoll⽅式。
优化了reload过程。
综上所述,基于LVS的SLB四层负载均衡产品具有如下特点;
⾼可⽤:LVS集保证了冗余性,⽆单点。
安全:LVS⾃带攻击防御+云盾,提供了接近于实时防御的能⼒。
健康检查:SLB对后端ECS进⾏健康检查,⾃动屏蔽异常状态的ECS,待该ECS恢复正常后⾃动解除屏蔽。
3、Tengine技术特点
Tengine是阿⾥巴巴发起的WEB服务器项⽬,其在Nginx的基础上,针对⼤访问量⽹站的需求,添加了很多⾼级功能和特性是当前最流⾏的7层负载均衡开源软件之⼀。Tengine的性能和稳定性已经在⼤型的⽹站如,等得到了很好的检验。它的最终⽬标是打造⼀个⾼效、稳定、安全、易⽤的Web平台。
针对云计算场景,Tengine定制的主要特性如下:
继承Nginx-1.4.6的所有特性,100%兼容Nginx的配置。
动态模块加载(DSO)⽀持。加⼊⼀个模块不再需要重新编译整个Tengine。
更加强⼤的负载均衡能⼒,包括⼀致性Hash模块、会话保持模块,还可以对后端的服务器进⾏主动健康检查,根据服务器状态⾃动上线下线。
监控系统的负载和资源占⽤从⽽对系统进⾏保护。
对运维⼈员更友好的出错信息,便于定位出错机器。
更强⼤的防攻击(访问速度限制等)模块。
采⽤Tengine作为SLB的基础模块的阿⾥云SLB七层负载均衡产品,具有如下特点:
⾼可⽤:Tengine集保证了冗余性,⽆单点。
安全:多维度的CC攻击防御能⼒。
健康检查:SLB对后端ECS进⾏健康检查,⾃动屏蔽异常状态的ECS,待该ECS恢复正常后⾃动解除屏蔽。
会话保持:⽀持7层会话保持功能。
⼀致性:⽀持⼀致性hash调度。
4、更多功能
SLB作为负载均衡设备,其最重要的指标是【稳定性】,在进⼀步提⾼稳定性⽅⾯,主要⼯作包括:
阿里巴巴开源镜像站⽀持集内部 session同步。
采⽤Anycast技术实现同城双A。
在功能⽅⾯有更多⽀持,包括:
⽩名单访问控制
从SLB层⾯实现访问控制,⽤户可以在SLB系统上配置⽩名单,便于⽤户灵活限定外部访问请求。
更多服务协议的⽀持
当前已经⽀持HTTPS、UDP。
---------------------------------------------------------------------------------------------------------------------------------------
1. 创建SLB实例详情
2. SLB监听实例
2.配置监听
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论