对于专家来说,这可能是一个非常简单的问题,但我搞不懂。我的任务是模拟(使用虚拟机)防火墙(PfSense)并将传输的数据过滤到其后面的机器,所以我选择 VirtualBox 作为我的 VMM,我研究的第一件事是网络模式然后我试着规划我需要什么网络模式。
我使用了两个虚拟机(一个用于 PfSense,另一个用于任意操作系统,比如 Ubuntu;我将它们称为 PVM 和 UVM),但对我来说,这些模式都不适合这种情况。例如:
UVM -> internal mode (a network adapter set on internal mode)
问题->根据链接文章,内部模式意味着无法访问互联网(外部世界),所以我根本无法测试防火墙。
UVM -> host-only
问题 -> 与上述问题相同(无法访问互联网)。它用于虚拟机之间的交互以及主机和虚拟机之间的双向连接。
UVM -> NAT
问题 -> 在此模式下,UVM 将与 PVM 隔离。因此,UVM 将拥有自己独立的互联网连接(因此仍然没有防火墙)。当然,使用 NAT 时有一个“端口转发”选项,但它会在主机操作系统和 VM 之间进行端口转发,而不是在 VM 之间进行端口转发。
UVM -> Bridged
问题->与前一个问题相同(隔离且独立的虚拟机)。
UVM -> NAT-Network
问题 -> 尽管 UVM 不再与 PVM 隔离,但仍然可以通过 VirtualBox NAT 引擎访问互联网连接,而不是通过另一个 VM 访问。
后来我读了其他文章,比如这里和一些问答。他们大多建议 UVM 必须位于内部网络中...!但正如我上面所解释的那样,这没有意义。假设我在 PVM 上设置了两个网络适配器:一个 NAT(面向互联网),一个内部(面向内部网络)。那么 UVM 如何能够从互联网发送/接收任何数据包?