我正在做一个网络流记录器,我想设置一些自动化的性能测试。我想把我的测试pcap从一个运行在boot 2docker下的docker镜像中重放到我的程序中。网络的这一面是难倒我。
我可以从运行在boot 2docker下的docker镜像中访问我的桌面(托管boot 2docker vm的机器)(scp/ssh/netcat似乎都能按预期工作)。然而,当我在docker镜像中运行pcap上的tcpreplay时,我从来没有在桌面上看到过流量。
我所尝试的:
- 将pcap中的srcip重写为docker主机的srcip
- tcpdump通过netcat管道传输(netflow是UDP,所以我不关心连接设置)流量通过了,但是我的程序出现了一些异常并死亡。这并不让我感到惊讶,但它确实表明我可以将流量从docker vm中取出并进入我的程序。
- 我可以在一个普通的debian vm中成功地tcpreplay pcap到我的程序中
我需要做什么才能让tcpreplay把我的pcap发送到我的桌面上?
2条答案
按热度按时间qnakjoqk1#
尝试将目标MAC地址更改为docker0的MAC地址,这是默认运行的VM。这对我很有效。
mctunoxg2#
对我来说,它是使用 Docker 桥工作:
然后你可以使用tcpreplay(如https://hub.docker.com/r/dgarros/tcpreplay)预安装的docker镜像,并启动为: