lvs四种模式对比.docx
- 文档编号:10439450
- 上传时间:2023-02-11
- 格式:DOCX
- 页数:11
- 大小:243.04KB
lvs四种模式对比.docx
《lvs四种模式对比.docx》由会员分享,可在线阅读,更多相关《lvs四种模式对比.docx(11页珍藏版)》请在冰豆网上搜索。
lvs四种模式对比
LVS是Linux VirtualServer,Linux虚拟服务器;是一个虚拟的服务器集群【多台机器LBIP】。
LVS集群分为三层结构:
∙负载调度器(loadbalancer):
它是整个LVS集群对外的前端机器,负责将client请求发送到一组服务器[多台LBIP]上执行,而client端认为是返回来一个同一个IP【通常把这个IP称为虚拟IP/VIP】
∙服务器池(serverpool):
一组真正执行client请求的服务器,一般是我们的web服务器;除了web,还有FTP,MAIL,DNS
∙共享存储(sharedstored):
它为serverpool提供了一个共享的存储区,很容易让服务器池拥有相同的内容,提供相同的服务[不是很理解]
LVS有4中常用的模式,分别讲一下4中模式的区别:
LVS DR模式
1.DR(Direct Routing)模式的网络结构:
2. 工作的基本原理:
(1).client发送一个pv请求给VIP;VIP收到这请求后会把此请求的package的MAC地址修改为realserver的MAC地址然后LVS根据算法选择一个realserver,;下面是我们通信的package的基本格式:
在这个通信的Package有六个主要的字段:
srcmac、dstmac、srcip、srcprot、 dstip、dstip; 现在这个包里面的dstmac是LVSVIP的网卡MAC[在TCP三次握手完成时就只知道dspip和dspmac了]
∙ DR模式会把packet里面的dstmac 改成realserver的MAC地址;然后VIP会把这个包广播到当前的这个局域网内;所以,要提前保证VIP和所有的realserver在同一个网段,也就是在用过局域网里面。
同一个网段:
用子网掩码来实现的,我们知道我们的网络中有局域网,一个局域网有很多台机器,这些LAN里面的所有机器都公用一个外网IP;我们是怎样界定这个LAN的呢?
用的就是网段号;IP只是是32位二进制数表示,这32位分为:
网络位+主机位;表现在子网掩码是就是:
网络位是1,主机位是0;这样网络位=IP 按位与 子网掩码;所以,我们在把realserver挂到LVS上前,需要确认DR模式,且IP在同一个网段内。
∙ARP协议会把这个包发送给真正的realserver【根据MAC找到机器】
∙把这个srcip----->realserver的mac地址建立一个hash表;这此次连接未断开前,同一个client发送的请求通过查询hash表,在次发送到这台realserver上面;
∙realserver收到这个packet后,首先判断dstip是否是自己的IP地址;如果不是就丢掉包;如果是就处理这个包。
所以,DR模式还要在所有的realserver的机器上面绑定VIP的ip地址:
[html] viewplain copy
1./sbin/ifconfig lo:
0 inet VIP netmask 255.255.255.255 -----> 这个要注意!
∙ 这样realserver发现package的dst自己能识别【绑定了2个IP】,会处理这个包,处理完后把package的src mac dstmac srcip dstip都修改后再通过ARP发送给VIP,通过VIP发送给client。
realserver发送给VIP的package的格式:
∙ realserver处理这个包后,会跟dst为clientip直接发送给clientip;不经过lvs;这样虽然效率比较高,但是有安全漏洞。
LVSDR工作的基本原理package的详细信息:
3. LVSDR模式的注意情况:
∙ LVS的VIP和realserver必须在同一个网段,不然广播后所有的包都会丢掉:
提前确认LVS/硬件LB是什么模式,是否需要在同一个网段
∙ 所有的realserver都必须绑定VIP的IP地址,否则realserver收到package后发现dst不是自己的I怕,所有包都会丢掉。
∙ realserver·处理完包后直接把package通过dstIP发送给client,不通过LVS/迎接IP了这样的LVS/VIP效率会更高一点。
【通过把realserver的ip暴漏给外界,不是很安全】
LVS NAT模式
1. LVSNAT模式的网络结构:
2. NAT模式的基本原理:
∙ NAT模式工作原理的模拟图:
∙ client:
202.100.1.2
VIP:
202.103.106.5
realserver:
172.16.0.2 172.16.0.3 分别提供http和ftp服务
(1).首先client发送请求[package]给VIP;
[html] viewplain copy
1.#client 发送给VIP的package:
2.SOURCE 202.100.1.2:
3478 EDST 202.103.106.5:
80
(2).VIP收到package后,会根据LVS设置的LB算法选择一个合适的realserver,然后把package的DSTIP修改为realserver:
[html] viewplain copy
1.# VIP 发送给realserver的package:
2. SOURCE 202.100.1.2:
3478 EDST 172.16.0.3:
8000
(3).realserver收到这个package后判断dstip是自己,就处理这个package,处理完后把这个包发送给LVSVIP:
[html] viewplain copy
1.# realserver 处理完成后发送给VIP的package:
2. SOURCE 172.16.0.3:
8000 EDST 202.100.1.2:
3478 # lvs 收到这个package 后发现dst ip 不是自己的会不会丢掉?
感觉有错误
(4).LVS收到这个package后把sorceip改成VIP的IP,dstip改成clientip然后发送给client:
[html] viewplain copy
1.#VIP收到package 后修改sourceip 发送给client的包:
2.SOURCE 202.103.106.5.80:
80 EDST 202.100.1.2:
3478
3.NAT模式的注意事项:
∙ NAT模式修改的是dstIP,直接走switch或pub不需要修改MAC所以,不需要VIP和realserver同在一个网段内。
∙ NAT模式packagein 和packageout都需要经过LVS;因此LVS的可能会成为一个系统瓶颈问题。
LVS FULLNAT模式
1. FULLNATT的基本原理:
FULLNAT 在client请求VIP时,不仅替换了package的dstip,还替换了package的srcip;但VIP返回给client时也替换了srcip;还是通过上面NAT模式的工作原因的图进行分析FULLNAT的工作原理:
(1).首先client发送请求[package]给VIP;
[html] viewplain copy
1.#client 发送给VIP的package:
2.SOURCE 202.100.1.2:
3478 EDST 202.103.106.5:
80
(2).VIP收到package后,会根据LVS设置的LB算法选择一个合适的realserver,然后把package的DSTIP修改为realserver;把sorceip改成lvs集群的LBIP
[html] viewplain copy
1.# VIP 发送给realserver的package:
2. SOURCE 172.24.101.135[lb ip] EDST 172.16.0.3:
8000
(3).realserver收到这个package后判断dstip是自己,就处理这个package,处理完后把这个包发送给LVSVIP:
[html] viewplain copy
1.# realserver 处理完成后发送给VIP的package:
2. SOURCE 172.16.0.3:
8000 EDST 172.24.101.135[这个ip是 LVS VIP 集群的一太机器]
(4).LVS收到这个package后把sorceip改成VIP的IP,dstip改成clientip然后发送给client:
[html] viewplain copy
1.#VIP收到package 后修改sourceip 发送给client的包:
2.SOURCE 202.103.106.5.80:
80 EDST 202.100.1.2:
3478
2.FULLNAT模式的注意事项:
∙FULLNAT模式也不需要LBIP和realserverip在同一个网段;
∙fullnat跟nat相比的优点是:
保证RS回包一定能够回到LVS;因为源地址就是LVS-->不确定
∙fullnat 因为要更新sorceip所以性能正常比nat模式下降10%
LVS IPTUNNEL模式
1.IPTUNNEL模式的网络结构图:
2.IPTUNNEL模式的基本原理:
还是按NAT模式的基本框架来说明TUNNEL模式的基本原理:
(1).首先client发送请求[package]给VIP;
[html] viewplain copy
1.#client 发送给VIP的package:
2.SOURCE 202.100.1.2:
3478 DST 202.103.106.5:
80
(2).VIP收到package后,会根据LVS设置的LB算法选择一个合适的realserver;并把client发送的package包装到一个新的IP包里面;新的IP包的dst是realserver的IP
[html] viewplain copy
1.# VIP 发送给realserver的package:
2. client 发送的包 DST 172.16.0.3:
8000
(3).realserver收到这个package后判断dstip是自己,然后解析出来的package的dst是VIP;会检测我们的网卡上是否帮了VIP的ip地址;如果帮了就会处理这个包,如果没有直接丢掉。
我们一般在realserver上面lo:
0绑定了VIP的ip地址,就可以处理
[html] viewplain copy
1.# realserver 处理完成后直接发送给client响应包:
2. SOURCE 172.16.0.3:
8000 DST 202.100.1.2:
3478 【client ip】
3.IPTUNNEL模式的注意:
∙TUNNEL模式必须在所有的realserver机器上面绑定VIP的IP地址
∙TUNNEL模式的vip------>realserver的包通信通过TUNNEL模式,不管是内网和外网都能通信,所以不需要lvsvip跟realserver在同一个网段内
∙TUNNEL模式realserver会把packet直接发给client不会给lvs了
∙TUNNEL模式走的隧道模式,所以运维起来比较难,所以一般不用
LVS DR、NAT、FULLNAT、IPTUNNEL模式的区别:
1. 是否需要lvsvip跟realserver在同一个网段:
DR模式因为只修改package的MAC地址通过ARP广播的形势找到realserver,所以要求LVS的VIP和realserver的IP必须在同一个网段内,也就是在挂载VIP时先确认LVS的工作模式,如果是DR模式需要先确认这个IP只是否能挂在这个LVS下面。
其他模式因为都会修改DSTip为realserver的IP地址,所以不需要在同一个网段内
2. 是否需要在realserver绑定LVSvip的IP地址:
realserver收到package后会判断dstip是否是自己的ip,如果不是就直接丢掉包;因为DR模式dst没有修改还是LVS的VIP;所以需要在realserver上面绑定VIP;IPTUNNEL模式只是对package重新包装一层,realserver解析后的IP包的DST 仍然是LVS的VIP;也需要在realserver上面绑定VIP;其他的都不需要
3. 四种模式的性能比较:
因为DR模式 TPTUNELL模式都是在packagein时经过LVS;在packageout是直接返回给client;所以二者的性能比NAT模式高;但IPTUNNEL因为是TUNNEL模式比较复杂,其性能不如DR模式;FULLNAT模式因为不仅要更换DSTIP还更换SOURCEIP 所以性能比NAT下降10%
所以,4中模式的性能如下:
DR -->IPTUNNEL --->NAT----->FULLNAT
LVS实践中的积累
1.lvs不会主动断开连接
比如client通过LVSVIP采用长链接方式访问server,即使我们把LVS下面的realserver的status.html文件删除了;本来通过LVS跟这台realserver链接的请求也不会被LVS
强制断开;要等到client自己断开连接;【在client主动断开期间;client可以跟这台realserver正常通信】;这样有个好处时在网络抖动时;LVS不会频繁的流量截断,到不同的RS上面
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- lvs 模式 对比