`
xitong
  • 浏览: 6200030 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

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

时间2012-07-22

作者itnihao邮箱itnihao@qq.com

博客 http://itnihao.blog.51cto.com

Vip 192.168.16.20

Realserver1192.168.16.2

Realserver3192.168.16.4

序列号:416372224[38/4]

确认号:1733210169[42/4]

B.在lvs上面抓包如下

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

目标MAC

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

目标地址mac00:0C:29:E9:96:79lvs的地址192.168.16.20

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

源地址mac00:0C:29:E9:96:79lvsmac地址

目标地址mac00-0c-29-1a-b4-71realserver1192.168.16.2

此过程分析:

Tcp传输层数据对比

客户端为

Lvs端为

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

C.realserver1上面抓包数据如下

源地址mac00-0c-29-1a-b4-71realserver1的地址192.168.16.2

目标地址mac00: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.1200OK响应完成,

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

直接请求realserver1

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

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

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

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

本文出自 “itnihao的运维技术博客” 博客,请务必保留此出处http://itnihao.blog.51cto.com/1741976/938389


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics