我不完全了解NAT和虚拟机上的桥接连接之间的区别。据我所知,如果我们建立桥接连接,则与主机位于同一网络上的计算机可以访问我们的虚拟机。
嗯,在互联网上,人们写道,NAT和桥接虚拟机都可以拥有与主机一样的IP地址,但是如果是NAT,则位于同一网络上的计算机将无法访问我们的虚拟机,但是如果桥接,则他们可以。
如果NAT和桥接连接都可以具有不同的IP地址,那么为什么我可以访问桥接地址却不能访问NAT地址?
注意:声明NAT连接受到保护是不够的;我想知道那是怎么回事。
我不完全了解NAT和虚拟机上的桥接连接之间的区别。据我所知,如果我们建立桥接连接,则与主机位于同一网络上的计算机可以访问我们的虚拟机。
嗯,在互联网上,人们写道,NAT和桥接虚拟机都可以拥有与主机一样的IP地址,但是如果是NAT,则位于同一网络上的计算机将无法访问我们的虚拟机,但是如果桥接,则他们可以。
如果NAT和桥接连接都可以具有不同的IP地址,那么为什么我可以访问桥接地址却不能访问NAT地址?
注意:声明NAT连接受到保护是不够的;我想知道那是怎么回事。
Answers:
通常是可路由的外部地址是NAT的“外部”。NAT后面的机器有一个“内部”地址,该地址通常是不可路由的。在内部地址和外部地址之间建立连接时,中间的NAT系统会创建一个转发表项,该表项由(outside_ip,outside_port,nat_host_ip,nat_host_port,inside_ip,inside_port)组成。任何与前四个部分匹配的数据包都将其目的地重写为后两个部分。
如果收到的数据包与NAT表中的条目不匹配,则除非手动定义了转发规则,否则NAT框无法知道将其转发到何处。这就是为什么默认情况下,NAT设备后面的计算机受到“保护”的原因。
桥接模式的行为就像您要桥接的接口现在是交换机一样,虚拟机已插入其端口。一切的行为就像是连接到该网络的另一台常规计算机一样。
使用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有很多变体。