LVS的工作模式有三种

NAT模式:
1 2 3 4 5 6 7 |
前提: 1.负载中心必须开启数据转发。 2.后端私有服务器必须将网关指向到负载调度器(所有的数据报文你都不走负载调度器我怎么给你进行地址转换呢) 3.支持端口映射 4.负载调度器必须是linux操作系统 5.RIP通常是私有ip,仅用于各个集群节点之间通信 6.负载调度器必须位于RS和DS之间,充当网关(RS=客户)(DS=真实服务器) |
NAT:主要使用技术,目标地址转换(DNAT),讲白了就是对请求的目标地址进行更改。请求到数据以后,返回给负载中心,负载中心进行源地址转换后(SNAT)再把结果给发送给客户端

1 2 3 4 5 6 7 8 9 |
S:源地址 D:目标地址 1.数据会到达客户端吗? 当然,这个没有问题。 2.如果请求返回的信息没有进行目标地址转换(SNAT),客户与之能够建立相关联吗? 当然不能,因为我请求的目标地址,和返回的源地址不匹配(我请求的目标地址,就是返回给我的源地址) 7.进出数据都要走负载中心,有什么缺点 压力较大 |
DR模式:
DR主要原理:客户端的流量通过交换机,交换机发给负载调度器,负载调度器修改目标请求的MAC(当然标哪台mac通过算法去算),通过MAC找到真实服务器,真实服务器拿数据报文返回给交换机,交换机再返回给客户端。

DR模式的负载调度器,只做二层的数据报文修改,和只处理入站请求,压力最小
特点:
1 2 3 4 5 6 7 8 |
1.无论是,负载调度器也好,真实服务器也好。都必须处于同一个广播域。(因为传输要通过目标MAC) 2.真实服务器,将网关指向真实路由器 3.负载调度器只处理入站请求,压力最小,同理他能处理的请求也越多。并发也相对越大 4.不支持端口映射,也就是我访问负载机器的是80,后端真实机器对应的也必须是80 5.负载调度器必须是linxu,负载的机器最好也是linux (windows如果要做,需要再交换机做ip和MAC地址的绑定) 注意:负载调度器修改目标请求的MAC,通过MAC找到真实服务器,把数据请求发送过去,这个时候真实服务器是不会要这个数据的,为什么,目标ip不一致,就是目标收货人不一致。这个时候怎么办呢,再给真实服务器添加一个ip地址,也就是负载的虚拟ip,然后想法给隐藏起来。只要RS1机器自己知道即可。这样接收数据的时候就合法了。这个再前面配置的时候,修改了内核参数,相信也明白为什么了。返回数据包的时候,RS1会拿虚拟化添加的那个ip返回给路由器,路由器返回给客户端。 |
TUN模式
TUN:主要使用技术: 数据包二次封装,即 客户端发起请求,请求发给某个地区的负载路由器,负在路由器根据自身算法,在原有数据请求包基础上,重新再数据包外层再封装一个后端真实路由器的地址(这时候数据包是有2层的,第一层是客户端请求负载均衡器的地址,第二次是负载器发送给后端真实机器的地址),然后发送给后端真实服务器。真是服务器拿到这个包后,撕掉最外层这层地址,用第一层的地址给客户端回信。这样客户端收到的回信地址就对上号了。

注意:
1 2 3 4 5 6 7 8 |
1.客户端,负载路由,真实服务器,都必须有公网ip,或者能够被公网ip路由到。 2.真实服务器必须将网关指向真实网关处。 3.不支持端口映射 4.这种模式比较耗费资源,不太友好感觉。 5.公网比较慢,导致速度也会很慢 6.DS与RS必须开启隧道功能 7.入站由DS完成,出站由RS完成 8.负载调度器必须是linux,真实服务器随意 |
- 本文固定链接: https://www.yoyoask.com/?p=4317
- 转载请注明: shooter 于 SHOOTER 发表