02 高并发负载均衡:LVS的DR,TUN,NAT模型推导

四层负载均衡

四层负载均衡服务器,是数据包级别的,不会和客户端握手,只是偷窥数据包里的ip地址、端口号,只有80端口才转发,其它端口不处理,所以并不是完整的四层,速度特别快。
企业系统架构,一般最前面是LVS负载均衡,hold住流量,然后是nginx,hold住握手,然后后面是一堆tomcat,hold住运算。

  • 四层负载均衡层级图
    在这里插入图片描述
  • 四层负载均衡拓扑图
    在这里插入图片描述

家庭上网模型

如果家里有2台电脑,ip分别为192.168.1.8、192.168.1.9。如果两台电脑同时访问百度,恰巧同时分配了12121端口。那么是否会有问题?
可能出现的问题:
通过路由器,内网地址改成路由器的公网地址,同一台路由器,公网地址相同,加上相同端口号,这样,百度收到请求响应回来,能分清楚是那台电脑发送的吗?会不会出现192.168.1.8的请求,响应给了192.168.1.9呢?
不会的,但是,是怎样实现的呢?
路由器,不仅会把ip从内网地址改成外网地址,同时还会分配一个随机端口号,来映射发来请求的电脑。通过转换得到了公网ip+新端口号,发送给百度。百度响应回来,到路由器,在从公网ip换成内网ip,从端口号映射对应的那一台电脑,这样就不会出现上面的问题了。
在这里插入图片描述

D-NAT模式

四层负载均衡的D-NAT模式,类似上面家庭上网模型中的路由器的功能。
客户端(CIP)发送一个数据包到负载均衡服务器的入口地址(VIP),负载均衡服务器,修改目标地址,从VIP改成一台服务器的真实IP地址RIP,就实现了把数据包负载给其中一台服务器server1(RIP),这时如果在server1使用命令:netstat -natp,会发现这个包的源地址是CIP,目标地址是RIP。服务器对这个包做出应答,返回一个数据包给客户端,源地址RIP,目标地址CIP。这样,即使客户端收到了这个包,也会丢弃。因为,请求包是CIP --> VIP,响应包是RIP --> CIP,这样客户端不认为是对自己发送的数据包的响应,所以丢弃。
怎么解决这个问题呢?
server1把数据包发送给负载均衡服务器,负载均衡服务器把源地址RIP改成VIP,即:RIP --> CIP 改成 VIP --> CIP,发送给客户端。这样,客户端请求服务器的包是 CIP --> VIP,收到的响应包是VIP --> CIP,这样就对应上了。
这种模式被称为D-NAT模式。
D-NAT模式实现了负载均衡,但是存在弊端。请求和响应是非对称的,一般请求的数据量很小,响应的数据量很大。D-NAT模式,请求路径,原路响应,这样下行压力很大,带宽会成为瓶颈。同时,这种模式是需要计算的,消耗算力。
在这里插入图片描述

DR模式

既然D-NAT模式有这么多弊端,那么有没有办法来改进一下呢?
消耗算力:基于3、4层,修改ip地址,去掉。
问题来了,不修改ip地址,那怎么办呢?4层偷窥数据包,3层修改ip,那么还有个方法,不偷窥,直接在包上加上真实服务器的mac地址,通过节点间的跳转就可以了,也就是不动3、4层,动2层。这个修改是非常小的,效率非常高。那么同样带来的弊端就是,负载均衡服务器和真实的服务器必须在同一个局域网才行。
带宽瓶颈:如果不原路返回,改成直接返回就解决了。
问题来了,如果不原路返回,那么请求路径CIP --> VIP,响应路径RIP --> CIP,不一样啊,客户端收到包也会丢弃的啊,怎么解决?
如果真实服务器也有VIP,返回路径不就是VIP --> CIP了嘛!
问题又来了,负载均衡服务器有VIP,真实服务器也有VIP,不就会IP冲突了吗,怎么破?
负载均衡服务器的VIP是存在公网的,大家都知道。而真实服务器的VIP隐藏起来,对外不可见,对内可见,就可以了。
按照上面的推导出的负载均衡模式就叫做DR模式,即:直接路由模式,也被称为mac地址欺骗模式。
在这里插入图片描述

TUN隧道模式

DR模式,限制了负载均衡服务器与真实服务器必须在同一个局域网内。那么这个可以改成不受这个限制吗?
利用隧道技术就可以。隧道技术就是发一个新的包,这个包从DIP到RIP,在包内,装着CIP–>VIP包。而在真实服务器中,把外层的包去掉,拿到里面的包就可以了。
DIP到RIP这样就会进行网络跳跃,可以从一个网跳啊跳,跳到另一个网。这样就没有负载均衡服务器与真实服务器必须在同一个局域网这个限制了。

在这里插入图片描述


上一篇《01 高并发负载均衡:网络协议原理》
下一篇《03 高并发负载均衡:LVS的DR模型试验搭建》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值