问题标签 [tcpreplay]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
166 浏览

windows - sendpfast 错误:尝试执行 [None] 时:“NoneType”类型的参数不可迭代

我正在尝试使用 scapy 的 sendpfast 函数重播文件。但它会引发错误。

我正在使用带有 scapy 2.3.3 的 Windows 7。仅供参考:我没有单独安装 TCPreplay。是不是因为这个?

0 投票
1 回答
4593 浏览

windows - 如何在 Windows 7、64 位上安装 TCPReplay

我正在尝试使用 scapy 的 sendpfast 方法。但它需要在机器上安装 TCPReplay。如果没有 TCPreplay,它会引发错误

任何想法如何在 Windows 7、64 位上安装 TCPReplay?

0 投票
1 回答
513 浏览

pcap - 无法使用带有 tcpreplay 的 CAIDA 数据集来模拟网络中的网络流量

我有一台服务器,我需要模拟真实的网络流量。我被要求使用 CAIDA 数据集来执行此操作。我已经下载了公共数据集,可以在这里找到: CAIDA 公共数据集

我还需要将 .pcap 文件中的源 IP 地址重写为服务器之一。我尝试按照本页末尾描述的方式进行操作:tcprewrite wiki

我跑:

我得到:

警告:oc48-mfn.dirA.20020814-160000.UTC.anon.pcap 是使用 48 字节的 snaplen 捕获的。这可能意味着您截断了数据包。

致命错误:来自 ./plugins/dlt_hdlc/hdlc.c:dlt_hdlc_encode() 第 255 行:非 HDLC 数据包需要 --hdlc-address

因此,经过一些这样的尝试后,我终于运行这些来获得一个无错误的 tcprewrite:

这使:

警告:oc48-mfn.dirA.20020814-160000.UTC.anon.pcap 是使用 48 字节的 snaplen 捕获的。这可能意味着您截断了数据包。

警告:oc48-mfn.dirA.20020814-160000.UTC.anon.pcap 是使用 48 字节的 snaplen 捕获的。这可能意味着您截断了数据包。

然后我运行:

我得到:

警告:oc48-mfn.dirA.20020814-160000.UTC.anon.pcap 是使用 48 字节的 snaplen 捕获的。这可能意味着您截断了数据包。

所以这似乎是成功的,除了在每个命令中显示的警告。我使用 tcpdump 打开新的 .pcap 文件,以检查目标 IP 地址是否已更改为服务器之一,并且已完成。

然后我运行 tcpreplay:

我在服务器上运行 tcpdump 以查看来自 .pcap 文件的流量,但流量如下所示:

13:30:50.194780 05:8c:55:6f:40:00(oui 未知)> 0f:00:08:00:45:00(oui

未知),ethertype 未知(0x3406),长度 60:

0x0000: ed11 f484 7785 f477 0d79 0050 0487 007c ....w..wyP..|

0x0010: e7d5 d203 c32b 5010 27f7 aa51 0000 4854 .....+P.'..Q..HT

0x0020: 5450 0000 0000 0000 0000 0000 0000 TP............

我已经从 tcpreplay 的示例捕获中尝试了 smallFlow.pcap:示例捕获

它工作得很好。

那么关于如何正确使用 CAIDA .pcap 文件的任何建议?

0 投票
1 回答
293 浏览

ethernet - tcpreplay 输出的 tcpdump 与输入不匹配

我有一个问题,在某些机器上,tcpdump 报告的 tcpreplay 输出的字节数与 tcpreplay 的输入不匹配。

具体来说,tcpdump 总是报告比提供给 tcpreplay 的 pcap 多 14 个字节。

为了复制,我使用以下命令在 scapy 中创建了一个简单的数据包: packet = Ether()/IP(dst='1.2.3.4')/TCP()/Raw(load='S:' + ('-' * 64) + ':E') wrpcap("tcp.pcap", packet)

我设置了虚拟接口: ip link add front1 type veth peer name back1 ifconfig back1 up ifconfig front1 up

使用以下命令监视接口的输入: sudo tcpdump -XX -Q out -i front1

然后发送生成的数据包: sudo tcpreplay -i front1 tcp.pcap

tcpdump 监视器产生: 0x0000: d4ae 52c1 2005 2c59 e547 2ca4 0800 4500 ..R...,Y.G,...E. 0x0010: 006c 0001 0000 4006 d31c 9e82 04e7 0102 .l....@......... 0x0020: 0304 0014 0050 0000 0000 0000 0000 5002 .....P........P. 0x0030: 2000 b4a6 0000 533a 2d2d 2d2d 2d2d 2d2d ......S:-------- 0x0040: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- 0x0050: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- 0x0060: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- 0x0070: 2d2d 2d2d 2d2d 2d2d 3a45 0000 0000 5400 --------:E....T. 0x0080: 0000 0000 0000 0000 ........

而原始文件的 tcpdump 会产生: 0x0000: d4ae 52c1 2005 2c59 e547 2ca4 0800 4500 ..R...,Y.G,...E. 0x0010: 006c 0001 0000 4006 d31c 9e82 04e7 0102 .l....@......... 0x0020: 0304 0014 0050 0000 0000 0000 0000 5002 .....P........P. 0x0030: 2000 b4a6 0000 533a 2d2d 2d2d 2d2d 2d2d ......S:-------- 0x0040: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- 0x0050: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- 0x0060: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- 0x0070: 2d2d 2d2d 2d2d 2d2d 3a45 --------:E

也就是说,监视器生成的内容与附加了 14 个额外字节的文件相同。

无论输入的大小如何,这似乎都会发生。

我已验证此问题不会在其他机器上发生,但无法识别导致它发生的设置。

一些版本信息:

$ tcpreplay -V tcpreplay version: 3.4.4 (build 2450) (debug) Copyright 2000-2010 by Aaron Turner <aturner at synfin dot net> Cache file supported: 04 Not compiled with libdnet. Compiled against libpcap: 1.7.4 64 bit packet counters: enabled Verbose printing via tcpdump: enabled Packet editing: disabled Fragroute engine: disabled Injection method: PF_PACKET send() $ tcpdump --version tcpdump version 4.9.2 libpcap version 1.7.4 OpenSSL 1.0.2g 1 Mar 2016

在 Ubuntu 16.04.5 上运行

0 投票
2 回答
7097 浏览

udp - 重放捕获的 udp 流量

我正在尝试使用 TCP 重放发送数据包。该文件是在另一个网络中捕获的,并且包含 UDP 数据包。为了重播,我更改了 src 和目标地址等...使用以下命令:

更改数据包后,我尝试使用 tcpreplay 重播:

tcpdump 显示数据包被重写并且显然没问题:

但是,如果我启动 netcat 来监听 0.0.0.0:6302 端口,我就看不到任何流量!

知道有什么问题吗?

0 投票
1 回答
1592 浏览

tcpdump - tcpreplay 不工作客户端不接收数据

在服务器中

在客户端

然后在客户端

但是当我重播它时,客户端 nc 控制台没有输出

什么原因?我认为执行 tcpreplay 就像从服务器发送数据一样。那么在服务器 nc 控制台中发送数据与在客户端 tcpreplay 之间有什么区别?

0 投票
1 回答
114 浏览

python - 防止 tcpreplay 阻塞 Mininet Python API cmds

我需要执行多个不同的命令来将 pcaps 重播到我的网络中。

第一个 pcap 超过 100 秒,我需要播放它,然后立即播放其他 pcap。

我的问题是,当我在我的 python 代码中执行这一行时:

程序在继续之前等待这 100 秒的 pcap 完成。我需要程序在发送该命令后立即继续。

有没有办法让 tcpreplay 像这样非阻塞?

0 投票
1 回答
95 浏览

pcap - nmap 与 tcpreplay 问题一起使用

我正在受控环境中尝试 SYN 攻击。

我的流程:我使用过滤器启动了 tcpdump 流程,以捕获从一台 PC 到另一台 PC 的数据包,仅输出数据包,我使用 -sS 启动了一个 nmap 进程,我将输出的 SYN 数据包捕获到一个 pcap 文件中。

现在我正在使用 tcpreplay 发送具有不同 --pps (每秒数据包数)的 pcap 文件,以查看是否可以在接收计算机上检测到任何内容。

问题:

  • 通过像这样捕获数据包,我可以一遍又一遍地发送它们(假设每小时,相同的 pcap 文件)还是每次都必须捕获?他们有寿命吗?还是时间戳?(nmap SYN 传出数据包)
0 投票
2 回答
599 浏览

http - GoReplay - 从 .log 而不是 .gor 重播

我正在研究GoReplay以重现昨天发生的部分生产流量。

我想重现的流量已经用 nginx 记录了,我可以保存为 .log 或 .csv 文件。

从我从重播 http 流量文档中可以看出,可以使用如下命令重现流量:

但这需要一个.gor文件。

我的问题是,流量的再现(使用 GoReplay)是否仅限于.gor文件,或者我可以使用 nginx.log文件来这样做吗?

如果这是不可能的,并且鉴于我没有.gor描述昨天请求的文件,您是否建议创建一个文件转换脚本,将日志文件转换为.gor文件,或者您能推荐一个更好的方法吗?

0 投票
1 回答
131 浏览

python-3.x - 为什么子处理 tcprewrite 会导致 EOF 错误?

我正在尝试在带有输入的 python while 循环中使用执行 tcprewrite,但我不断收到 EOF 错误。

我知道执行 tcprewrite 的子处理时输入会导致 EOF 错误。

我试过子处理其他命令,如触摸和日期,它们似乎不会导致 EOF 错误。

我尝试过 subprocess.call、os.system 和 Popen,但是在使用输入的 while 循环中执行 tcprewrite 时,它​​们会给出相同的 EOF 错误。

我可以自己在终端中运行 tcprewrite 命令。

输出: