我有一台服务器,我需要模拟真实的网络流量。我被要求使用 CAIDA 数据集来执行此操作。我已经下载了公共数据集,可以在这里找到: CAIDA 公共数据集
我还需要将 .pcap 文件中的源 IP 地址重写为服务器之一。我尝试按照本页末尾描述的方式进行操作:tcprewrite wiki
我跑:
tcprewrite --infile=oc48-mfn.dirA.20020814-160000.UTC.anon.pcap --outfile=oc48-mfn.dirA.20020814-160000.UTC.anon_rewrite.pcap --dstipmap=0.0.0.0/0:10.101.30.60 --enet-dmac=00:0c:29:00:b1:bd
我得到:
警告:oc48-mfn.dirA.20020814-160000.UTC.anon.pcap 是使用 48 字节的 snaplen 捕获的。这可能意味着您截断了数据包。
致命错误:来自 ./plugins/dlt_hdlc/hdlc.c:dlt_hdlc_encode() 第 255 行:非 HDLC 数据包需要 --hdlc-address
因此,经过一些这样的尝试后,我终于运行这些来获得一个无错误的 tcprewrite:
tcpprep --auto=bridge --pcap=oc48-mfn.dirA.20020814-160000.UTC.anon.pcap --cachefile=cache1.cache
这使:
警告:oc48-mfn.dirA.20020814-160000.UTC.anon.pcap 是使用 48 字节的 snaplen 捕获的。这可能意味着您截断了数据包。
警告:oc48-mfn.dirA.20020814-160000.UTC.anon.pcap 是使用 48 字节的 snaplen 捕获的。这可能意味着您截断了数据包。
然后我运行:
tcprewrite --infile=oc48-mfn.dirA.20020814-160000.UTC.anon.pcap --outfile=oc48-mfn.dirA.20020814-160000.UTC.anon_rewrite.pcap --dstipmap=0.0.0.0/0:10.101.30.60 --enet-dmac=00:0c:29:00:b1:bd --cachefile=cache1.cache --hdlc-control=0 --hdlc-address=0xBF
我得到:
警告:oc48-mfn.dirA.20020814-160000.UTC.anon.pcap 是使用 48 字节的 snaplen 捕获的。这可能意味着您截断了数据包。
所以这似乎是成功的,除了在每个命令中显示的警告。我使用 tcpdump 打开新的 .pcap 文件,以检查目标 IP 地址是否已更改为服务器之一,并且已完成。
然后我运行 tcpreplay:
tcpreplay -i ens160 --loop 5 --unique-ip oc48-mfn.dirA.20020814-160000.UTC.anon.pcap
我在服务器上运行 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 文件的任何建议?