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


29

桥接网络如何工作?

我浏览了VirtualBox手册,但是没有什么技术性的文章(这只是该主题的概括)。

  • 如何为虚拟机分配不同的IP但使用相同的网卡?
  • 为什么这个不同的IP(我ip addr在Linux下使用过)在路由器的“连接的设备”部分中没有显示,但是我可以移植到它呢?
  • 如果我连接到受密码保护的WiFi网络,不需要我输入密码怎么办?
  • 这是多宿主吗?

Answers:


12

在VirtualBox手册的第6章虚拟网络中,桥接网络部分:

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

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

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

我没有在这些网络级别上工作的个人知识,但是从以上看来,VirtualBox和其他虚拟管理器似乎使用系统驱动程序将程序包注入网络中,并假装为物理适配器。

当所有程序包都发送到所有网络时,每个设备仅读取标有其地址的程序包(除非进行嗅探),虚拟驱动程序只会使用其自己的虚拟MAC地址注入程序包,并响应发往该MAC地址的程序包,即使实际上不存在这样的适配器。

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

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

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

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

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

最后,这不是multihoming,它是一台运行一个操作系统的计算机,该计算机通过多个适配器具有多个IP地址,而这对于该操作系统来说都是已知的。

有关更多信息,请参阅Wikipedia上有关OSI模型的文章,尤其是有关OSI层的文章。


2

桥接网络的工作原理是,用于虚拟化计算机的任何软件都会为该虚拟机创建一个接口以供使用。在这种情况下,它共享您的主机网络适配器,并且软件充当硬件和虚拟网络适配器之间的接口。

现在我们了解到两者都使用相同的网络适配器,我们可以假设它们都将以一致的方式运行。如果您的主机使用DHCP检索IP地址,则您的VM能够执行相同的操作。如果它是静态设置的,依此类推。

如果您在路由器中查找DHCP租用表,它将显示两个设备。从路由器的角度来看,它们是两种不同的设备。据我了解,如果您在局域网上使用ARP,则应该将这两种设备视为唯一。绑定到您的VM计算机的任何数据包都永远不会到达主机的IP堆栈。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.