桥接与NAT:Virtualbox和VMWare的比较


6

我在两个不同的主机上安装了VMWare Workstation 7.1.x和Virtualbox 4.0.8,因此可以进行比较。

我将两个虚拟网络适配器都设置为NAT,这对两个都成功。结果:

虚拟箱地址:10.10.2.13 VMWare地址:192.168.0.20

分配给VMWare guest虚拟机的IP是预期的。但是我对为virtualbox提供的IP地址感到惊讶。这些机器位于我的家庭网络中,该网络只有NAT地址(192.168.xx),所以当我看到10.10.2.x时-感到有些惊讶。

然后,我切换了两个虚拟机以使用桥接网络。VMWare guest虚拟机继续使用NAT地址,但是Virtualbox也开始使用NAT地址。

简而言之,我认为VMWare来宾行为是我所期望的。Virtualbox的行为对我来说很奇怪。如果有的话,我希望Virtualbox做相反的事情(对NAT lan适配器使用NAT地址,对桥接例程使用非NAT地址)。不要误会我的意思,在任何配置下,看到Virtuabox的非NAT地址时,我都很惊讶。

但是有人可以向我解释为什么我得到了我得到的结果吗?IP地址10.10.2.x如何/为什么在我的家庭网络上有效?

请记住,两个VM guest虚拟机始终都能成功建立网络。

Answers:


5

这一切对我来说都很正常。

10.0.0.0/8(以及172.16.0.0/12)以下的任何内容都是完全正常的NAT地址。当您将VM置于NAT模式时,该软件实际上充当来宾计算机自己的dhcp服务器,并且将转换为主机网络,以便特定主机上的所有来宾与该主机共享IP。这些范围中的任何一个对于NAT都是公平的游戏。看来,VMWare默认使用192.168.0.0/24范围,而VirtualBox使用10.0.0.0范围。两者都很好,两者都不比另一个更好(尽管我个人更喜欢10.0.0.0范围,因为有255倍的可用地址)。

听起来好像您希望NAT模式在主机网络和Internet之间使用NAT,但这并没有发生。实际上,这就是桥接模式的作用。切换到桥接模式意味着您的VM guest虚拟机现在直接连接到家庭路由器的dhcp服务器以获取地址。现在,VirtualBox和VMWare都将从同一位置获取地址。VMware也将发生变化,只是旧模式和新模式从相似的池分配地址。


是172.16.0.0/16 :-)。还有为什么10.0.0.0地址是因为“还有更多地址可用”?您认为您会达到目标吗?
sinni800 2011年

3
@sinni-不,它是172.16.0.0/12,因为172.31.255.255标志着范围的结束。/ 16将以172.16.255.255结尾。而且我在一个较大的网络上工作,在该网络上可以为某些类分配池很方便-例如,所有打印机都位于10.x.15.0中。一个部门中的所有客户均为10.2.0.0,另一部门为10.3.0.0。第一部门的打印机是10.2.15.0-10.2.15.255,第二部门的打印机是10.3.15.0。至10.3.15.255。我永远不会使用所有地址,但是分配更多的块很高兴。
Joel Coehoorn

它是172.16.0.0/16,因为16到32通常都是自己的子网。因此,在此范围内总共有16个蚊帐...我知道您的意思,但是当您第一次说时,我对此有所不同。对其进行多次子网划分是有意义的:)
sinni800 2011年

整个范围是172.16.0.0/12,但通常认为它是一个块16 /16s(172.16.0.0/16、172.17.0.0/16、...、172.31.0.0/16),而不是一个/ 12同样地,192.168.0.0 / 16通常被认为是256 / 24s,而不是一个/ 16。
David Spillett

3

正式取消分配10.xxx范围,供内部使用,就像192.168.xx一样,因此使用该范围的地址并不比使用192.168.xx子网更奇怪(这并不常见-大多数消费类设备不将NAT和/或DHCP设置为192.168.0.0/16内的/ 24)。

172.16-32.xx也保留用于私有寻址,但是它们甚至更不常用。

10.10.2.x范围仅对Virtualbox及其使用NATed网络适配器运行的VM可见。对于传出的连接,这将通过NAT转换为VMWare主机的NIC所使用的地址,然后将答复转换回-这与VMWare在192.168.something.0 / 24范围内所做的操作没有什么不同。


“ 10.10.2.x范围仅对Virtualbox及其使用NATed网络适配器运行的VM可见。” 告诉我是否理解错了,但是如果每个VM都位于该虚拟网络中,则它们可以相互连接,而这在NAT模式下是不可能的。这可以在“主机网络”模式下进行。
sinni800 2011年

在NAT模式下,在VMWare下的IIRC,使用相同接口的VM可以互相看到。在仅主机模式下,尽管主机仍可以执行路由/ NAT,但VM仅能直接看到主机,因此VM可以访问主机允许的任何内容(默认情况下仅能看到主机,而没有其他任何内容)。在您的描述中,听起来好像VB使用“ NAT网络”来表示类似VMWare称为“仅主机”的内容。无论如何,我通常对环境中的所有内容都使用桥接,所以我可能记不清了。无论哪种情况,10.xxx与192.168.xx一样有效
David Spillett

0

您定义中的“非NAT”地址是什么?您的意思是“本地网络”地址。我认为您在这里出了点问题。

如果您在虚拟化解决方案的设置窗格中选择“ NAT”,则归功于NAT,最终它给客户机提供的IP类型无关紧要。在这种情况下,它的行为类似于网关(路由器),将来宾隐藏在外部网络中,但仍可以访问Internet。

存在NAT是因为本地网络地址192.168.0.20在全球范围内可能存在一百万次。因此,这百万次不会互相干扰,它将(本地网络)地址转换为路由器从ISP获得的Internet IP(因此称为“网络地址转换”)。

Wikipedia文章比我能更好地描述它。

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.