48

LVS工作模式详解

 4 years ago
source link: http://mp.weixin.qq.com/s?__biz=Mzg2ODI5OTI2OQ%3D%3D&%3Bmid=2247483929&%3Bidx=1&%3Bsn=9d74577c57cfe042c59c71e00b3de70d
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

The more you know the more you know you don't know

LVS是运维界最常见的4层负载均衡工具,本文主要讲解LVS常见的两种工作模式NAT和DR以及面试过程中常见的一些问题,希望对你有所帮助

名称解释

CIP:  发起请求的用户CIP

VIP: 虚拟IP,LVS上负责响应请求的IP地址

RealServer: 后端提供服务的服务器

lo网卡:本地回环网卡

四元组:源端口、源IP、目的端口、目的IP

LVS-DR模式

前置条件

1.LVS和RealServer需要在同一个网段
2.RealServer需要在本地网卡上配置VIP

工作流程

一、用户发起请求

1.CIP随机开启一个大于1024的端口(假设为60000)访问vip的80端口

2.请求通过网络到达LVS服务器所在的交换机,交换机发现目的IP是到VIP的请求

3.交换机发送ARP请求询问VIP对应的MAC地址

4.只有LVS服务器响应该请求

   i. LVS服务器上配置了VIP的地址
   ii. RealServer服务器上配置的地址为回环地址,不响应交换机的广播

5.交换机将请求转发给LVS,并缓存arp记录

二、请求到达LVS,LVS修改数据包的内容

6.LVS拿到请求后,将数据包中的Mac地址修改为RealServer的地址,并回传给交换机

7.交换机 将请求发给对应的RealServe r

三、RealServer处理并响应

8.RealServer收到请求后,进行处理

i. mac地址正确

ii. ip地址正确(VIP配置在lo上的原因,如果不配置,改数据包将会被丢弃)

9.RealServer处理好后将直接返回给CIP

LVS-NAT模式

前置条件

工作流程

一、用户发起请求

1.CIP随机开启一个大于1024的端口(假设为60000)访问vip的80端口

2.请求通过网络到达LVS服务器所在的交换机,交换机发现目的IP是到VIP的请求

3.交换机发送ARP请求询问VIP对应的MAC地址

4.LVS服务器响应该请求

5.交换机将请求转发给LVS,并缓存arp记录

二、请求到达LVS,LVS修改数据包的内容

6.LVS拿到请求后,将数据包IP信息

    i. 源IP\端口改为LVS的IP、端口

ii. 目的IP、端口改为RealServer的IP、端口

7.交换机 将请求发给对应的RealServe r

三、Re alServer处理并回传数据给LVS

8.RealServer收到请求后,进行处理

9.RealServer处理好后将返回给LVS

四、LVS修改数据包的内容,并响应客户端

10.LVS将数据包中的IP修改到正确的四元组后,回应给客户端

面试常见问题

一、LVS NAT和DR的区别是什么?

1. 修改的内容不同,DR修改的是 MAC地址 ,NAT修改的是 IP、端口

2. 修改次数不同,DR只需要修改 一次 ,NAT需 要修改 两次

3. 响应流量 DR模式无需经过LVS ,NAT需要

4. DR模式要求 在同一个网段 ,NAT不需要

二、LVS负载均衡和Nginx负载均衡的区别是什么?

LVS属于四层,NGINX属于七层

LVS能承载的压力要比nginx强很多,但NGINX的功能更加丰富,可配置各种规则对http请求进行分流

所以一般来说大家都是两台LVS做keepalive,后端挂载多个NGINX负载均衡器来承载流量,然后才是真正响应请求的服务器例如Tomcat等

三、如果单个LVS也无法承载巨大的网络流量,有哪些优化的思路?

1. 使用CDN通过缓存的方式减轻网站的压力

2. 通过智能DNS的方式,将流量转发到多个LVS上(本质上与CDN方案类似)

3. 通过交换机BGP的方式

四、 如果你来优化LVS还有哪些改进项?

NAT模式

1. 在TCP三次握手时,LVS先与客户端建立完成链接后,在将流量转发至RS。在LVS层添加攻击防护能力

2. TCP链接复用,如果流量过大,那需要考虑的是TCP握手带来的性能损耗,如果LVS与RS保持keepalive那可以大大减少延迟时间

关于调度算法相关,LVS官网已经有了非常详细的介绍。 本文不再赘述

官网链接如下:http://www.linuxvirtualserver.org/zh/lvs4.html

周拱一卒,砥砺前行,欢迎拍砖。更多内容,请关注公众号获取


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK