无法使用CAIDA数据集和tcpreplay来模拟网络中的网络流量

时间:2017-11-13 11:46:34

标签: pcap network-traffic traffic-simulation tcpreplay

我有一台服务器,我需要模拟真实的网络流量。我已被要求使用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文件的任何建议?

1 个答案:

答案 0 :(得分:0)

您声明的目标是“我需要模拟真实的网络流量”,但您使用的是“有效负载已从所有数据包中删除”的pcaps(根据您链接到的CAIDA网页)。

这两个陈述相互冲突。你的所有数据包实际上都不超过48字节,这对于TCP / IP报头来说已经足够了(然后即便如此,在所有情况下都可能不够)。这就是警告告诉你的。你不能把数据放回来。

你需要找到一个新的pcaps来源。