为什么默认配置下嵌套的VMware vSphere/ESXi上安装的虚拟机网络连接失败?

时间:2022-12-25 15:16:38

VMware vSphere/ESXi允许嵌套安装。所谓嵌套安装如下图所示,即将vSphere/ESXi虚拟化软件安装在vSphere/ESXi的虚拟机中。而在这样嵌套的vSphere/ESXi虚拟机上还可以部署虚拟机,然而在默认的配置中,这些虚拟机网络连接是失败的。本文将介绍其中的机理以及解决方法。

为什么默认配置下嵌套的VMware vSphere/ESXi上安装的虚拟机网络连接失败?

那么在默认配置下这些嵌套vSphere/ESXi上的虚拟机为什么网络不通呢?这要从vSphere/ESXi的虚拟网络交换机的工作原理说起。该虚拟交换机虽然被称作交换机但是与物理交换机的工作原理还是有一些差别的,我们知道真实的物理交换机的主要职能之一就是维护一张网络物理地址MAC与交换机端口的映射表,这样就一个报文进入交换机端口之后不用广播便可以将其准确无误地传递给该目的网络物理地址所在的交换机端口。那么这张神奇的映射表是如何形成的呢?那是因为交换机具备智能地学习功能。然而,vSphere/ESXi的虚拟交换机不具备这样的学习机理,因为它无需这样的技术便可建立起这样一张的映射表,因为虚拟机的网络适配器与该虚拟交换的端口直接连接,在软件实现上无需模拟真实的繁琐的学习过程而直接形成。

如果我们彻底清楚地理解vSphere/ESXi的虚拟为什么无需映射表的学习过程,那么我们就触类旁通地很容易理解为什么嵌套的vSphere/ESXi的虚拟机网络不同的原因了。因为在下层的vSphere/ESXi上的虚拟交换机只有与其直接相连的虚拟机的映射表,如该例中嵌套的vSphere/ESXi Uplink的物理地址映射,而没有在嵌套vSphere/ESXi上的所有其他虚拟机的物理地址映射表,他们的映射表存在与嵌套vSphere/ESXi的的虚拟交换机中,而这两层交换机不会通过他们之间的Uplink进行信息交换,因为他们不同于物理交换机可以尽心互相学习。

那么,我们如何解决这样的设计机理的限制呢?幸好,vSphere/ESXi在虚拟交换机上的安全策略提供了“混杂模式”的功能。不得不佩服VMware设计之精妙,该功能在这样的应用场景中发挥出别样的功效。混杂模式端口的工作原理为即该虚拟交换机中流经的所有数据报文都要为此类端口上复制一份进行传输。基于这样的工作原理,在底层的vSphere/ESX的虚拟交换机上为所有嵌套vSphere/ESXi所连的端口配置成“混杂模式”,这样底层虚拟交换机中的报文都要发送给嵌套vSphere/ESXi的网络端口一份拷贝,从而进一步传送给嵌套vSphere/ESXi的虚拟交换机,然后该虚拟交换机维护着嵌套vSphere/ESXi上的虚拟机的所有物理地址映射表。因此,通过这样的技术手段实现了嵌套vSphere/ESXi上的虚拟机与外界的网络通信。