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

Routing 通过虚拟机内的多个接口进行多端口转发,routing,vagrant,iptables,netcat,Routing,Vagrant,Iptables,Netcat,我正在尝试创建一个虚拟测试环境。为了进行测试,我将向虚拟机中运行的应用程序发送udp数据包。当应用程序接收到数据包时,我想控制数据包的源ip 我尝试了不同的流浪配置: config.vm.network "forwarded_port", guest: 1111, host: 11111, adapter: 2 或 但是没有成功 在我看来,仅靠流浪汉是无法解决这个问题的。不幸的是,我对iptables/route完全不熟悉 让我更详细地解释这个问题: 理想的情况是能够从虚拟环境本身内部发送此消

我正在尝试创建一个虚拟测试环境。为了进行测试,我将向虚拟机中运行的应用程序发送udp数据包。当应用程序接收到数据包时,我想控制数据包的源ip

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

config.vm.network "forwarded_port", guest: 1111, host: 11111, adapter: 2

但是没有成功

在我看来,仅靠流浪汉是无法解决这个问题的。不幸的是,我对iptables/route完全不熟悉

让我更详细地解释这个问题: 理想的情况是能够从虚拟环境本身内部发送此消息-应用程序正在侦听某个端口P。然后测试脚本将数据发送到host1:port1,它通过一个接口到达,应用程序将其源ip视为1.1.1.1,当脚本将数据包发送到host2:port2时,应用程序将其视为来自2.2.2.2

将它保存在虚拟环境中是很好的,因为我可以在QA本地机器和构建服务器中使用映像,因为它将包含所有内容


如果无法进行此配置(尽管我不知道为什么),请将virtual box配置为具有通过不同接口转发的2个或多个端口,以便向它们发送数据包会产生不同的源地址。

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


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

2-3就足够了。你能提供一个配置示例吗?
config.vm.network "forwarded_port", guest: 1111, host: 11111, host_ip: "x.x.x.x"