Lvs四层负载均衡和调度算法

lvs四层负载均衡

nat模式
后端服务器支持数量10-20台
使用最少两个网段
可以说是3层负载均衡

dr模式
后端服务器支持数量100+台
使用一个网段
可以说是2层负载均衡

隧道模式
后端服务器支持数量100左右
异地负载均衡 realserver必须使用公网Ip,还得需要服务器支持ip隧道协议

full-nat

↓↑↵→←↔

nat:数据流向从client-->dr--->rs rs-->dr--->client
client cip
↑↓
↑↓------->vip
dr
↑↓------->dip
-------------
↑↓ ↓
rs1 rs2----->rip

dr模式:流量从client-->dr-->rs rs-->client



→→→→→→ client cip 23
↑ ↓
↑ ↓------->vip 30
dr
↑ ↓------->dip 20
↑ +----------+
←←←←↓ ↓
rs1 rs2----->rip
21 22
设置vip30/32 设置vip30/32

路由数据包:源Ip不会发生变化 目标IP发生变化
源和目标MAC都会发生变化

23--->30
30--->23

1.来回数据包不一致
1)在rs的lo网卡设置vip/32
2)在rs上拒绝arp回应
3)设置让更好的IP回应数据包

2.在同一台机器上出现两块同一网段的网卡,数据包出去的时候,谁的路由条目在上面,就走哪块网卡

dr --- rs
s ip 23
d ip 30

s ip 30
d ip 23

信 要发给小明

#ipvsadm -A -t vip:80 -s rr
#ipvsadm -a -t vim:80 -r rip1:80 -g
#ipvsadm -a -t vim:80 -r rip2:80 -g

#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

dr模式问题:
arp广播
1.9 ping 192.168.1.8

1. 客户端要找vip访问80端口,因为是在同一个网段,所以发arp广播找vip的mac地址通信
2. 因为有rs上也有vip,我们不能直接让rs上的vip回应客户端的广播,所以设置文件arp_ignore的内容为1
1的意思是如果发来的广播包里面目标地址不是我的“进口地址”-->也就是“eth0”(对应的是非进口地址本地回环接口lo),那我就不回应这个arp广播)。
3. 当dr的vip收到这个广播之后,回应mac地址,然后得到客户端发来的80端口请求,再通过lvs分发到一个rs
4. 那么dr如何分发到一个rs?
dip发出arp广播询问rs的ip地址所对应的mac地址,然后发出一个目标ip为rs_vip,目标mac为rs_eth0_mac的包到rs
5. 这个rs必须要使用他lo设置的vip把回应包发出去(这样client收到之后一看源地址是vip,他就会相信这是正确的地址发来的包)
6. 那么怎样让rs使用lo的vip而不使用eth0?
设置arp_announce文件的内容为2, 2的意思是使用本机最好的本地IP地址把回应包发出去
7. 最后怎么算是最好的本地IP地址?
同一个网段下,使用可变长度子网掩码最长的IP地址被认为是好IP,因为他更精确

dr模式


数据链路层负载均衡
顾名思义,数据链路层负载均衡是指在通信协议的数据链路层修改mac地址进行负载均衡。
这种数据传输方式又称作三角传输模式,负载均衡数据分发过程

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值