社区编辑申请
注册/登录
LVS-DR工作原理图文详解 原创
系统 Linux
我们都知道LVS有LVS-DR,LVS-NAT,LVS-TUN三种模式,其中DR模式意为Direct Routing(直接路由)。对于LVS-DR,你到底了解到什么程度?本文通过一个实例场景,详细介绍了其每个执行步骤的工作原理,希望对大家有所帮助。

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

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

LVS-DR工作原理详解

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

LVS-DR工作原理

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

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

实例场景设备清单:

实例场景设备清单

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

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

client向目标vip发出请求

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

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

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

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

作者简介:戴海军(daihaijun@gmail.com),现就职于51.com,应用运维工程师。目前关注LVS/Nginx/Keepalived负载均衡和高可用技术。

【编辑推荐】

  1. LVS(DR)+ldirectord实现负载平衡
  2. 企业级WEB的负载均衡高可用之LVS+Keepalived
  3. LVS/Nginx如何处理session问题
责任编辑:yangsai 来源: 51CTO.com
相关推荐

2022-06-15 11:02:40

网络安全运营

2022-04-15 11:47:47

LVSNginx负载均衡

2022-04-26 08:41:54

JDK动态代理方法

2022-05-30 00:16:47

Python技巧pip

2022-05-16 11:50:45

HDF驱动框架

2022-05-11 11:17:47

ODD自动驾驶低速自动驾驶

2022-06-01 14:35:39

gitjmeter脚本

2022-05-09 08:55:58

Linuxdiff命令

2022-05-23 10:55:19

华为数字化转型架构蓝图

2022-04-10 23:21:04

SSH协议网络安全

2022-04-08 08:18:53

业务IT

2022-04-11 13:34:07

区块链比特币安全

2021-12-29 16:13:03

2021-10-29 13:26:54

2021-12-27 09:20:13

2011-04-02 15:36:47

OSPF

2021-10-29 08:19:54

2021-08-25 07:43:17

2021-09-29 09:42:32

2021-04-28 10:13:58

zookeeperZNode核心原理

同话题下的热门内容

用这些开源工具在 Linux 上编辑 PDF 文件Docker Compose:搭建开发环境的好方式在 Linux 上玩电子游戏的三种方式为什么命令行在 Linux 生态系统中如此重要在 Linux 上使用 WineZGUI 运行 Windows 应用和游戏Linux 网络性能的 15 个优化建议如何构建自己的可引导 Linux Live CD用 Curtail GUI 应用轻松压缩 Linux 中的图像

编辑推荐

Linux系统下安装MySQL的步骤详解CentOS与Ubuntu有什么不同?Linux下如何使用minicom USB串口为什么你可能想要略过Ubuntu 17.04?Linux中7个判断文件系统类型的方法
我收藏的内容
点赞
收藏

51CTO技术栈公众号