四层与七层负载均衡
OSI(Open System Interconnection)七层参考模型,是参考模型是国际标准化组织(ISO)制定的一个 用于计算机或通信系统间互联的标准体系。它从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。 四层工作在OSI第四层,也就是传输层;七层工作在最高层,也就是应用层。
- 二层负载均衡(mac): 一般是用虚拟mac地址方式,外部对虚拟MAC地址请求,负载均衡接收后分配后端实际的MAC地址响应
- 三层负载均衡(ip): 一般采用虚拟IP地址方式,外部对虚拟的ip地址请求,负载均衡接收后分配后端实际的IP地址响应
- 四层负载均衡(tcp): 用虚拟ip+port接收请求,再转发到对应的真实机器
- 七层负载均衡(http): 用虚拟的url或主机名接收请求,再转向相应的处理服务器
四层负载均衡具体实现方式为:通过报文中的IP地址和端口,再加上负载均衡设备所采用的负载均衡算法,最终确定选择后端哪台下游服务器。 以TCP为例,客户端向负载均衡发送SYN请求建立第一次连接,通过配置的负载均衡算法选择一台后端服务器,并且将报文中的IP地址信息修改为 后台服务器的IP地址信息,因此TCP三次握手连接是与后端服务器直接建立起来的。
七层服务均衡在应用层选择服务器,只能先与负载均衡设备进行TCP连接,然后负载均衡设备再与后端服务器建立另外一条TCP连接通道。 因此,七层设备在网络性能损耗会更多一些。
四层负载均衡与服务器直接建立起TCP连接,很容易遭受SYN Flood攻击。SYN Flood是一种广为人知的DDoS(分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷 发送大量伪造的TCP连接请求,从而使得被攻击方资源耗尽的攻击方式。从技术实现原理上可以看出,四层负载均衡很容易将垃圾流量转发至后台服务器,而七层设备则可以过滤 这些恶意并清洗这些流量,但要求设备本身具备很强的抗DDOS流量的能力
常见负载均衡设备
四层:F5、LVS等 七层:nginx、apache、haproxy