负载均衡模式
负载均衡有 2/3/4/7层多种,
对应于网络的七层模型,即物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。
二层负载均衡 : 数据链路负载
一般是逻辑上的捆绑。提供虚拟MAC地址接收数据,再转发到真正的MAC主机上。方法主要有链路聚合方法和PPP捆绑。
三层负载均衡 : 网络层负载
虚拟IP接收数据,然后转发到真正的IP主机上。
一般是通过F5硬件来提供这种负载。
四层负载均衡 : 传输层负载
IP+port 负载,提供虚拟的IP和端口接收数据后转发到真正服务器上。
由于在传输层,只有TCP/UDP协议,这两种协议中除了包含源IP、目标IP、源端口号、目标端口号。
七层负载均衡 : 应用层负载
URL负载,提供虚拟URL或主机名接收数据后转发到真正的地址。
应用层协议较多,常用http、radius、dns等。七层负载就可以基于这些协议来负载。这些应用层协议中会包含很多有意义的内容。比如同一个Web服务器的负载均衡,除了根据IP加端口进行负载外,还可根据七层的URL、浏览器类别、语言来决定是否要进行负载均衡。
软硬件
主机和主机的通信是通过IP和端口进行的,所以
- 软件所能实现的负载均衡只能是4-7层,
- 而硬件可以应用于二层,三层的负载均衡。
产品
软件负载有LVS,NGINX,HAPROXY等
硬件负载产品有F5,思科等。