lvs的DR模型工作流程从ip数据层的详细分析

简介:

架构如下

Vip           192.168.16.20

Dip           192.168.16.22

Real server1  192.168.16.2 

Real server2  192.168.16.3 

Real server3  192.168.16.4 

客户端ip                192.168.16.90

关于lvs-DR集群模型的搭建,此处略过。

各服务器的mac地址如下

客户端的mac地址如下

客户端访问vip

访问成功

抓包数据如下

A.客户端抓包数据如下:

由于是一个二层网络环境发送数据包,故封装的有二层数据包

  mac 00:18:38:04:3D:04 为客户端192.168.16.90

目的mac  00:0C:29:E9:96:79            为   vip 192.168.16.20 

 

Tcp序列号为

序列号:                                      416372224  [38/4]

[下一个序列号:]                               416372358

确认号:                                      1733210169  [42/4]

B.lvs上面抓包如下

 

注意,在数据包还未发送到lvs的时候

目标MAC是 

源地址  mac   00:18:38:04:3D:04     为客户端192.168.16.90

目标地址mac   00:0C:29:E9:96:79     为lvs的地址 192.168.16.20 

而此处lvs将数据包的二层重新封装,将目标mac地址更换

源地址  mac    00:0C:29:E9:96:79    lvsmac地址

目标地址mac   00-0c-29-1a-b4-71     realserver1  192.168.16.2

此过程分析:

 

Tcp传输层数据对比

客户端为

 

Lvs端为

 

可以看到的是lvs端并未修改任何tcp层的数据,只重新封装了二层数据包

 

C.real server1上面抓包数据如下

 

源地址  mac   00-0c-29-1a-b4-71       为realserver1的地址192.168.16.2

目标地址mac  00:18:38:04:3D:04       为客户端的地址 192.168.16.90 

   注意,此处的过程是把lvs请求过来的数据给接封装,去掉二层数据包头,提取三层数据包,发现源地址为192.168.16.90,目的地址是192.168.16.20,由于本机已经设置了

arp_ignore=1

arp_announce=2

   这2个参数,故不会把请求再发送给其他机器了。响应192.168.16.90,响应请求数据包。

关于arp这两个参数,请参考我的博客http://itnihao.blog.51cto.com/1741976/752472 ,此处略过。

 

 

此处的tcp序列号为

 

 

和客户端请求的序列号为

 

 

正好符合tcp传输协议规则,关于tcp的分析,请参考我的博客

http://itnihao.blog.51cto.com/1741976/925597 

,到此处,已经完成了一个响应过程。开始传输数据了

 

http/1.1 200 OK 响应完成,

客户端终于可以看到请求http://192.168.16.20的内容了。内容为web1

 

直接请求realserver1

 

说明通过lvs调度访问的是192.168.16.2

至此,lvs模型分析完成,下面用一个原理图来概括总结

 

注:绿色的框代表源mac地址,蓝色的框代表目标msc地址,圆圈代表网卡接口

 

   本文仅对lvs的tcp层数据进行分析,个人理解难免有谬误之处,希望各位大侠们不吝赐教。如有错误之处,希望指点,谢谢!



本文转自it你好 51CTO博客,原文链接:http://blog.51cto.com/itnihao/938389,如需转载请自行联系原作者

相关文章
|
7月前
|
运维 负载均衡 网络协议
LVS详解(六)——LVS DR模式实战
LVS详解(六)——LVS DR模式实战
176 5
|
存储 负载均衡 网络协议
企业实战(13)LVS负载均衡DR(直接路由)模式实战详解(二)
企业实战(13)LVS负载均衡DR(直接路由)模式实战详解(二)
226 0
|
7月前
|
负载均衡 网络协议 算法
LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤
LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤
|
4月前
|
Kubernetes Linux API
在Linux中,LVS-DR模型的特性是什么?
在Linux中,LVS-DR模型的特性是什么?
|
4月前
|
负载均衡 算法 Linux
在Linux中,LVS-NAT模型的特性是什么?
在Linux中,LVS-NAT模型的特性是什么?
|
7月前
|
负载均衡 监控 Linux
CentOS6.5高可用集群LVS+Keepalived(DR模式)
CentOS6.5高可用集群LVS+Keepalived(DR模式)
|
7月前
|
缓存 负载均衡 应用服务中间件
【分布式技术专题】「分析Web服务器架构」Tomcat服务器的运行架构和LVS负载均衡的运行机制(修订版)
在本章内容中,我们将深入探讨 Tomcat 服务器的运行架构、LVS 负载均衡的运行机制以及 Cache 缓存机制,并提供相应的解决方案和指导。通过理解这些关键概念和机制,您将能够优化您的系统架构,提高性能和可扩展性。
328 4
【分布式技术专题】「分析Web服务器架构」Tomcat服务器的运行架构和LVS负载均衡的运行机制(修订版)
|
7月前
|
负载均衡 监控 调度
Keepalived+Lvs(dr)调度器主备配置小实验
Keepalived和LVS(Linux Virtual Server)是两个常用的开源软件,通常结合使用以提供高可用性和负载均衡的解决方案。 Keepalived是一种用于实现高可用性的软件,它可以监控服务器的健康状态,并在主服务器出现故障时自动切换到备份服务器。
235 2
|
存储 负载均衡 网络协议
LVS负载均衡群集—DR直接路由
LVS负载均衡群集—DR直接路由
110 0
|
存储 运维 负载均衡
【分布式技术专题】「LVS负载均衡」全面透析Web基础架构负载均衡LVS机制的原理分析指南
【分布式技术专题】「LVS负载均衡」全面透析Web基础架构负载均衡LVS机制的原理分析指南
314 0
【分布式技术专题】「LVS负载均衡」全面透析Web基础架构负载均衡LVS机制的原理分析指南