设为首页 收藏本站
查看: 1436|回复: 0

[经验分享] LVS工作原理

[复制链接]

尚未签到

发表于 2015-11-20 14:49:17 | 显示全部楼层 |阅读模式
  首先我们要了解LVS的工作机制:
  LVS里Director本身不响应请求,只是接受转发请求到后方,Realservers才是后台真正响应请求。
  LVS 工作原理基本类似DNAT,又不完全相像,它是一种四层交换,默认情况下来通过用户请求的的地址和端口,来判断用户的请求,从而转发到后台真正提供服务的主机,而判断这种请求的是通过套接字来实现,所以四层就可以实现。而且这个转发的过程对用户而言是透明的(简单的讲,就是用户访问的是DR的IP,而DR转发给RSS,而用户不知道这个过程)
  LVS的工作模式:
  1.DNAT
  2.直接路由
  3.隧道
  提供的优点:
  1.高并发
  2.高冗余
  3.适用性,扩展服务器,缩减服务器,方便服务器扩展和收缩
  LVS 的IP地址类型
  1.VIP:虚拟IP地址,并不提供服务,而是将用户的请求转发到后方
  2 RIP:真正IP地址,客户端真正提供服务的IP地址
  3.DIP:调度IP地址,通常是和RIP相连的LVS的IP地址
  4.CIP:客户端IP地址,用户请求时,用户的IP
  流程:如下图
  
  ===============================分 割 线==============================
  LVS集群的类型:
  1.LVS-NAT DNAT
  2.LVS-DR 直接路由
  3.LVS-TUN 隧道
  
  下面我们详细说明这三种类型:
  
  LVS-NAT模型原理
  
  用户的请求和响应都需要经过Director
  源地址,目标地址都需要经过转换,而目标地址转换是透明的
  这种架构的扩展有限调度器,Director将处理所有的请求,压力比较大,扩展到10个结点就不行了
  
  要求:
  1.集群节点必须在同一个物理网络中,同一个子网或者VLAN
  2.DIP和RIP只能在同一个网络(子网)中,不能跨越网段
  3.RIP地址通常是私有地址
  4.所有的RIP,必须以DIP为网关(地址转换)
  5.NAT的地址可以做端口转换(比如80--à8080)
  6.任何操作系统都可以做RIP
  7.Director有可能成为整个系统的瓶颈
  
  数据传输:
  通过二层(数据链路层)转发(ARP)将DR的MAC地址转换成RIP的MAC地址(不是转变,而是转发),这样就实现了数据的传输,在RSS响应后,再将RSS的MAC地址转换成RIP的MAC地址。
  
  ===============================分 割 线==============================
  LVS-DR模型原理
  
  用户的请求必须经过Director,而realserver在响应的使用直接返回请求(图有问题,有可能设的网关不同,还存在一台路由器)
  需要配置iptables规则,拒绝响应MAC地址转换,或者通过修改LINUX内核响应
  优点:由于它比NAT少了一个地址转换,响应速度更快
  特点
  1.必须处于同一个物理网络中(连在同一个交换机上)
  2.RIP可以使用公网地址(建议使用)
  3.Director只转发请求,而realserver直接响应请求而不转发
  4.集群节点的网关,不能指向DIP
  5.不能做端口转换(不支持)
  6.绝大多数的操作系统都可以实现realserver,而realserver需要同一个网卡配置多个Ip地址
  7.DR模式的Director比NAT模式能够带动更多的节点
  
  数据传输:
  解决数据进入:
  为了避免RS直接响应,给服务器的lo:0设置VIP地址,给本地网卡设置成CIP,这样RS就不会直接响应了,隐藏了RS
  解决数据出去:
  而默认情况下,Linux设置数据包从哪块网卡出去,源地址设为该网卡地址,通过添加一条特殊路由信息,如果目标地址是lo的VIP地址,那么出去的时候源地址设置为lo的地址。
  路由信息的原理:
  添加一条主机路由,将VIP的地址自己设置成一个网段,既子网掩码为255.255.255.255,这样VIP出去的时候没有比VIP更优的了,就成为最佳IP
  
  在互联网上性能最佳的就是DR应用,但是有一个缺点,必须要求主机间距离比较近(比如一个机房),如果发生天灾人祸,集群就完了,所以我们为了实现异地分布,要采用隧道比如VPN
  ===============================分 割 线==============================
  LVS-TUN模型原理:
  虚拟隧道实现:
  1.专线(加密)
  2.二层:在MAC之外再加一层MAC
  3.三层:源IP目标IP之外再加一层IP
  隧道目的: 隐藏意图,通过转换来(ip套ip)隐藏目的
  
  特征:
  1.集群节点和Director不必在同一个网络
  2.RIP必须使用公网地址
  3.Director只需要处理进来的请求,不需要处理出去的请求
  4.响应的请求一定不能经过Direcor.
  5.Directory不支持端口映射
  6.只能使用那些支持IP 隧道协议的操作系统做realserver
  优点:LVS-TUN可以实现基于网络的集群,这样就脱离了LVS-DR的realserver之间的距离限制。
  
http://hi.baidu.com/moonlitshiny/blog/item/5deb3a6306a9b73bab184c9f.html

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-141572-1-1.html 上篇帖子: Centos 6编译内核支持LVS-SNAT模式 下篇帖子: 四层负载均衡—LVS
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表