桥接网络在 Virtualbox 中如何工作?

桥接网络在 Virtualbox 中如何工作?

桥接网络如何工作?

我已浏览过 VirtualBox 手册,但没有找到任何极其技术性的内容(只是对主题进行了泛泛的介绍)。

  • 它是如何给虚拟机分配不同的IP但使用同一个网卡的呢?
  • 为什么这个不同的 IP(我ip addr在 Linux 下发现)没有出现在我的路由器的“附加设备部分”下,但我可以将端口转发到它?
  • 为什么如果我连接到受密码保护的 WiFi 网络,它不需要我输入密码?
  • 这是多宿主吗?

答案1

摘自 VirtualBox 手册虚拟网络第 6 章桥接网络

使用桥接网络时,VirtualBox 使用主机系统上的设备驱动程序来过滤来自物理网络适配器的数据。因此,此驱动程序称为“网络过滤器”驱动程序。这允许 VirtualBox 拦截来自物理网络的数据并将数据注入其中,从而有效地在软件中创建一个新的网络接口。当客户机使用这种新的软件接口时,主机系统会认为客户机使用网络电缆物理连接到接口:主机可以通过该接口向客户机发送数据并从中接收数据。这意味着您可以在客户机和网络的其余部分之间设置路由或桥接。

来自维基百科桥接(网络)

网桥是连接多个网段的网络设备。在 OSI 模型中,前两层起桥接作用,位于网络层之下。

我个人没有在这些网络层面上工作的经验,但从上面来看,VirtualBox 和其他虚拟管理器使用系统驱动程序将包注入网络并假装是物理适配器。

由于所有数据包都会发送到整个网络,因此每个设备只读取标有其地址的数据包(除非嗅探),虚拟驱动程序只是注入了具有其自己的虚拟MAC地址并响应发往该 MAC 地址的数据包,即使物理上不存在这样的适配器。

这是在网络模型的较低级别上完成的,因此主机不会对较高级别的这些消息做出反应,因为它们被标记了与主机不同的 MAC 地址。

这与黑客使用的技术完全相同欺骗攻击 使用IP 地址欺骗

虚拟 MAC 地址由虚拟机管理器创建,也可以随时指定或更改。它可以是任何合法的 MAC 地址,只要不与本地网络上其他设备的 MAC 地址重复。

IP 地址由 DHCP 服务器(通常是路由器)分配给该虚拟适配器,就像分配给任何其他物理设备一样。

无需输入密码即可连接到受密码保护的 WiFi 网络的原因更加令人费解,但我推测 VirtualBox 驱动程序找到并使用了主机登录网络时返回的令牌。这也解释了为什么它没有显示在路由器的“附加设备部分”下,因为它从未正式连接到网络。转发仍然有效,因为路由器只是将包重新发送到转发的地址,VirtualBox 驱动程序会做出响应。

最后,这不是多宿主,即一台运行一个操作系统的计算机,该计算机通过多个适配器拥有多个 IP 地址,所有 IP 地址都为该操作系统所知。

有关详细信息,请参阅维基百科关于OSI 模型,尤其是关于OSI层。

答案2

桥接网络的工作原理是,无论你使用什么软件来虚拟化你的机器,都会为该虚拟机创建一个接口。在这种情况下,它是分享您的主机网络适配器和软件充当硬件和虚拟网络适配器之间的接口。

现在我们知道两者都使用相同的网络适配器,我们可以假设它们的行为方式一致。如果您的主机使用 DHCP 来检索 IP 地址,那么您的虚拟机也可以执行相同的操作。如果它是静态设置的,依此类推。

如果您在路由器中查找 DHCP 租约表,它将显示两个设备。从路由器的角度来看,它们是两个不同的设备。据我所知,如果您在 LAN 上使用 ARP,您应该将这两个设备视为唯一的。发往您的 VM 计算机的任何数据包都不应到达主机的 IP 堆栈。

相关内容