标签: tcpreplay

重放捕获的 udp 流量

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

tcprewrite --infile=original.cap --outfile=changed.cap --srcipmap=0.0.0.0/0:<MY HOST IP>/32 --dstipmap=0.0.0.0/0:<MY HOST IP>/32 --enet-dmac=<enp0s25 mac addr> --enet-smac=<enp0s25 mac addr> --fixcsum
Run Code Online (Sandbox Code Playgroud)

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

sudo tcpreplay --intf1=enp0s25  changed.cap
Run Code Online (Sandbox Code Playgroud)

tcpdump 显示数据包已被重写并且显然正常:

[root@localhost ~]# tcpdump -i enp0s25 udp port 6302 
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp0s25, link-type EN10MB (Ethernet), capture size 262144 bytes
09:31:56.758809 IP localhost.localdomain.qb-db-server > localhost.localdomain.6302: UDP, length 673
09:31:56.758836 IP localhost.localdomain.12608 > localhost.localdomain.6302: UDP, length 669
09:31:56.758845 IP localhost.localdomain.13024 > …
Run Code Online (Sandbox Code Playgroud)

udp tcpreplay

5
推荐指数
1
解决办法
1万
查看次数

在环回上重放 pcap

我有一组pcap包含来自两台主机的 UDP 流量的文件,并且必须定期对此流量执行一些分析。

理想情况下,我希望避免频繁设置具有特定 IP 的本地接口等来重播这些文件。我希望能够简单地在我的环回接口上重播它们,使用tcprewrite更改pcap.

这是它目前的样子:

# Remove mac addresses for loopback interface
# Remove VLAN tags
tcprewrite \
  --enet-smac=00:00:00:00:00:00 \
  --enet-dmac=00:00:00:00:00:00 \
  --enet-vlan=del \
  --infile="${INFILE}" \
  --outfile="${OUTFILE}.tmp"

# Change source and destination IP to loopback
# Regenerate IP checksums
tcprewrite \
  --srcipmap=0.0.0.0/0:127.0.0.1 \
  --dstipmap=0.0.0.0/0:127.0.0.1 \
  --fixcsum \
  --infile="${OUTFILE}.tmp" \
  --outfile="${OUTFILE}"
Run Code Online (Sandbox Code Playgroud)

看起来差不多可以工作了。然后我可以简单地使用我的环回重播这些文件,tcpreplay并且我看到数据包使用tcpdumpon lo。尽管如此,似乎任何常规用户空间套接字都看不到环回上的此流量。

据我了解,这似乎与Linux上环回接口处理第2层的方式有关。看来我需要将第 2 层标头 (DLT) 从普通协议重写ethernetnullBSD 环回使用的协议。

任何有将以太网上捕获的 UDP 流量重放到环回接口的经验的人将不胜感激。pcap我不知道如何使用/来实现这一点,或者是否可行 …

loopback tcpdump pcap tcpreplay

5
推荐指数
0
解决办法
1017
查看次数

tcpreplay 不工作客户端未收到数据

在服务器中

\n\n
# nc -lp 2424\nhi server\nhi client\n1\n2\n3\n
Run Code Online (Sandbox Code Playgroud)\n\n

在客户端

\n\n
\xe2\x9e\x9c  ~ nc 139.224.xxx.xx 2424\nhi server\nhi client\n1\n2\n3\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后在客户端

\n\n
\xe2\x9e\x9c  ~ sudo tcpdump -i en0 -nn -s0 -v src port 2424 -c 10 -w 2424.pcap\ntcpdump: listening on en0, link-type EN10MB (Ethernet), capture size 262144 bytes\n10 packets captured\n93 packets received by filter\n0 packets dropped by kernel\n\n\xe2\x9e\x9c  ~ tcpdump -r 2424.pcap\nreading from file 2424.pcap, link-type EN10MB (Ethernet)\n16:49:47.874743 IP 139.224.xxx.xx.kofax-svr > 192.168.199.171.53511: Flags [P.], seq 2832846522:2832846524, ack 587632101, win 227, options …
Run Code Online (Sandbox Code Playgroud)

tcpdump netcat tcpreplay

4
推荐指数
1
解决办法
2444
查看次数

标签 统计

tcpreplay ×3

tcpdump ×2

loopback ×1

netcat ×1

pcap ×1

udp ×1