还剩6页未读,继续阅读
文本内容:
一文详解负载均衡和反向代理的区别
一、产生背景SLB(服务器负载均衡)在多个提供相同服务的服务器的情况下,负载均衡设备存在SLB虚拟服务地址,当大量客户端从外部访问虚拟服务地址时,负载均衡设备将这些报文IP请求根据负载均衡算法,将流量均衡的分配给后台服务器以平衡各个服务器的负载压力,避免在还有服务器压力较小情况下其他服务达到性能临界点出现运行缓慢甚至宕机情况,从而提高服务效率和质量因此对客户端而言,(实际服务器)的地址即是负载均衡设备(虚RS realserver IP VIP拟服务地址)地址,真正的服务器地址对于客户端是不可见的IP RS IP
二、的三种传输模式SLB七层和四层的区别SLB SLB四层配置负载均衡设备上服务类型为负载均衡设备将只解析到层,负载SLB tcp/udp,4均衡设备与三次握手之后就会和建立连接;client RS七层配置负载均衡设备服务类型为等,负载均衡设备将解析报文到SLB http/ftp/https7层,在负载均衡设备与三次握手之后,只有收到对应七层报文,才会跟建立连client RS接在负载均衡设备中,主要工作在以下的三种传输模式中SLB反向代理模式•透传模式•三角模式•根据不同的模式,负载均衡设备的工作方式也不尽相同,但无论在哪种模式下,客户端发起的请求报文总是需要先到达负载均衡设备进行处理,这是负载均衡设备正常工作的前提模拟网络拓扑环境•Client
10.
8.
21.40负载均衡设备•在整个报文交互过程中,采用和分别在和处抓包,然后使用进行报文解析Tcpdump WiresharkRS ClientWireshark
三、反向代理模式反向代理普通的代理设备是内网用户通过代理设备出外网进行访问,而工作在这种模式下的负载均衡设备,则是外网用户通过代理设备访问内网,因此称之为反向代理在反向代理模式下当负载均衡设备收到客户端请求后,会记录下此报文(源地址、目的地址、协议号、源端口、目的端口,IP IP服务类型以及接口索引),将报文目的地址更改为优选后的设备的地址,目的端口号不变,源地址修改RS IP为负载均衡设备下行与对应设备接口的地址,源端口号随机发送给;RS IP RS当收到报文后,会以源为接口地址,目的设备地址回复给负载均衡设备,负载均衡设备将源修改RS RS IP IP为目的端口号修改为客户端的源端口号,目的修改为的源回复报文VIP,IP Client IP查看报文解析结果配置完成后,访问服务器,返回成功,整个报文交互过程如下Client RSSource Destination Protocol Length InfoJTCP6650894http[SYN]Seq=0TCP60http50894[SYN,ACK]・172•
1675.84TCP5450894http[ACK]5eq=l|・・・立
10821.
40172.
16.
75.84HTTP1—302GETHI2HTTP623HTTP/
1.1200OK text/h|TCP5450894http[ACK]seq=2・
10.
8.
21.40^^^172•
1675.84HTTP255GET/favicon.ICQ HTTP/1,HTTP485HTTP/
1.1404Not Found
10.
8.
21.40TCP5450894http[ACK]Seq=4TCP55[TCP segmentof areasseTCP60http50760[ACK]seq=l和负载均衡设备之间的报文交互过程ClientTCP6022593http[SYN]Seq=0TCP58htip22593[SYN,ACK]3・・・・・|
1721675.8M172167585HTTP450GET/HTTP/
1.1HTTP458HTTP/
1.1200OK Ctext/htrTCP6022593http[ACK]Seq=39;.ICMP98Echo pingrequest id=0ICMP98Echo pingreply id=0和负载均衡设备之间报文交互过程RS结果分析分析整个报文交互过程握手过程首先向负载均衡设备发送报文请求建立连接,源为的源端口TCP ClientTCP SYNIP Client IP
10.
8.2L40,号目的为地址目的端口号;50894,IP VIP
172.
16.
75.84,8收到请求报文后,负载均衡设备会以源为地址端口号目的目的端口号IP VIP
172.
16.
75.84,80,IP
10821.40,50894回应报文;SYN ACK收到报文后回复报文,三次握手成功Client ACKTCP报文交互过程HTTP当负载均衡设备与完成三次握手后,因为配置的七层如果收到client SLB,请求,就会根据负载均衡算法和服务器健康状态优选出对应的在这次过程中选择的设备为HTTP RS RS,然后与建立连接
172.
16.
75.82RS TCP负载均衡设备发送报文请求连接,源为负载均衡设备与相连接口源端口号随机TCP SYNIP RS IP
172.
16.
75.83,目的为的目的端口号;4574,IP RS IP
172.
16.
75.82,80收到报文后,以源端口号目的目的端口号回复报文,负载均RS IP
172.
16.
75.82,80,IP
172.
16.
75.83,4574SYN ACK衡设备回复报文建立三次握手;ACK之后,负载均衡设备再将收到的报文源修改为与相连下行接口地址源端口号为随机HTTP IP RS IP
172.
16.
75.83,端口号,将报文发送给;当收到报文后,使用源为本地目的为进行回复,所以RS RS IP
172.
16.
75.82,IP
172.1报文直接回复给负载均衡设备;当负载均衡设备收到的回应报文后,将报文的源修改为地址RS VIP目的为发送回再将目的端口号修改为
172.
16.
75.84,IP
10.
8.
21.40Client,请求报文中的源端口号,服务器访问成功HTTP经过负载设备前一经过负载设备后〃源和端口号一目的和端口源和端口号一目的和端口号IP IP IP IP号―口请求报文
10.
8.
21.40:50894^
172.
16.
75.84:80^
172.
16.
75.83:
4574172.
16.
75.82:80^回应报文一
172.
16.
75.82:80^
172.
16.
75.83:4574^
172.
16.
75.84:80^
10.
8.
21.40:50894由上述的过程可以看出,在端上,的真实地址被负载设备修改成与相连接口的地址,所以RS clientIPRS IPRS无法记录到的访问记录,为了解决这个问题,可以采用在报文头中添加字段,本文Client HTTPX-Forwarded-For不做赘述,可以自行查询
四、透传模式当负载均衡设备工作在透传模式中时,无法感知到负载均衡设备的存在,对于来说,的地址就是RS Client RS IP负载均衡设备的地址VIP在这种模式下,当负载均衡设备收到源为的目的为本地地址的报文时,会将报文根据负载均衡策Client IP,IP VIP略和健康状况发送给最优的设备上,继而设备会收到目的为本地源为实际的请求报文;然RS RSIP,Client IP后将会直接回应此请求,报文的目的地址为的地址,当负载均衡设备收到此报文后,将源地RSIPClientIP IP址修改为地址,然后将报文发送给VIP Cliento报文解析结果同样在端和端抓取交互报文RS ClientSourceDestinationProtocol LengthInfo・・
10821.
40172.
16.
75.84TCP6654266http[SYN]Seq=O
172.
16.
75.
8410.
8.
21.40TCP60http54266[SYN,ACK]Se・・・・
10821.
401721675.84TCP5454266http[ACK]5eq=I・・・・・
10821.40172167584HTTP302GET/HTTP/
1.
1172.
16.
75.
8410.
8.
21.40HTTP665HTTP/
1.1200OK text/htm
10.
8.
21.
40172.
16.
75.84TCP5454266http[ACK]Seq=24£
172.
16.
75.
8410.
8.
21.40TCP60http54266[FIN,ACK]Se和负载均衡设备之间的报文交互过程ClientSource DestinationProtocol LengthInfoTCP6054266http[SYN]Seq=011「
10.
8.
21.40TCP58http54266SYN.ACK]StHTTP341GET/HTTP/
1.1[Packet si|HTTP658HTTP/I.1200OK[Packet sTCP6054266http[ACK]Seq=2TCP54http54266[FIN,ACK]St和负载均衡设备之间的报文交互过程RS结果分析握手过程同反向代理模式交互过程TCP报文交互过程HTTP向负载均衡设备的地址以源发送Client VIP请求,当负载均衡设备收到报文后,与优选后的进行三次握HTTP RS TCP手,过程同反向代理模式,然后将收到的报文,不改变报文的源地址和源/目的端口号,只修改目的HTTP IP IP修改为优选后的地址;当收到源来自的报文后,回复报文给地址此时要注意,RS
172.
16.
75.82RSIP
10.
8.
21.40,必须在上配置回复报文经过负载均衡设备,负载均衡设备会将源修改为地址然后转发给RSIPVIP
172.
16.
75.84,否则将会收到源为的报文,服务器访问失败Client,ClientIPHTTP经过负载设备前,经过负载设备后源和端口号目的和端口号》源和端口号一目的和端口号〃IP dIP IPIP请求报文
10.
8.
21.40:54266^
172.
16.
75.84:80^
10.
8.
21.40:54266^
172.
16.
75.82:80^回应报文d
172.
16.
75.82:80^
10.
8.
21.40:
54266172.
16.
75.84:80^
10.
8.
21.40:54266^
五、三角模式在三角模式下,当客户端发送请求到负载设备上时,负载均衡设备会计算出最优然后直接根RS,据地址将报文转发给在上配置报文的源为地址(一般配置在口上),因此在这种情MAC RS,RSIPVIP loopback况下,会直接将报文发送给即使回复报文经过负载均衡设备,此设备不做任何处理由于报文在整个RS Client,过程中传输途径类似于三角形,因此称之为三角模式报文解析结果SourceDestinationProtocol LengthInfoTCP6653210http[SYN]SeqTCP66http53210[SYN,ACK]TCP5453210hVtp[ACK]SUHTTP302GET/HTTP/
1.1分别在端和端抓包,内容如下ClientRS630HTTP/
1.1200OKtext/fTCP5453210http[ACK]和负载均衡设备之间的报文交互过程ClientSource DestinationProtocolLengthInfoTCP6653210http[SYN]Seq=|TCP66http53210[SYN,ACK]TCP6053210http[ACK1Seq=《HTTP302GET/HTTP/
1.1[PacketHTTP630HTTP/
1.1200OK[Packet;TCP6053210http[ACK]Seq=和负载均衡设备之间的报文交互过程RS结果分析握手过程TCP由于采用了层所以在握手过程中与上述的层有些不同,当和完成三次握手之后,此4SLB,TCP7SLB ClientRS时负载均衡设备会直接选择然后跟建立三次握手;RS,RSTCP在三角模式环境中,由于的□和负载均衡设备上都存在着地址当负载均衡设备经过RS LoopbackVIP
172.
16.
75.84,负载均衡算法选择出对应的后,会根据实际配置的的地址对应的地址,将报文以目的为目RS RSIP macmac RS,的为的方式建立连接IPVIPTCP报文交互过程HTTP经过负载设备前经过负载设备后p源和端口号口目的和端口号源和端口号/目的和端口号IPIPIPIP一一请求报文
10.
8.
21.40:53210^
172.
16.
75.84:80^
10.
8.
21.40:
53210172.
16.
75.84:80^回应报文.
172.
16.
75.84:80^
10.
8.
21.40:53210^
172.
16.
75.84:80^
10.
8.
21.40:53210^首先向负载均衡设备的发送请求,源为当负载均衡设备收到报文后,将报文直接转发Client VIPHTTP
10.
8.
21.40,给当收到源为目的为本地口地址的报文后,直接将报文回复RS,RSIP
10.
8.
21.40,IP LoopbackIP
172.
16.
75.84给同样源为地址由此访问服务器成功
10.
8.2L40,IP
172.
16.
75.84,在三角模式中,由于回复报文负载均衡设备不做任何处理,所以非常适合于到方向流量较大或者连接数目较多的组网环境RS Client采用三角模式时,必须注意有路由可以到达并且在的接口上必须有负载均衡设备的地RS Client,RS LoopbackVIP址,否则即使设备收到的请求报文也会直接丢弃报文,不作回应RS Client
六、总结由于反向代理模式中在侧只能收到源为负载均衡设备的报文,因此可以使用防火墙增加安全性,只允许源RSIP为负载均衡设备的地址的报文通过,同时增加字段也可以让只允许有此字段的报文进行IPIPX-Forwarded-For RS访问,因此安全性相对较高是否更改源优点「缺点适用场景32IP.反向代理模无要求是2和之间完全不做其他配置情况根据用户要求.道川于CLIENT RS(建议指由负载均衡设备隔离•卜无法记录客户大部分场景-RS向负我设安全性提高“端信息,备)会出现端口耗尽情况,透明模式「必须指否可以直接记录访问当和位广同根据用户要求.同样RSRSClient向伉彳信息,不容易出现端口一网段时罹采用透明适用于大部分场景-耗尽―模式设备」三角模式,无要求否,,负载设需压力最小.只支持适用侧流量连IP.TCP.FRS网络响应速速最快,类型的虚拟服接大的网络,UDP指向路务由器).。