我的设备是基于 Linux 的 IP 内联设备,对于网络外围设备来说是透明的,也就是说,它的任何接口都没有分配 IP 地址。
为了方便讨论,我们以 ADSL 连接为例,当设备检查双向流量时,网络的行为就像设备不存在一样,连接到电线(参见附图中的物理设置)。
我想知道我是否可以将该“设备”封装在 Windows 机器中并使其虚拟运行,以便它仍然通过使用虚拟 NIC(或 Windows 中的任何其他名称)位于 ADSL 路由器和 Windows 网络接口之间,并检查流量,就像在单独的物理设备上一样,附图中“虚拟设置”下的绘图显示了我想要实现的目标。
阅读 VirtualBox 文档后,似乎绑定右侧相对简单,也许我应该将一个网络适配器设置为桥接网络并且 VirtualBox 会将其连接到主机上的物理 NIC,并直接交换网络数据包,从而绕过主机操作系统的网络堆栈(在我的情况下是 WinXP)。
但是,我不知道如何实现图表的左侧,这需要在 Windows 中添加虚拟 NIC 并以正确方式配置它们以使该管道成为可能。
我将不胜感激任何帮助。
顺便说一句,如果 VirtualBox 无法实现这一点,但其他虚拟化解决方案(例如 VMWare)可以实现,我也会接受其他解决方案。
答案1
您可以为您的设备分配多个虚拟 NIC,这些虚拟 NIC 与相同或单独的物理 NIC“匹配”(取决于您的物理网络布局/配置)。
答案2
桥接网络可以通过 libvirt/kvm 轻松实现,使用连接到物理 NIC 的普通 Linux 桥接接口和 TUN 驱动程序