四层负载与七层负载

7层负载 如 nginx (反向代理)

  • 应用层 uri
  • 建立连接,握手
  • 后端被负载的服务器可以不一样

4层负载 如LVS

  • 传输层 IP+端口号
  • 不会和客户端握手,不建立连接,
  • 只是数据包转发,所以速度快
  • 后端服务器是镜像的

4层负载是为了解决高并发,负载流量,7层负载是为了接入流量(解决握手),分流

nigix负载均衡 端口监听 连接数限制_lvs

NAT

nigix负载均衡 端口监听 连接数限制_负载均衡_02

  1. 公网地址和私网地址的转换,私网中的192.168.1.8想要访问8.8.8.8:80,在经过网关的时候需要将源IP转换成路由器的公网地址6.6.6.6
    即从(192.168.1.8:12121 -> 8.8.8.8:80)— >(6.6.6.6:12121 -> 8.8.8.8:80)
  2. 端口的映射,如果两个请求都是12121端口,从服务端返回的数据包该发给谁?
    需要在路由器中有一张映射表:将端口做一个映射
    即从(192.168.1.8:12121 -> 8.8.8.8:80)— >(6.6.6.6:123 -> 8.8.8.8:80)
  3. 这就是 NAT 网络地址转换协议原理,客户端发出去数据包的(源IP:源port)从(192.168.1.8:12121)变成(6.6.6.6:123)
  4. 对于负载均衡服务器来说,接收到的请求要分发给后面跟着的真实服务器,所以也需要做一个地址转换,即把VIP(虚拟IP,负载均衡服务器暴露出去的)转化为RIP(真实服务的IP),这个过程就是D-NAT

三种负载均衡模式图解

基于D-NAT的负载均衡

nigix负载均衡 端口监听 连接数限制_网络通信_03

  1. 由于网络的非对称性,带宽成为瓶颈
  2. 处于网络层的负载,需要重组IP,消耗算力
  3. 要求真实server的GW指向负载均衡服务器

基于DR(直接路由)的负载均衡

nigix负载均衡 端口监听 连接数限制_负载均衡_04

基于链路层,MAC地址欺骗(IP和端口号不变,MAC地址封装成真实服务器地址),速度快,成本低

  1. 真实服务器要接受数据包,就需要自己有一个VIP(对外隐藏,对内可见)
  2. 数据包要从负载均衡服务器发到真实服务器,必须要配真实服务器的mac地址(在链路层封装RS的MAC)
  3. 约束:负载均衡服务器和真实服务器必须在同一个局域网

基于TUN的负载均衡

隧道技术

nigix负载均衡 端口监听 连接数限制_lvs_05