【发布时间】:2015-09-28 04:31:21
【问题描述】:
我正在尝试创建一个虚拟测试环境。出于测试的目的,我将发送 udp 数据包到在虚拟机内运行的应用程序。我想在应用程序接收到数据包时控制它的源 IP。
我尝试了不同的 vagrant 配置:
config.vm.network "forwarded_port", guest: 1111, host: 11111, adapter: 2
或
config.vm.network "forwarded_port", guest: 1111, host: 11111, host_ip: "x.x.x.x"
但没有成功。
在我看来,这不能仅靠 Vagrant 解决。不幸的是,我对 iptables/route 完全不熟悉。
让我更详细地解释一下这个问题: 理想的情况是能够从虚拟环境本身发送它 - 应用程序正在侦听某个端口 P。然后测试脚本将数据发送到 host1:port1 并且它通过一个接口到达,应用程序将其源 ip 视为 1.1.1.1,并且当脚本向 host2:port2 发送数据包时,应用程序将其视为来自 2.2.2.2。
将它保存在虚拟环境中很好,因为我可以在 QA 本地机器和构建服务器之间只使用该图像,因为它将包含所有内容。
如果这种配置是不可能的(虽然我不明白为什么),配置虚拟盒有 2 个(或更多)端口通过不同的接口转发,以便向它们发送数据包会导致不同的源地址。
【问题讨论】:
标签: routing vagrant iptables netcat