四层和七层负载均衡的区别
之一,技术原理上的区别。
所谓四层负载均衡,也就是主要通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。
以常见的TCP为例,负载均衡设备在接收到之一个来自客户端的SYN 请求时,即通过上述方式选择一个更佳的服务器,并对报文中目标IP地址进行修改(改为后端服务器IP),直接转发给该服务器。TCP的连接建立,即三次握手是客户端和服务器直接建立的,负载均衡设备只是起到一个类似路由器的转发动作。在某些部署情况下,为保证服务器回包可以正确返回给负载均衡设备,在转发报文的同时可能还会对报文原来的源地址进行修改。
所谓七层负载均衡,也称为“内容交换”,也就是主要通过报文中的真正有意义的应用层内容,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。
以常见的TCP为例,负载均衡设备如果要根据真正的应用层内容再选择服务器,只能先 *** 最终的服务器和客户端建立连接(三次握手)后,才可能接受到客户端发送的真正应用层内容的报文,然后再根据该报文中的特定字段,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。负载均衡设备在这种情况下,更类似于一个 *** 服务器。负载均衡和前端的客户端以及后端的服务器会分别建立TCP连接。所以从这个技术原理上来看,七层负载均衡明显的对负载均衡设备的要求更高,处理七层的能力也必然会低于四层模式的部署方式。
第二,应用场景的需求。
七层应用负载的好处,是使得整个 *** 更"智能化"。例如访问一个网站的用户流量,可以通过七层的方式,将对图片类的请求转发到特定的图片服务器并可以使用缓存技术;将对文字类的请求可以转发到特定的文字服务器并可以使用压缩技术。当然这只是七层应用的一个小案例,从技术原理上,这种方式可以对客户端的请求和服务器的响应进行任意意义上的修改,极大的提升了应用系统在 *** 层的灵活性。很多在后台,例如Nginx或者Apache上部署的功能可以前移到负载均衡设备上,例如客户请求中的Header重写,服务器响应中的关键字过滤或者内容插入等功能。
另外一个常常被提到功能就是安全性。 *** 中最常见的SYN Flood攻击,即黑客控制众多源客户端,使用虚假IP地址对同一目标发送SYN攻击,通常这种攻击会大量发送SYN报文,耗尽服务器上的相关资源,以达到Denial of Service(DoS)的目的。从技术原理上也可以看出,四层模式下这些SYN攻击都会被转发到后端的服务器上;而七层模式下这些SYN攻击自然在负载均衡设备上就截止,不会影响后台服务器的正常运营。另外负载均衡设备可以在七层层面设定多种策略,过滤特定报文,例如SQL Injection等应用层面的特定攻击手段,从应用层面进一步提高系统整体安全。
现在的7层负载均衡,主要还是着重于应用HTTP协议,所以其应用范围主要是众多的网站或者内部信息平台等基于B/S开发的系统。 4层负载均衡则对应其他TCP应用,例如基于C/S开发的ERP等系统。
第三,七层应用需要考虑的问题。
1:是否真的必要,七层应用的确可以提高流量智能化,同时必不可免的带来设备配置复杂,负载均衡压力增高以及故障排查上的复杂性等问题。在设计系统时需要考虑四层七层同时应用的混杂情况。
2:是否真的可以提高安全性。例如SYN Flood攻击,七层模式的确将这些流量从服务器屏蔽,但负载均衡设备本身要有强大的抗DDoS能力,否则即使服务器正常而作为中枢调度的负载均衡设备故障也会导致整个应用的崩溃。
3:是否有足够的灵活度。七层应用的优势是可以让整个应用的流量智能化,但是负载均衡设备需要提供完善的七层功能,满足客户根据不同情况的基于应用的调度。最简单的一个考核就是能否取代后台Nginx或者Apache等服务器上的调度功能。能够提供一个七层应用开发接口的负载均衡设备,可以让客户根据需求任意设定功能,才真正有可能提供强大的灵活性和智能性。
七层与三层负载均衡
十年间,负载均衡的前沿技术层出不穷,令用户眼花缭乱。经常在技术网站、文档中出现的“四层负载均衡”、“七层负载均衡”字眼有什么含义?有什么区别?对客户 *** 有哪些不同的优化?带着这样的疑问,今天我们就来仔细研究一番。
四层负载均衡像银行自助排号机 七层负载均衡像银行大堂经理
首先,我们来了解一下什么是四层负载均衡、什么是七层负载均衡。四层负载均衡指的是负载均衡设备通过报文中的目标IP地址和端口负载均衡算法,选择到达目的的内部服务器;七层负载均衡,也被称为“内容交换”,指的是负载均衡设备通过报文中的应用层信息(URL、HTTP头部等信息)和负载均衡算法,选择到达目的的内部服务器。二者的区别可以举个例子形象的说明:四层负载均衡就像银行的自助排号机,每一个达到银行的客户根据排号机的顺序,选择对应的窗口接受服务;而七层负载均衡像银行大堂经理,先确认客户需要办理的业务,再安排排号。这样办理理财、存取款等业务的客户,会根据银行内部资源得到统一协调处理,加快客户业务办理流程。
七层应用负载的好处是使得整个 *** 更“智能化”!例如,在网站的运行中,用户可以通过七层的方式,将图片类的请求通过缓存技术传输到特定的图片服务器,将对文字类的请求通过压缩技术传输到特定的文字服务器。当然这只是七层应用的一个小案例,从技术原理上,这种方式可以对客户端的请求和服务器的响应进行任意方式的修改,极大提升了应用系统在 *** 层的灵活性。很多在后台(例如Nginx或者Apache)上部署的功能可以前移到负载均衡设备上(例如客户请求中的Header重写,服务器响应中的关键字过滤或者内容插入等)。
另外一个常常被提到功能就是安全性。在 *** 中常见的SYN Flood攻击中,黑客会控制众多客户端(肉鸡),使用虚假IP地址对同一目标发动SYN攻击,通常这种攻击会大量发送SYN报文,耗尽服务器上的相关资源,以达到Denial of Service(DoS)的目的。从技术原理上也可以看出,四层模式下这些SYN攻击都会被转发到后端的服务器上;而在七层模式下这些SYN攻击自然在负载均衡设备上就截止,不会影响后台服务器的正常运营。另外负载均衡设备可以在七层层面设定多种策略,过滤SQL Injection等应用层面的特定攻击手段,进一步提高系统整体安全。
国内负载均衡技术缺少根本性突破 “浑水摸鱼”伪七层负载均衡或将逐步减少
聊到这里,大家应该都明白四层负载均衡和七层负载均衡的区别了。七层负载均衡技术对产品的性能、算法、高可靠性和安全性有着更高的要求。而导致这种技术的差异性,更多的体现在厂商对负载均衡专有平台的开发上,具体可以概括为以下四点,不满足这四点的产品都不能称为七层负载均衡:
之一、七层负载的应用以HTTP协议为主,四层负载的应用以TCP为主,通过测试仪可以看出,七层负载的吞吐性能要比四层负载的吞吐性能低。七层吞吐性能严重考验着负载均衡厂商们,如果不解决这个核心问题,负载均衡设备就会成为 *** 的瓶颈,严重影响 *** 的稳定性。
第二、七层负载算法需要识别URL、Cookie和HTTP head等信息,算法计算程度更丰富,对CPU的负载要求更高,这就需要更高性能的产品。虽然目前硬件平台已经发展到多核,但是国内厂商在多核平台的应用开发上存在着较大差距,严重制约负载均衡设备多核之间计算能力的协调分配和使用。
第三、七层负载的可靠性体现在两个方面:一方面是保证服务器访问的完整性和连续性,这主要体现在七层负载均衡的会话保持技术,通过HTTP Cookie、HTTP SessionID、HTTP ServerID、HTTP 自定义头域和SSL SessionID等方式实现。另一方面是保证 *** 的稳定性, *** 的稳定性主要通过设备关键部件的冗余设计,以及双机、集群部署方式实现。
第四、七层负载的安全性同样至关重要,因为目前负载均衡已经成为 *** 的核心组件,成为服务器业务连续性、完整性、可靠性的保护神。七层负载均衡的安全性需要从两个方面体现:一是系统本身的安全性,软件系统应采用自主研发,无系统漏洞和后门;二是可以提供必要的 *** 安全防护,减少服务器被直接攻击的威胁,这样可以减少服务器区设备串联堆叠带来的单点故障。
从以上几点可以看出,七层负载均衡有着严格的定义,优势也非常明显。但是,从市场份额来看,七层负载均衡设备还是以国外厂商占据主导地位,国内能够进行自主研发的只有太一星晨等少数的几家厂商。而且,国内负载均衡厂商应用场景以链路负载为主,难以进入占据负载均衡市场70%份额、主导负载均衡技术发展的服务器负载均衡市场,更缺乏在大型数据中心及大型门户网站使用案例。
OSI七层模型中,synflooding攻击发生在哪层
Synflooding(同步泛滥技术)攻击手段。是一种最古老的攻击手段,用通俗的话讲,就是拒绝服务攻击(DDoS),该攻击利用TCP/IP协议天生的特点,通过大量的虚假IP地址建立不完整连接,使得服务器超载,陷入瘫痪状态。
这样说来,属于传输层攻击。。
什么是cc攻击?遇到攻击怎么办?
CC主要是用来攻击页面的。就是在访问论坛时,如果这个论坛比较大,访问的人比较多,打开页面的速度会比较慢,对不?!一般来说,访问的人越多,论坛的页面越多,数据库就越大,被访问的频率也越高,占用的系统资源也就相当可观,现在知道为什么很多空间服务商都说大家不要上传论坛,聊天室等东西了吧。
一个静态页面不需要服务器多少资源,甚至可以说直接从内存中读出来发给你就可以了,但是论坛就不一样了,我看一个帖子,系统需要到数据库中判断我是否有读读帖子的权限,如果有,就读出帖子里面的内容,显示出来——这里至少访问了2次数据库,如果数据库的体积有200MB大小,系统很可能就要在这200MB大小的数据空间搜索一遍,这需要多少的CPU资源和时间?如果我是查找一个关键字,那么时间更加可观,因为前面的搜索可以限定在一个很小的范围内,比如用户权限只查用户表,帖子内容只查帖子表,而且查到就可以马上停止查询,而搜索肯定会对所有的数据进行一次判断,消耗的时间是相当的大。
CC就是充分利用了这个特点,模拟多个用户(多少线程就是多少用户)不停的进行访问(访问那些需要大量数据操作,就是需要大量CPU时间的页面)。很多朋友问到,为什么要使用 *** 呢?因为 *** 可以有效地隐藏自己的身份,也可以绕开所有的防火墙,因为基本上所有的防火墙都会检测并发的TCP/IP连接数目,超过一定数目一定频率就会被认为是Connection-Flood。
使用 *** 攻击还能很好的保持连接,我们这里发送了数据, *** 帮我们转发给对方服务器,我们就可以马上断开, *** 还会继续保持着和对方连接(我知道的记录是有人利用2000个 *** 产生了35万并发连接)。
可能很多朋友还不能很好的理解,我来描述一下吧。我们假设服务器A对Search.asp的处理时间需要0.01S(多线程只是时间分割,对结论没有影响),也就是说他一秒可以保证100个用户的Search请求,服务器允许的更大连接时间为60s,那么我们使用CC模拟120个用户并发连接,那么经过1分钟,服务器的被请求了7200次,处理了6000次,于是剩下了1200个并发连接没有被处理。有的朋友会说:丢连接!丢连接!问题是服务器是按先来后到的顺序丢的,这1200个是在最后10秒的时候发起的,想丢?!还早,经过计算,服务器满负开始丢连接的时候,应该是有7200个并发连接存在队列,然后服务器开始120个/秒的丢连接,我们发动的连接也是120个/秒,服务器永远有处理不完的连接,服务器的CPU 100%并长时间保持,然后丢连接的60秒服务器也判断处理不过来了,新的连接也处理不了,这样服务器达到了超级繁忙状态。
如果遇见cc攻击,又没有一个专业的程序员处理,建议体验一下杭州超级科技的超级盾,百分百防cc,ddos防御无上限。可以免费试用看效果!
理解nginx四层和七层负载均衡
加入了微博以后,经常听到运维老师说到四层负载均衡,当然,年轻的我也是浅显的理解,哦,要用四层负载均衡,得申请虚拟IP(VIP),得确定服务端口。可是经历一段时间,我申请负载均衡的时候,公司的运维老师又跟我说,你申请七层的吧,七层的方便管理,(内心ps:专业性有点强啊,啥是七层,四层都没搞明白呢,咋又来了个七层),“好的,老师,我在xxx后台申请是吧,咱七层的好处是?”。吧啦吧啦。。。。。运维老师说了一堆,我似懂非懂的听完恩了一声就走了,回来一想,咱得弄明白啊,不然显不出咱是高级工程师。于是网上各种搜索文章,终于找到了一篇“传道授业解惑”的文章,分享给大家。
注意:上面的很多Load Balancer既可以做四层交换,也可以做七层交换。
所谓 四层负载均衡 ,也就是主要通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。
以常见的TCP为例,负载均衡设备在接收到之一个来自客户端的SYN 请求时,即通过上述方式选择一个更佳的服务器,并对报文中目标IP地址进行修改(改为后端服务器IP),直接转发给该服务器。TCP的连接建立,即三次握手是客户端和服务器直接建立的,负载均衡设备只是起到一个类似路由器的转发动作。在某些部署情况下,为保证服务器回包可以正确返回给负载均衡设备,在转发报文的同时可能还会对报文原来的源地址进行修改。
七层应用负载的好处 ,是使得整个 *** 更" 智能化 "。例如访问一个网站的用户流量,可以通过七层的方式,将对图片类的请求转发到特定的图片服务器并可以使用缓存技术;将对文字类的请求可以转发到特定的文字服务器并可以使用压缩技术。当然这只是七层应用的一个小案例,从技术原理上,这种方式可以对客户端的请求和服务器的响应进行任意意义上的修改,极大的提升了应用系统在 *** 层的灵活性。很多在后台,例如Nginx或者Apache上部署的功能可以前移到负载均衡设备上,例如客户请求中的Header重写,服务器响应中的关键字过滤或者内容插入等功能。
另外一个常常被提到功能就是 安全性 。 *** 中最常见的SYN Flood攻击,即黑客控制众多源客户端,使用虚假IP地址对同一目标发送SYN攻击,通常这种攻击会大量发送SYN报文,耗尽服务器上的相关资源,以达到Denial of Service(DoS)的目的。从技术原理上也可以看出,四层模式下这些SYN攻击都会被转发到后端的服务器上;而七层模式下这些SYN攻击自然在负载均衡设备上就截止,不会影响后台服务器的正常运营。另外负载均衡设备可以在七层层面设定多种策略,过滤特定报文,例如SQL Injection等应用层面的特定攻击手段,从应用层面进一步提高系统整体安全。
现在的7层负载均衡,主要还是着重于应用HTTP协议,所以其应用范围主要是众多的网站或者内部信息平台等基于B/S开发的系统。 4层负载均衡则对应其他TCP应用,例如基于C/S开发的ERP等系统。
原文链接:
1.
2.
3.
0条大神的评论