本文作者:念宗

LVS-DR工作原理图文详解

念宗 6年前 ( 2018-11-19 ) 5207 抢沙发
摘要: 很久以前在51cto投稿的老文章了,挪到自己博客记录一下。【51CTO独家特稿】LVS如今早已不再新鲜,在生产环境中的应用非常广泛。它的原理相信运维的同行们多少都知道。但是你到底了...

很久以前在51cto投稿的老文章了,挪到自己博客记录一下。

【51CTO独家特稿】LVS如今早已不再新鲜,在生产环境中的应用非常广泛。它的原理相信运维的同行们多少都知道。但是你到底了解到什么程度呢?

我们都知道LVS有LVS-DR,LVS-NAT,LVS-TUN三种模式,其中DR模式意为Direct Routing(直接路由),是调度器与实际服务器都有一块网卡连在同一物理网段上的情况。本文主要对LVS/DR模式原理进行了阐述,另外还有一篇FAQs,给有相关疑问的朋友们做个参考。

LVS-DR工作原理详解

为了阐述方便,我根据官方原理图另外制作了一幅图,如下图所示:VS/DR的体系结构:

lvs01.jpeg

我将结合这幅原理图及具体的实例来讲解一下LVS-DR的原理,包括数据包、数据帧的走向和转换过程。

官方的原理说明:Director接收用户的请求,然后根据负载均衡算法选取一台realserver,将包转发过去,最后由realserver直接回复给用户。

实例场景设备清单:

lvs02.jpeg

说明:我这里为了方便,client是与vip同一网段的机器。如果是外部的用户访问,将client替换成gateway即可,因为IP包头是不变的,变的只是源mac地址。

① client向目标vip发出请求,Director接收。此时IP包头及数据帧头信息如下:

1131532.png


② VS根据负载均衡算法选择一台active的realserver(假设是192.168.57.122),将此RIP所在网卡的mac地址作为目标mac地址,发送到局域网里。此时IP包头及数据帧头信息如下:

lvs04.jpeg

③ realserver(192.168.57.122)在局域网中收到这个帧,拆开后发现目标IP(VIP)与本地匹配,于是处理这个报文。随后重新封装报文,发送到局域网。此时IP包头及数据帧头信息如下:

lvs05.jpeg

④ 如果client与VS同一网段,那么client(192.168.57.135)将收到这个回复报文。如果跨了网段,那么报文通过gateway/路由器经由Internet返回给用户。

以上就是对LVS/DR模式的原理介绍。如果还有其他问题不明白的,可以参考作者另外一篇LVS/DR模式原理剖析的FAQs



文章版权及转载声明:

作者:念宗本文地址:http://pyops.net/?id=5发布于 6年前 ( 2018-11-19 )
文章转载或复制请以超链接形式并注明出处运维之道

分享到: 网站分享代码

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

发表评论

快捷回复:

验证码

评论列表 (暂无评论,5207人围观)参与讨论

还没有评论,来说两句吧...