测试keepalived在DR模式下VIP转发数据到RIP的过程

简介:

测试keepalived在DR模式下VIP转发数据到RIP的过程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
此处测试环境约定:
【Client】                            CIP = 10.0.200.22       MAC = 8c:89:a5:96:4c:b2(假设为11:11:11:11:11:11)
【Director】      VIP = 10.0.205.100  DIP = 10.0.200.21       MAC = 8c:89:a5:96:51:cf(假设为22:22:22:22:22:22)
【RealServer】                        RIP = 10.0.205.2        MAC = 08:00:27:3b:62:f5(假设为33:33:33:33:33:33)
 
1)【Client】 ARP Request  who  has 10.0.205.100 tell 10.0.200.22
CIP = 10.0.200.22
MAC = 11:11:11:11:11:11
 
2)【Director】响应1,ARP Reply 10.0.205.100 is-at 22:22:22:22:22:22
VIP = 10.0.205.100
DIP = 10.0.200.21
MAC = 22:22:22:22:22:22
 
3)【Client】发送TCP SYN
CIP = 10.0.200.22   MAC = 11:11:11:11:11:11
->
VIP = 10.0.205.100  MAC = 22:22:22:22:22:22
 
4)【Director】选一个【RealServer】,改数据包里的MAC为RIP的MAC,转发给RIP
CIP = 10.0.200.22   MAC = 11:11:11:11:11:11
->
VIP = 10.0.205.100  MAC = 33:33:33:33:33:33
 
 
5)【RealServer】收包,发ARP,Request  who  has 10.0.200.22 tell 10.0.205.2
6)【Client】响应5)ARP Reply 10.0.200.22 is-at 11:11:11:11:11:11
7)【RealServer】使用VIP回应3
 
 
实测抓包内容:
[root@svr200-22 ~] # tcpdump -nn host 10.0.200.22 and \(10.0.200.21 or 10.0.205.100 or 10.0.205.2\)
tcpdump: verbose output suppressed, use - v  or -vv  for  full protocol decode
listening on eth0, link- type  EN10MB (Ethernet), capture size 65535 bytes
18:08:31.342062 ARP, Request  who -has 10.0.205.100 tell 10.0.200.22, length 28
18:08:31.342627 ARP, Reply 10.0.205.100 is-at 8c:89:a5:96:51:cf, length 46
18:08:31.342637 IP 10.0.200.22.58914 > 10.0.205.100.80: Flags [S],  seq  3567838243, win 14600, options [mss 1460,sackOK,TS val 373309346 ecr 0,nop,wscale 7], length 0
18:08:31.343842 ARP, Request  who -has 10.0.200.22 tell 10.0.205.2, length 46
18:08:31.343854 ARP, Reply 10.0.200.22 is-at 8c:89:a5:96:4c:b2, length 28
18:08:31.344629 IP 10.0.205.100.80 > 10.0.200.22.58914: Flags [S.],  seq  4193479915, ack 3567838244, win 14480, options [mss 1460,sackOK,TS val 27450580 ecr 373309346,nop,wscale 6], length 0
18:08:31.344649 IP 10.0.200.22.58914 > 10.0.205.100.80: Flags [.], ack 1, win 115, options [nop,nop,TS val 373309348 ecr 27450580], length 0
18:08:39.260264 IP 10.0.200.22.58914 > 10.0.205.100.80: Flags [P.],  seq  1:6, ack 1, win 115, options [nop,nop,TS val 373317264 ecr 27450580], length 5
18:08:39.261438 IP 10.0.205.100.80 > 10.0.200.22.58914: Flags [.], ack 6, win 227, options [nop,nop,TS val 27458498 ecr 373317264], length 0
18:08:39.261637 IP 10.0.205.100.80 > 10.0.200.22.58914: Flags [P.],  seq  1:174, ack 6, win 227, options [nop,nop,TS val 27458498 ecr 373317264], length 173
18:08:39.261663 IP 10.0.200.22.58914 > 10.0.205.100.80: Flags [.], ack 174, win 123, options [nop,nop,TS val 373317265 ecr 27458498], length 0
18:08:39.261670 IP 10.0.205.100.80 > 10.0.200.22.58914: Flags [F.],  seq  174, ack 6, win 227, options [nop,nop,TS val 27458498 ecr 373317264], length 0


wKioL1UY63TA2L9sAAS3btzknNo352.jpg


本文转自 pcnk 51CTO博客,原文链接:http://blog.51cto.com/nosmoking/1626394,如需转载请自行联系原作者

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
8月前
|
分布式计算 Shell MaxCompute
odps测试表及大量数据构建测试
odps测试表及大量数据构建测试
|
9月前
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
110 11
|
9月前
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
134 10
|
10月前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法。本文介绍 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,同时提供 Python 实现示例,强调其在确保项目性能和用户体验方面的关键作用。
321 6
|
11月前
|
机器学习/深度学习 监控 计算机视觉
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
本文介绍了如何使用YOLOv7进行目标检测,包括环境搭建、数据集准备、模型训练、验证、测试以及常见错误的解决方法。YOLOv7以其高效性能和准确率在目标检测领域受到关注,适用于自动驾驶、安防监控等场景。文中提供了源码和论文链接,以及详细的步骤说明,适合深度学习实践者参考。
2734 1
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
10月前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目效果的重要手段
在数据驱动时代,A/B 测试成为评估机器学习项目效果的重要手段。本文介绍了 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,强调了样本量、随机性和时间因素的重要性,并展示了 Python 在 A/B 测试中的具体应用实例。
238 1
|
11月前
|
存储 测试技术 数据库
数据驱动测试和关键词驱动测试的区别
数据驱动测试 数据驱动测试或 DDT 也被称为参数化测试。
203 1
|
11月前
|
SQL 分布式计算 Hadoop
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
164 4
|
11月前
|
机器学习/深度学习 并行计算 数据可视化
目标分类笔记(二): 利用PaddleClas的框架来完成多标签分类任务(从数据准备到训练测试部署的完整流程)
这篇文章介绍了如何使用PaddleClas框架完成多标签分类任务,包括数据准备、环境搭建、模型训练、预测、评估等完整流程。
778 0
目标分类笔记(二): 利用PaddleClas的框架来完成多标签分类任务(从数据准备到训练测试部署的完整流程)
|
11月前
|
机器学习/深度学习 数据采集 算法
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
这篇博客文章介绍了如何使用包含多个网络和多种训练策略的框架来完成多目标分类任务,涵盖了从数据准备到训练、测试和部署的完整流程,并提供了相关代码和配置文件。
379 0
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)