LVS:
lvs是一个负载均衡的一个集群软件,由内核集成,性能强大,支持百万计并发。
LVS集群的相关概念:
VS:虚拟服务器,指LVS服务器自身
RS:提供服务的服务器
CIP:客户端ip地址
VIP:lvs服务器对外发布的ip地址,用户通过vip访问集群
DIP:LVS连内网的ip地址叫DIP,用于接收用户请求的ip叫做VIP
用户访问流程:
客户端通过 CIP—>VIP—>DIP—->RIP
LVS的四种工作模式:
lvs-nat:修改请求报文的目标IP,多目标IP的DNAT
lvs-dr:操纵封装新的MAC地址
lvs-tun:在原请求IP报文之外新加一个IP首部
lvs-fullnat:修改请求报文的源和目标IP
LVS的NAT模式
SNAT:
私网—>公网 修改的是源计算机的地址,源地址会发生改变 内网访问外网的时候,需要将内部私有网络地址通过一个公网地址转化为公有地址
DNAT:
公网—>内网 修改的是目标计算机的地址,目标地址会发生改变 内网采用的是私网地址,无法直接访问。外部访问先访问一个公网地址,通过这个公网地址转发到内网地址。
lvs-nat:
工作流程:
客户端发送请求报文,用户发请求访问的就是lvs的vip,此时源地址是cip,目标地址是vip
请求到达lvs服务器的vip后,将请求转发到内网的指定服务器。转发的时候将原有数据报文的目标地址改为了内网的RIP,端口号可能也会跟着改变。
经过内网,指定的RIP服务器收到了用户的请求并处理请求,回应请求的时候,源端口为自己的RIP,目标IP为客户端的CIP。
响应报文经过到达lvs服务器时,lsv从vip网卡发送报文出去的时候,将源ip改为自己的VIP,目标IP为客户端用户的CIP。最后通过互联网发送给用户。
lvs的nat工作模式和普通DAT的区别:
iptables的DAT:只能实现一对一。转发的时候只能转发到一个固定的机器上。
lvs-nat:本质是多目标IP的DNAT,转发的ip和端口可以映射到不同的机器上。
说明:
(1)RIP和DIP应在同一个IP网络,且应使用私网地址;RS的网关要指向DIP
(2)请求报文过去,响应报文也应该原路返回(请求报文和响应报文都必须经由Director转发)
(3)VS(lvs机器)必须是Linux系统,RS可以是任意OS系统