【问题标题】:Automation of scripts to sync generation and capture of packets between different machines for different iterations自动化脚本以在不同机器之间同步生成和捕获数据包以进行不同的迭代
【发布时间】:2016-10-07 03:35:19
【问题描述】:

我有以下场景

机器 A:(发电机)

我正在机器 A 上使用 tcpreplay 生成流量。

所以生成器脚本会调用如下

tcpreplay --loop=100000 --intf1=eth0 64.pcap
# then I do the above for other pcaps, 128.pcap, 256.pcap etc 

机器 B:(监控和处理)

将捕获数据并处理它们,

以下是要包含在接收脚本中的项目。

#calls my capture daemon, should run even before the generator starts
./capture_start # takes some time to process

 # Here I need to stop the process (ctrl+c), then it will output file1.dat files

 # process the file1.dat
./capture_processing -i file1.dat -o file2.dat # generates file2.dat

 # analyze the file2.dat and generate the final result 
./capture_analysing file2.dat >> 64.log #similarly for other logs

我可以分别为机器 A 和 B 自动执行上述操作。

但是我如何同步机器 A 和机器 B(即机器 B 启动捕获守护程序,然后机器 A 开始生成,一旦所有数据包到达机器 B 停止并开始处理)。这会持续几个数据包大小的循环。

如何自动执行上述操作以运行多次迭代并返回日志。 欢迎任何建议/cmets。

【问题讨论】:

  • 机器A和B是python脚本吗?
  • 很抱歉给您带来了困惑。机器 A 和 B 是服务器,它们分别运行用于生成和捕获流量的脚本。我已经编辑了我的问题以明确。谢谢
  • *nix 服务器还是 Windows?
  • *nix 服务器(运行 Ubuntu)

标签: python shell networking scripting automation


【解决方案1】:

有很多方法可以解决这个问题。 我将使用机器 B 通过sockets 控制机器 A,并使用您实现的代码来向/从每台机器发送和处理特定命令/消息。

您仍然需要在两台机器上启动您的脚本/守护程序。

您的流程将类似于:

  1. 在机器 A 上启动脚本,它侦听/等待特定端口上的命令
  2. 在机器 B 上启动脚本
  3. 调用./capture_start(在与您的“命令”套接字不同的端口上发送和捕获流量)
  4. 为机器 A 打开一个套接字,发送“生成流量”命令
  5. 机器 A 接收请求,生成流量,向机器 B 发送“我完成了”响应
  6. 机器 B 从机器 A 接收到“我完成了”,并进行捕获处理和分析

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-18
    • 2014-07-16
    相关资源
    最近更新 更多