问题标签 [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.
tcpdump - TCPDump 和 TCPReplay 记录和重播对应用服务器的请求
TCPDump 和 TCPReplay 能否用于记录(tcpdump)进入应用服务器/webserver/队列应用等的网络流量,然后使用 TCPReplay 上的转储进行重放?
假设我设置了一个 apache 服务器并使用 TCPDump 捕获整个网络流量并将其转储到文件中。现在我在另一台机器上运行 apache,并希望使用该文件将流量重播到这个新的 apache 服务器。我怎样才能做到这一点?
我特别想了解 TCPReplay 在这种情况下是如何工作的。即 syn/ack 响应如何为 TCP 工作。如何启动新的连接等?
pcap - 我正在尝试重播其他人为我捕获的 pcap 文件(我假设他们使用了 tcpdump)
Linux 命令:
输出:
我不明白为什么会这样?谁能帮我吗?
networking - 重放使用 tcpreplay 捕获的流量
我们有包含 TCP 数据包的 PCAP 转储。这些数据包在网络接口上被捕获。
现在我想从我的"Server A" ----> "Server B"
. 服务器“A”和服务器“B”在局域网中,中间有一个交换机。
为了将流量从“A”发送到“B”,我们将 PCAP 文件中数据包的 dst Ip 和 dst MAC 更改为服务器B的 dst IP 和 dst MAC 。
下面是使用的命令
然后我们使用以下命令重放来自服务器“A” eth0的流量
"B"的Eth0可以从"B"到达。
有了以上内容,我希望在服务器“B”的 eth0 上看到数据包。但我在服务器B上没有看到任何数据包。你能帮我解决这个问题吗?
谢谢
networking - 如何使用 tcpreplay 重放 PGM 协议的网络流量?
我想将网络流量多播到特定的多播目标 IP 地址。在输入 pcap 文件中,PGM 协议数据包可用。
我正在执行以下 tcpreplay 步骤以通过网络多播 pcap 文件-
重写 pcap 文件中可用的目标和源 mac 地址
tcprewrite --enet-dmac=目标 Mac 地址 --enet-smac=源 Mac 地址 --infile=input.pcap --outfile=output.pcap
获取缓存文件,在重写 IP 地址时使用。
tcpprep --auto=bridge --pcap=output.pcap --cachefile=input.cache
重写 IP 地址
tcprewrite --endpoints=目标多播 IP 地址:源接口 IP 地址 --cachefile=input.cache --infile=output.pcap --outfile=newoutput.pcap
最后多播newoutput.pcap。
sudo tcpreplay --mbps=2.0 --intf1=eth0 newoutput.pcap
但在第 1 步中,我面临以下错误 -
tcprewrite.c:post_args() 第 225 行中的警告:使用 9216 字节的 snaplen 捕获了 testsg.pcap。这可能意味着您截断了数据包。
另一方面,我正在尝试使用以下命令进行捕获-
tcpdump -n "dst host 目标多播 IP 地址和 dst port 目标端口号"
但即使是一个数据包也不会在另一侧被捕获。
以前我正在发送 UDP 协议捕获 pcap 文件,当时我正在正确获取所有数据包。
现在我无法理解与 PGM 数据包相关的问题是什么,以及为什么这些数据包没有在另一端被捕获。如何使用目标多播 IP 地址在网络上成功重播这些网络流量?
wireshark - tcpreplay,与 pcap 文件不同的数据包号
我有一个pcap文件,用 Wireshark 捕获,有2690个数据包
我使用tcpreplay在接口上重放它,
但问题是 tcpreplay 中尝试的数据包数量与 Wireshark 中显示的数据包数量不同(更少)
tcp - Tcpreplay 参数和 CPU 使用率
我使用 Scapy 创建了一个 UDP 文件,并且正在使用 tcpreplay 发送数据包。我遇到了两个奇怪的问题:
- 发送的数据包数量与 (--pps) 参数不同。不确定答案是否是(http://tcpreplay.appneta.com/wiki/faq.html#why-doesnt-tcpreplay-send-traffic-as-fast-as-i-told-it-to)
- 当我发送较少的数据包时,即--pps=10,当我发送更多的数据包时,CPU 负载较高,即--pps=200。我期待着相反的方式。
顺便说一句,我正在使用 tcpreplay 版本 3.4.4
udp - 分段 UDP 帧 - 使用 tcpreplay 或 scapy 发送时仅接收一帧
我正在从一个包含单个 UDP 数据报的 .pcap 文件重播,该数据报已被分割成两个帧。使用 tcpreplay 或 scapy 时,两个程序都表示它们都发送了两个帧,但我在直接连接的设备上只收到 1。任何想法为什么?
数据包捕获位于此处
编辑:连接的设备是防火墙,我正在运行 tcpdump,所以我希望看到两个帧
Edit2:防火墙上的 tcpdump 应该打印它收到的所有数据包,即使它由于某种原因被丢弃。但是,这是 tcpdump 打印的唯一数据包:
968.681737 lan in 172.23.0.5.1812 -> 172.16.0.4.37507: udp 1434 (frag 4486:1424@0+)
stdin - 与 POpen/stdin/scapy/tcpreplay 混淆
我试图在这里模拟代码:Scapy and tcpreplay: bypass temporary file for performance
当我尝试运行该代码时,此行出现 Python 错误:
错误说
我认为我收到了该错误,因为子进程在将任何内容写入标准输入之前尝试从标准输入读取。
有什么建议么?
wireshark - 如何修改 .pcap 文件的时间戳范围?
问题
我需要修改在 5 分钟内捕获的 .pcap 文件,以便模拟在 20 分钟内捕获的 .pcap 文件。问题是我不知道该怎么做。
例子
为了说明这个问题,假设我有一个 .pcap 文件,其中包含 4 个捕获的数据包p1
-p4
并且t
作为开始时间:
p1
在t
+ 0 分钟发送p2
在t
+ 1 分钟发送p3
在t
+ 2 分钟发送p4
在t
+ 3 分钟发送
我希望生成的 .pcap 文件包含相同的四个数据包,但时间戳按比例缩放(从 5 分钟到 20 分钟),以便它们表示以下内容:
p1
在t
+ 0 分钟发送p2
在t
+ 4 分钟发送p3
在t
+ 8 分钟发送p4
在t
+ 12 分钟发送
尝试过的解决方案
editcap
,但是我可以在这里找到的唯一选项是使用该选项调整具有设定值的所有时间戳-t
。
背景
我正在使用tcpreplay
重播用户浏览网页的场景。我同时注入了一些依赖于我重放的 .pcap 文件的数据包,即这些数据包是通过实时监控重放流量并随后调整它发出的数据包来注入的。这整个流量跟踪——即重放的流量和注入的数据包——都是使用tcpdump
. 由于我要重播很多大型 .pcap 文件,因此我使用该tcpreplay --multiplier
选项来加快进程。但是,这意味着最终捕获的是原始 .pcap 文件的压缩版本。我想将新创建的 .pcap “拉伸”为与原始文件相同的大小。