Networking 使用虚拟机的线性拓扑

Networking 使用虚拟机的线性拓扑,networking,virtualbox,internal,Networking,Virtualbox,Internal,我正在使用virtual box实例化3台虚拟机A、B、C。我希望A和C都能够与B通信。更简单地说,我需要A、B和C之间的线性拓扑[ABC] 我在每个虚拟机的网络设置中使用“内部网络”模式。我能够使用B ping A和C,但是,当我在VM_A上执行tracepath to C时,它无法到达,而不是将A、B、C显示为跳跃 VM_B有2个适配器,每个适配器分别连接到内部网络“neta”和“netc” 我不能用迷你网来做这件事。以前有人使用多个虚拟机进行过这种模拟吗?您的虚拟机来宾是否设置为充当IP路

我正在使用virtual box实例化3台虚拟机A、B、C。我希望A和C都能够与B通信。更简单地说,我需要A、B和C之间的线性拓扑[ABC]

我在每个虚拟机的网络设置中使用“内部网络”模式。我能够使用B ping A和C,但是,当我在VM_A上执行tracepath to C时,它无法到达,而不是将A、B、C显示为跳跃

VM_B有2个适配器,每个适配器分别连接到内部网络“neta”和“netc”


我不能用迷你网来做这件事。以前有人使用多个虚拟机进行过这种模拟吗?

您的虚拟机来宾是否设置为充当IP路由器?(取决于操作系统您是如何做到这一点的,或者您是否能够做到这一点)VM_B是一个linux(ubuntu)实例,使用echo 1>/proc/sys/net/ipv4/ip_Forward设置为路由器VM_a需要一个到VM_C子网的静态路由,VM_B作为网关,在VM_C上也是如此。除非VM_B已经是VM_A和VM_C的默认网关。请确保VM上没有任何防火墙规则阻止您想要的通信。确保
cat/proc/sys/net/ipv4/ip_forward
读回1。我已使用此命令添加了一个静态路由,但这似乎无法解决问题,sudo route add-net VM_C netmask 255.255.255.0 gw VM_B?还有其他的规格吗?没有,可能就是这个。您需要在VM_C上执行相同的操作,路由add-net VM_A netmask 255.255.255.0 gw VM_B。然后使用tcpdump开始调试。看看数据包的结尾。它们是否出现在VM_B上的适配器1上?它们是否出现在VM_B上的适配器2上?它们是否出现在VM_C上?