我有一台服务器,我需要模拟真实的网络流量。我已被要求使用CAIDA数据集执行此操作。我已经下载了公共数据集,可以在这里找到: CAIDA Public Dataset
我还需要将.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地址是否已更改为服务器的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 Unknown)> 0f:00:08:00:45:00(oui
未知),ethertype未知(0x3406),长度60:
0x0000:ed11 f484 7785 f477 0d79 0050 0487 007c .... w..w.y.P ... |
0x0010:e7d5 d203 c32b 5010 27f7 aa51 0000 4854 ..... + P。' .. Q..HT
0x0020:5450 0000 0000 0000 0000 0000 0000 TP ............
我已经尝试过tcpreplay的样本捕获中的smallFlow.pcap:Sample Captures
它运作得很好。
那么有关如何正确使用CAIDA .pcap文件的任何建议?
答案 0 :(得分:0)
您声明的目标是“我需要模拟真实的网络流量”,但您使用的是“有效负载已从所有数据包中删除”的pcaps(根据您链接到的CAIDA网页)。
这两个陈述相互冲突。你的所有数据包实际上都不超过48字节,这对于TCP / IP报头来说已经足够了(然后即便如此,在所有情况下都可能不够)。这就是警告告诉你的。你不能把数据放回来。
你需要找到一个新的pcaps来源。