通过虚拟机内的多个接口进行多端口转发

时间:2015-09-28 04:31:21

标签: routing vagrant iptables netcat

我正在尝试创建一个虚拟测试环境。出于测试目的,我将把udp数据包发送到在虚拟机内运行的应用程序。我希望在应用程序收到数据包时控制数据包的源IP。

我尝试了不同的流浪汉配置:

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个(或更多)端口,以便向它们发送数据包会产生不同的源地址。

1 个答案:

答案 0 :(得分:0)

这部分取决于您想要生成的唯一源地址的数量。使用just vagrant,您可以将测试环境中的多台计算机配置为专用网络的一部分,并将一台计算机选为应用程序服务器,将其他计算机选为客户机。这样做的好处是,您可以为每个客户端配置不同的IP地址。

但是,如果您希望生成超出可以运行的VM客户端数量的各种源IP地址,则可以查看ifconfig以在主机的虚拟接口上创建vlan并测试DNS或测试环境中的单个VM。