一、基于SLB的背景
SLB (服务器负载均衡):在提供相同服务的服务器有多个的情况下,负载均衡装置存在虚拟服务地址,多个客户机从外部访问虚拟服务IP地址时,根据负载均衡算法来均衡各服务器的负载压力
因此,对客户机来说,RS(real server实际服务器)的IP地址是负载分散装置VIP (虚拟服务地址IP )地址,真正的RS服务器IP地址看起来不像客户机。
二、SLB三种传输模式
7层SLB和4层SLB的区别:
4层SLB :负载平衡设备上的服务类型为tcp/udp,负载平衡设备只解析为4层,负载平衡设备与客户机握手3次后与RS建立连接。
七层SLB :配置负载平衡设备的服务类型为http/ftp/https等,负载平衡设备将消息解析为七层,负载平衡设备与客户端握手三次后,对应的七层消息。
在负载平衡设备中,SLB主要在以下三种传输模式下工作
逆向代理模式
透射模式
三角模式
根据模式不同,负载均衡装置的动作方式不同,但无论哪种模式,来自客户机的请求消息都需要总是先到达负载均衡装置进行处理,这是负载均衡装置正常动作的前提。 伪网络拓扑环境:

客户端: 10.8.21.40
负载均衡装置: 172.16.75.83
VIP:172.16.75.84
RS1IP:172.16.75.82
RS2IP:172.16.75.85
在消息交互的整个过程中,使用Tcpdump和Wireshark分别在RS和Client中抓取包,然后使用Wireshark进行消息分析。
三、反向代理模式
反向代理:典型的代理设备是内部网用户通过代理设备访问内部网,在此模式下运行的负载均衡设备是通过代理设备访问内部网的,因此反向代理
在反向代理模式下:
负载均衡装置接收到来自客户机的请求后,记录该消息(源IP地址、目的地IP地址、协议号码、源端口、目的地端口、服务类型及接口索引),使消息目的地地址优先后RS接收到消息后,将源返回到RS接口IP地址,将目的地IP设备地址返回到负载均衡设备,负载均衡设备将源返回到VIP,目的地端口号返回到客户端的源端口号,将目的地IP返回到客户端的源IP响应
结果分析
要分析整个消息交换过程,请执行以下操作:
TCP握手过程:首先,客户端向负载均衡装置发送TCP SYN消息请求以建立连接,源IP为CIP的IP 10.8.21.40,源端口号50894,目的地IP为VIP地址172.16.75
接收到请求消息后,负载均衡装置用VIP地址172.16.75.84、端口号80、目的地IP 10.8.21.40、目的地端口号50894对SYN ACK消息进行响应。
Client在收到消息后回复ACK消息,TCP成功握手了三次。
HTTP消息交互过程:
在负载平衡设备和客户端完成三次握手后,由于配置的7层SLB,当接收到HTTP请求时,根据负载平衡算法和服务器的健康状况生成对应的RS (这次过程中选择的RS设备为177,
负载均衡装置发送TCP SYN消息请求连接,源IP是负载均衡装置连接到RS的接口IP 172.16.75.83,源端口号是随机4574,目的地IP是RS的IP 172.16.75.82,目的地端口号
RS在收到消息后,以源IP 172.16.75.82、端口号80、目的地IP 172.16.75.83、目的地端口号4574回复SYN ACK消息,负载均衡装置回复ACK消息3次握手
之后,负载均衡装置将接收到的HTTP消息源IP修正为与RS连接的下行接口IP地址172.16.75.83,源端口号为随机端口号,将消息发送到RS。 RS接收到消息后,使用源以本地IP 172.16.75.82、目的地IP172.16.75.83进行回复,因此消息直接回复给负载均衡装置。
负载均衡装置收到RS的响应消息后,将消息的源变更为VIP地址172.16.75.84、目的地10.8.21.40并返回给客户端,将目的地端口号变更为HTTP请求消息的源端口号。