查找/设置以太网适配器的vSwitch

我有一个虚拟主机(可以是VSphere或SCVVM),有四个网卡,两个1 gbps和两个10 gbps。 本机在两个具有唯一名称的vSwitch上托pipe虚拟机(例如vSwitch0和vSwitch1),一个位于1 gbps网卡上,另一个位于10 gbps网卡上。

这个VM是通过一个长时间的powershell进程自动生成的,这个进程创build了import虚拟机定义和空虚拟磁盘,安装操作系统,安装其他软件等。

我的问题是在客户操作系统(Server 2012 R2)中,networking适配器被简单地标记为“以太网适配器”和“以太网适配器1”。 我无法确定“vSwitch0”或“vSwitch1”上有哪些内容。 我需要每个适配器都具有一个非常特定的IP,它基于连接到哪个虚拟交换机。

有任何想法吗? 我需要以某种方式在configuration客户操作系统的PowerShell脚本中进行configuration。

提前致谢!

我所能想到的最简单的方法就是以某种方式从VMconfiguration中提取每个networking适配器的MAC地址,并根据VM中的NIC进行检查。

您不一定需要设置 MAC地址 – 如果您未指定自定义MAC地址,则vSphere将自动为您分配一个MAC(分配足够智能以知道不重新分配已使用的地址,因此您不需要需要担心冲突)。 然后,您可以在创build查询虚拟机的configuration,并将其与在操作系统中出现的NIC进行匹配。 例如:

首先,您通过vSphere查询VMconfiguration:

  • NIC A连接到vSwitch0,并具有MAC地址00:56:3f:00:21:12
  • NIC B连接到vSwitch1,并具有MAC地址00:56:3f:12:32:4a

然后,在创build后查询来宾操作系统中的NIC:

  • 以太网适配器的 MAC地址为00:56:3f:12:32:4a ,因此是NIC B并连接到vSwitch1
  • 以太网适配器1的 MAC地址为00:56:3f:00:21:12 ,因此是NIC A并连接到vSwitch0

您可以通过编程方式执行此操作,但是我无法熟练使用vSphere PowerShell CLI进行确认。

我处理双宿主虚拟机的方式是我在一个networking上有一个DHCP服务器,所以我知道获取DHCP分配的IP地址的vNIC已连接到DHCP服务器所在的networking。 分配APIPA地址的NIC连接到另一个networking。 这是粗糙的,但它的工作原理。 你可能不想为此设置一个DHCP服务器,但在我的情况下,我使用DHCP服务器,所以我很幸运,我可以用它来识别每个vNIC连接到哪个networking。