记一次抓包分析四层负载均衡TCP数据包转发

笔者在研究四层负载均衡的时候,有读到这么一篇博客:

https://blog.csdn.net/friends99/article/details/79803638

文中提到的一点笔者存在一些困惑,我把原文截图出来:
在这里插入图片描述

对于文章中的描述,笔者不是太理解为什么服务器会和客户端直接建立连接,负载均衡会修改数据包源地址又是什么意思?所以下面笔者做了实验并抓包分析。

首先第一次使用的是haproxy,实验拓扑如下
在这里插入图片描述

笔者将环境部署好后,用client去访问负载均衡以请求web内容,同时分别在haproxy的内网口和client的网口上抓包进行查看,下面的截图是抓到的包中笔者认为比较重要的部分:

haproxy内网口

在这里插入图片描述

client网口
在这里插入图片描述

从抓到的数据包中可以分析TCP三次握手与四次挥手,负载均衡以源IP为自己,目的IP为后端的web,将数据包进行了转发,可证实博客中我划了红线的部分

下面是对蓝线部分的抓包分析,拓扑类似,仅将haproxy换成了lvs

以同样的方法进行抓包,得到:

client网口,lvs起转发作用

在这里插入图片描述

lvs内网口,可以看到web是直接将数据包回给client的

在这里插入图片描述

这里我的理解是,lvs将client的请求进行转发,转发的时候将包的源地址(本来应该是lvs)改成了client,web根据接收请求数据包的源地址,在回包的时候直接将数据包路由给client。我想到的这么做的理由是,client来自外网,那web向client回数据必定需要路由,若负载均衡不是网关且不修改转发的包的源地址(这样的话源地址是负载均衡),那么web将会把包回给负载均衡设备,负载均衡再经过网关将数据路由给client……这么做相当于回包的时候还要从负载均衡走一趟,浪费资源。

通过上面两次观察,笔者大致能理解博客中所说的意思,只是不知道有没有理解偏差。欢迎广大读者留下建议,若文章中有什么不对的地方也请批评指出。感谢!!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值