我有一个服务器,我需要模拟真实的网络流量。我被要求使用CAIDA数据集来做这件事。我已经下载了公共数据集,可以在这里找到:CAIDA公共数据集
我还需要重写.pcap文件中的源ip地址才能成为服务器之一。我试着按照本页末尾描述的方式来做:tcprewrite
我跑:
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我得到了:
警告: of 48 -mfn.dirA.20020814-160000.UTC.anon.pcap是使用48字节的snaplen捕获的。这可能意味着您已经截断了数据包。 致命错误: From ./plugins/dlt_hdlc/hdlc.c:dlt_hdlc_encode()第255行:非hdlc数据包要求--hdlc-地址
因此,在这样的尝试之后,我终于运行了这些来获得一个无错误的tcprewrite:
tcpprep --auto=bridge --pcap=oc48-mfn.dirA.20020814-160000.UTC.anon.pcap --cachefile=cache1.cache这意味着:
警告: of 48 -mfn.dirA.20020814-160000.UTC.anon.pcap是使用48字节的snaplen捕获的。这可能意味着您已经截断了数据包。 警告: of 48 -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我得到了:
警告: of 48 -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:6:40:00(我不知道)>0:00:08:00:45:00 (未知数),以太型未知(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 000 TP.
我从tcpreplay:样本捕获的示例捕获中尝试了样本捕获。
而且效果很好。
那么,对于如何正确使用CAIDA .pcap文件,有什么建议吗?
发布于 2017-11-13 21:17:10
您声明的目标是“我需要模拟真实的网络流量”,但是您使用的是pcaps,其中“从所有数据包中删除了有效负载”(根据您链接到的CAIDA网页)。
这两种说法相互冲突。您的所有数据包实际上都不大于48字节,这对于TCP/IP报头来说仅仅是足够的(即便如此,也不可能在所有情况下都足够)。这就是警告告诉你的。你不能把数据放回去。
你需要找到一个新的pcaps来源。
https://stackoverflow.com/questions/47263589
复制相似问题