LVS负载均衡服务的工作原理及方式

一、LVS介绍

1.工作范围

操作系统:LVS基于内核网络层面工作;
网络传输:工作在ISO模型的4层,主要对数据链路层和网络层进行操作

2.工作原理

IPVS程序

IPVS:在内核的netfilter 的INPUT链之前运行的一个程序,根据工作模式不同,IPVS进行相应的操作。
IPVS:通过ipvsadm进行操作

#为什么放在INPUT链之前
    因为客户端在访问服务时,访问的是负载均衡器的服务,客户端并不知道负载均衡器提供的是虚拟服务;
    所以,在负载均衡器的PREROUTING之后向INPUT走去
    如果,在PREROUTING判断,可能会有流向FORWARD的

3.在下面介绍各种模式的工作时会用到下面专有名词

VS:Virtual Server #虚拟服务
Director, Balancer #负载均衡器、分发器
RS:Real Server #后端请求处理服务器
CIP: Client IP #用户端IP
Director Virtual IP: VIP #负载均衡器虚拟IP
Director IP: DIP #负载均衡器IP
Real Server IP: RIP #后端请求处理服务器IP

二、LVS——NAT工作模式

1.介绍

NAT模式请求包,从client->VS->RS
NAT模式回应包,从RS->VS->client

NAT模式主要工作在网络层,通过转换IP地址实现

2.client发出请求(源IP:CIP,目标IP:VIP)->VS(IPVS转换地址)->RS

 1.请求进入RS,遇到VIP的PREROUTING链,因为目标IP是VIP,所以转到INPUT上
 2.在INPUT上被IPVS拦着,将目标IP转换为RIP;因为目标IP不是VIP,所以转到POSTROUTING,通过DIP发到RS

3.RS(源IP:RIP,目标IP:CIP)->VS(POSTROUTING转换地址)->client

注意:RS需要将网关指向DIP,否则数据不会从VS经过;
        如果数据不从VS发出,就无法将源地址转换为VIP;
        从而使数据直接从RS发出到clientclient发现这个回应包不是VIP发出的,我不要!(client请求的是VIP)
        无法完成数据传输
1.RS通过网关DIP将数据发往VS
2.VS的PREROUTING进入后发现目标地址不是本机,发到FORWARD
3.FORWORD发送到POSTROUTING
4.在POSTROUTING将源IP从RIP转换为VIP,发走到client

4.缺点

1.回应包也从VS通过,给VS带来大量的流量传输压力
    回应包一般携带大量数据,
    所以DR模式,让回应包直接从RS发往client

三、LVS——DR工作模式

1.介绍

DR模式请求包,从client->VS->RS
DR模式回应包,直接RS->client

1.DR工作在 数据链路层 ,通过转换 MAC地址 实现
    注意:
        a.只有在同一物理网段时,主机间的通信使用MAC地址实现的;所以RS和VS要在同一物理网段
2.DR的回应包并不会从VS转发,而是直接通过RS发出
    注意:
        a.这就要求RS要有一个与VIP相同的IP
        b.但是同一物理网段的IP地址不能冲突,否则会出现-在数据包进入本网段之前,广播寻找VIP时,出现多个响应的情况
3.所以,RS的回环网卡上设置一个别名IP地址(与VIP相同),并且禁止RS对广播的任何回应
    实现
        a.RS与VS通过MAC地址通讯(RIP对应的MAC地址)
4.所以进入RS时(源IP:CIP,目标IP:VIP)(源MAC:DIP_MAC,目标MAC:RIP_MAC),通过MAC地址连接
        不管IP地址,只用MAC地址
5.RS发出时(源IP:VIP,目标IP:CIP)(源MAC:RIP_MAC,目标IP:DIP_MAC),通过IP地址发出网络
        不管MAC地址,只用IP地址

2.client发出请求->VS->RS

1.client 发出请求(源IP:CIP,目标IP:VIP)(源MAC:CIP_MAC2.键入VS所在网段时,交换机广播,谁是VIP,给我MAC地址
        VSRS都有VIPRS的广播回应被禁止,就无法回复
        于是只有VS回应广播(数据包目标MACVS_VIP_MAC),请求数据包进入VS3.数据包进入VS经过PREROUTING到达INPUT链之前,被IPVS拦着
        IPVS把(源MAC:CIP_MAC,目标MAC:VS_VIP_MAC)换为(源MAC:DIP_MAC,目标MAC:RIP_MAC),通过MAC地址传输到同物理网段的RSIP地址不做转换        

3.RS回应包->client

4.RS上有两个地址RIP和VIP(别名)
        进入RS时(源IP:CIP,目标IP:VIP)
        所以RS相应的回应包(源IP:VIP,目标IP:CIP)
5.RS——>client
    client不在此物理网段,所以不用管MAC地址如何
6.进入client网段,广播找到client对应MAC地址。
7.client收到包,发现与自己发出的请求包IP对应,是自己要的;接受

4.缺点

DR的缺陷是 VS和RS必须要在同一物理网段,
    TUN模式可以让回应包从RS——>client
    也不要求VS和RS要在同一物理网段

四、LVS——TUN工作模式

TUN模式可以让回应包从RS——>client
也不要求VS和RS要在同一物理网段
注意:RS也要设置不能在公网出现的VIP

1.介绍(CIP到VIP的信,VS用快递送到RS)

如果实现上述功能,则需要VS->RS传输过程中,不能使用IP地址,也不能使用MAC地址

需要用IP隧道技术实现虚拟服务器
        这种方式是在集群的节点不在同一个网段时可用的转发机制,是将IP包封装在其他网络流量中的方法。
        为了安全的考虑,应该使用隧道技术中的VPN,也可使用租用专线。

缺点

 集群所能提供的服务是基于TCP/IP的Web服务、Mail服务、News服务、DNS服务、Proxy服务器等等.

2.client发出请求->VS(协议封装)->RS

1.client 发出请求(源IP:CIP,目标IP:VIP)到VS
2.数据包进入VS经过PREROUTING到达INPUT链之前,被IPVS拦着
        用隧道协议把请求包封装起来
            形成【源IP:DIP(源IP:CIP,目标IP:VIP)目标IP:RIP3.通过外层封装的协议传输到RS

3.RS->client

RS也要设置不能在公网出现的VIP

RS根据外层协议接受DIP的请求包
解包之后发现,里面还有一层数据包,是请求自己VIP的
回应包通过RS_VIP发送到client

五、LVS——full_NAT工作模式

与NAT相似也是通过IP地址转化,
与NAT区别及工作方式

NAT模式只转换目标地址VIP->RIPRS->VS是通过网关的设置实现的
full_NAT模式在IPVS上,把源地址和目标地址全部转换发给RS
        (源IP:CIP,目标IP:VIP)转换为(源IP:DIP,目标IP:RIPRS接收到以后以为是VS的请求,回应包(源IP:RIP,目标IP:DIP)不用通过网关发送。
    VS收到RS的回应,再把(源IP:RIP,目标IP:DIP)转换为源IP:VIP,目标IP:CIP)发送给client
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值