lvs的工作模式

LVS的工作模式

LVS(Linux Virtual Server)
特点:跨平台:windows、linux
作用:实现负载均衡
核心组件
ip_vs:linux的内核功能模块,工作在内核,依赖该内核模块实现负载均衡功能
ipvsadm:应用层程序,该程序可以和内核中的ip_vs模块通信,实现对负载均衡的管理和控制
补充
keepalived也可以对ip_vs进行管理
概念
ClientIP:CIP
RealServerIP:RIP
DirectorIP:DIP
VirtualIP:VIP
一 .DR ( Direct Routing )模式,直接路由模式
1.原理:
第一步:客户端的请求会发送到及房,此时仅仅DR可以接收这个请求
目标IP MAC都是DR,所以DR可以接收这个请求
第二步:DR收到请求之后,会重新封装请求
1)会通过预先定义好的算法找出一个RS的mac地址
2)然后将这个请求报文的目标mac改为这个mac
3)最后将这个修改mac后的请求报文发送出去
第三步:因为这是内部网络,所有所有节点都可以接收这个请求数据包
1)判断目标IP mac是否与自己的ip mac相同,只有相同才会接收和处理这个请求
2)处理完成后,会将处理结果直接发送个客户端(不再经过DR)

**补充1:为了让DR RS可以接收请求,要求都需要有相同的哪个IP,这个IP就是VIP,但是这样会导致IP冲突
解决方式;将vip绑定在本地的回环接口之上(lo)
补充2:因为多个节点都有vip,因此客户端在请求获取mac地址的时候,就会出现arp争抢的问题
解决方式:在RS上设置arp抑制(不让RS对arp请求做出应答)**

2.ARP请求:获取ip所对应的mac地址

cliet           =====>      DR            =====>        RS
ip  :1.1.1.1               ip  : 1.1.1.2               ip  : 1.1.1.3
mac : aa:aa:aa:aa:aa:aa     mac : bb:bb:bb:bb:bb:bb     mac : cc:cc:cc:cc:cc:cc


客户端发送的请求:
	源ip:1.1.1.1 
	源mac:aa:aa:aa:aa:aa:aa
	目标:1.1.1.2
	目标mac:bb:bb:bb:bb:bb:bb
	源端口:1234
	目标端口:80

DR重新封装以后的报文
	源ip:1.1.1.1 
	源mac:aa:aa:aa:aa:aa:aa
	目标:1.1.1.2
	目标mac: cc:cc:cc:cc:cc:cc
	源端口:1234
	目标端口:80

3.DR模式总结:
1. 调度器仅仅修改目标mac
2. 响应报文是直接发送给客户端,不再经过调度器
3. RS必须要和DR在用一个局域网中
4. DR无法修改请求报文中的目标端口,因此RS的端口必须和DR一致
5. DR和所有的RS都需要配置VIP
6. 所有的RS都需要配置ARP抑制
7. RS必须可以直接和外网通信
8. DR模式效率相对高,配置复杂,所以如果访问量小(pv<2000),建议用更简单的nginx haproxy

二.NAT模式
1.原理:
第一步:客户端发送请求,请求报文中的目标ip都是VIP
第二步:DR接收请求报文,然后通过算法找出一个RS,然后将请求报文中的目标IP改为找出的RS的RIP
第三步:RS接收到DR转发的请求之后,会进行处理,然后将处理的结果发送DIP(源ip是RIP,目标ip是CIP),发送给DR
第四步:DR收到RS所返回的数据,然后会修改这个数据包,将源IP地址改为VIP,然后就可以发送给客户端了

补充:RS无法直接给客户端返回数据
解决方式:将DR的内网卡作为所有RS的网关
注意:DR需要启动路由转发功能

2.ARP请求:获取ip所对应的mac地址

cliet           =====>      DR            =====>        RS
ip  :1.1.1.1               vip  : 1.1.1.2              ip  : 1.1.1.3
mac : aa:aa:aa:aa:aa:aa     mac : bb:bb:bb:bb:bb:bb     mac : cc:cc:cc:cc:cc:cc


客户端发送的请求:
	源ip:1.1.1.1 
	源mac:aa:aa:aa:aa:aa:aa
	目标:1.1.1.2
	目标mac:bb:bb:bb:bb:bb:bb
	源端口:1234
	目标端口:80

DR重新封装以后的报文
	源ip:1.1.1.1 
	源mac:aa:aa:aa:aa:aa:aa
	目标:1.1.1.3
	目标mac: bb:bb:bb:bb:bb:bb
	源端口:1234
	目标端口:80

返回数据
	源ip:1.1.1.3
	源mac: cc:cc:cc:cc:cc:cc
	目标ip:1.1.1.1 
	目标mac:aa:aa:aa:aa:aa:aa

3.NAT模式总结
1.调度器在接收客户端的请求的时候,修改的是目标IP;在给客户端返回数据的时候,修改的是源IP
2.DIP和RIP必须在同一个网络,而且可以仅仅是一个私有地址
3.RS不需要连接外网也能正常工作(RS被保护起来)
4.请求的数据和应答的数据都需要经过DR的处理,所以在高并发的情况下,DR压力较大
5.NAT模式的使用场景后端节点较少的情况(RS<20)
6.RS的网关地址必须指向DR的内网卡IP地址
7.DR需要至少两个网卡(一个连外网,一个连接内网)
DR需要开启路由转发功能

三.TUNNEL模式
了解
在原有报文的基础,添加一个新的IP头

四.FULLNAT模式
这是nat模型的扩展,RS和DR可以不再同一个网络
RIP 和DIP 可以是私有地址,他们也可以不再同一个网络,RS的网关可以不指向DR的内网卡IP

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值