桥接网络和NAT网络之间的差异


29

我不完全了解NAT和虚拟机上的桥接连接之间的区别。据我所知,如果我们建立桥接连接,则与主机位于同一网络上的计算机可以访问我们的虚拟机。

嗯,在互联网上,人们写道,NAT和桥接虚拟机都可以拥有与主机一样的IP地址,但是如果是NAT,则位于同一网络上的计算机将无法访问我们的虚拟机,但是如果桥接,则他们可以。

如果NAT和桥接连接都可以具有不同的IP地址,那么为什么我可以访问桥接地址却不能访问NAT地址?

注意:声明NAT连接受到保护是不够的;我想知道那是怎么回事。


1
桥接在第2层上进行,而NAT在第3层上进行,因此需要某种路由。en.m.wikipedia.org/wiki/Network_layer
EEAA 2013年

1
@EEAA ...但是这不能解释为什么路由对于外部主机不起作用。
杰夫·弗兰

1
NAT会将您的VM的IP地址从172.xxx更改192.xxx。但是,Bridged将为您的VM提供自己的公共IP地址(例如172.xxx)。
IgorGanapolsky

Answers:


24

NAT的工作原理

通常是可路由的外部地址是NAT的“外部”。NAT后面的机器有一个“内部”地址,该地址通常是不可路由的。在内部地址和外部地址之间建立连接时,中间的NAT系统会创建一个转发表项,该表项由(outside_ip,outside_port,nat_host_ip,nat_host_port,inside_ip,inside_port)组成。任何与前四个部分匹配的数据包都将其目的地重写为后两个部分。

如果收到的数据包与NAT表中的条目不匹配,则除非手动定义了转发规则,否则NAT框无法知道将其转发到何处。这就是为什么默认情况下,NAT设备后面的计算机受到“保护”的原因。

桥接的

桥接模式的行为就像您要桥接的接口现在是交换机一样,虚拟机已插入其端口。一切的行为就像是连接到该网络的另一台常规计算机一样。


10

使用NAT,虚拟机的IP和主机连接到的网络是分开的。意味着您的VM位于不同的子网中。您可以访问网络,因为您的主机正在执行网络地址转换(如果您不知道这是什么严格,中等和开放式NAT?)。IP由主机上运行的DHCP分配

通过桥接接口,您的虚拟机将直接连接到网络,而虚拟机正在使用该网络接口。这意味着在您的情况下,它们将直接连接到主机所连接的网络,并从网络上运行的DHCP服务器获取IP地址(这也可能为您的主机提供IP)。

现在,为什么您不能访问这些机器:

因为您需要在NAT网段上启用端口转发。NAT将您的虚拟机IP转换为单个IP。传入的连接必须通过端口转发进行路由,因为主机无法知道该连接意味着什么虚拟机。

尽管NAT可以提供某种保护,但它不是防火墙,出于与上述相同的原因(使用NAT时,除非启用端口转发,否则入站主机将无法连接)。但是NAT不是安全的(http://blog.ioshints.info/2011/12/is-nat-security-feature.html)。

NAT具有一些副作用,类似于网络边缘通常使用的安全机制。但这并不能使其成为一种安全功能,更多的是因为NAT有很多变体。



3

通过NAT连接,主机(您的主要物理计算机)的行为就像路由器/防火墙。VM背负主机的网络接口,所有往返VM的数据包均通过该路由。由于主机实际上可以看到IP数据包和TCP数据报,因此它可以过滤或影响流量。

当VM使用桥接模式时,它通过较低级别的主机(OSI模型的第2层)连接到网络。主机仍然可以看到流量,但是只能在以太网帧级别上看到。因此,无法看到来自/去往的流量或该流量中包含的数据类型。

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.