Несоответствие порядка сетевых интерфейсов между графическим интерфейсом клиента VMWare vSphere и виртуальной машиной

У меня есть шаблон ова. В нем определены 6 сетевых интерфейсов с именами net0, net1, net2, net3, net4, net5. Тип всех из них VMXNET3.

Когда я развертываю этот шаблон ova на сервере ESXi6.0/5.5, одним из шагов является настройка сопоставления имени сети (net0, net1, ..., net5) с существующими сетями на сервере ESXi (например, vlan500, vlan501, .. ., vlan505), например:

net0 -> vlan500
net1 -> vlan501
... ...
net5 -> vlan505

После включения экземпляра ВМ в экземпляре ВМ имеется 6 сетевых интерфейсов eth: eth0, eth1, ..., eth5.

Я ожидаю, что порядок ethX внутри виртуальной машины должен быть таким же, как порядок адаптеров вне виртуальной машины, например:

eth0 -> net0 -> vlan500
eth1 -> net1 -> vlan501
... ...
eth5 -> net5 -> vlan505

Но я обнаружил, что получаю это, проверяя MAC-адреса:

eth0 -> net0 -> vlan500
eth1 -> net4 -> vlan504    <= mismatch
eth2 -> net1 -> vlan501    <= mismatch
eth3 -> net5 -> vlan505    <= mismatch
eth4 -> net2 -> vlan502    <= mismatch
eth5 -> net3 -> vlan503    <= mismatch

Не могли бы вы помочь указать, как решить эту проблему?

Заранее спасибо!

ovf xml выглядит следующим образом:

125       <Item>
126         <rasd:AddressOnParent>7</rasd:AddressOnParent>
127         <rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>
128         <rasd:Connection>NET0</rasd:Connection>
129         <rasd:Description>VmxNet3 ethernet adapter on "NET0"</rasd:Description>
130         <rasd:ElementName>Ethernet 1</rasd:ElementName>
131         <rasd:InstanceID>10</rasd:InstanceID>
132         <rasd:ResourceSubType>VmxNet3</rasd:ResourceSubType>
133         <rasd:ResourceType>10</rasd:ResourceType>
134         <vmw:Config ovf:required="false" vmw:key="slotInfo.pciSlotNumber" vmw:value="32" />
135         <vmw:Config ovf:required="false" vmw:key="wakeOnLanEnabled" vmw:value="true" />
136       </Item>
137       <Item>
138         <rasd:AddressOnParent>8</rasd:AddressOnParent>
139         <rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>
140         <rasd:Connection>NET1</rasd:Connection>
141         <rasd:Description>VmxNet3 ethernet adapter on "NET1"</rasd:Description>
142         <rasd:ElementName>Ethernet 2</rasd:ElementName>
143         <rasd:InstanceID>11</rasd:InstanceID>
144         <rasd:ResourceSubType>VmxNet3</rasd:ResourceSubType>
145         <rasd:ResourceType>10</rasd:ResourceType>
146         <vmw:Config ovf:required="false" vmw:key="slotInfo.pciSlotNumber" vmw:value="33" />
147         <vmw:Config ovf:required="false" vmw:key="wakeOnLanEnabled" vmw:value="true" />
148       </Item>
149       <Item>
150         <rasd:AddressOnParent>9</rasd:AddressOnParent>
151         <rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>
152         <rasd:Connection>NET2</rasd:Connection>
153         <rasd:Description>VmxNet3 ethernet adapter on "NET2"</rasd:Description>
154         <rasd:ElementName>Ethernet 3</rasd:ElementName>
155         <rasd:InstanceID>12</rasd:InstanceID>
156         <rasd:ResourceSubType>VmxNet3</rasd:ResourceSubType>
157         <rasd:ResourceType>10</rasd:ResourceType>
158         <vmw:Config ovf:required="false" vmw:key="slotInfo.pciSlotNumber" vmw:value="34" />
159         <vmw:Config ovf:required="false" vmw:key="wakeOnLanEnabled" vmw:value="true" />
160       </Item>
161       <Item>
162         <rasd:AddressOnParent>10</rasd:AddressOnParent>
163         <rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>
164         <rasd:Connection>NET3</rasd:Connection>
165         <rasd:Description>VmxNet3 ethernet adapter on "NET3"</rasd:Description>
166         <rasd:ElementName>Ethernet 4</rasd:ElementName>
167         <rasd:InstanceID>13</rasd:InstanceID>
168         <rasd:ResourceSubType>VmxNet3</rasd:ResourceSubType>
169         <rasd:ResourceType>10</rasd:ResourceType>
170         <vmw:Config ovf:required="false" vmw:key="slotInfo.pciSlotNumber" vmw:value="35" />
171         <vmw:Config ovf:required="false" vmw:key="wakeOnLanEnabled" vmw:value="true" />
172       </Item>
173       <Item>
174         <rasd:AddressOnParent>11</rasd:AddressOnParent>
175         <rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>
176         <rasd:Connection>NET4</rasd:Connection>
177         <rasd:Description>VmxNet3 ethernet adapter on "NET4"</rasd:Description>
178         <rasd:ElementName>Ethernet 5</rasd:ElementName>
179         <rasd:InstanceID>14</rasd:InstanceID>
180         <rasd:ResourceSubType>VmxNet3</rasd:ResourceSubType>
181         <rasd:ResourceType>10</rasd:ResourceType>
182         <vmw:Config ovf:required="false" vmw:key="slotInfo.pciSlotNumber" vmw:value="36" />
183         <vmw:Config ovf:required="false" vmw:key="wakeOnLanEnabled" vmw:value="true" />
184       </Item>
185       <Item>
186         <rasd:AddressOnParent>12</rasd:AddressOnParent>
187         <rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>
188         <rasd:Connection>NET5</rasd:Connection>
189         <rasd:Description>VmxNet3 ethernet adapter on "NET5"</rasd:Description>
190         <rasd:ElementName>Ethernet 6</rasd:ElementName>
191         <rasd:InstanceID>15</rasd:InstanceID>
192         <rasd:ResourceSubType>VmxNet3</rasd:ResourceSubType>
193         <rasd:ResourceType>10</rasd:ResourceType>
194         <vmw:Config ovf:required="false" vmw:key="slotInfo.pciSlotNumber" vmw:value="37" />
195         <vmw:Config ovf:required="false" vmw:key="wakeOnLanEnabled" vmw:value="true" />
196       </Item>

person Ming Lu    schedule 15.04.2016    source источник


Ответы (2)


Я предполагаю, что Linux — это ОС внутри виртуальной машины.

Я не администратор Linux, но недавно я пытался решить что-то похожее на вашу проблему с моим коллегой. В нашей ситуации NIC, который был eth0, после развертывания становится eth1. Это произошло потому, что имя eth(x) было назначено MAC-адресом сетевой карты. И MAC-адрес всегда отличается после развертывания шаблона ovf (если вы развертываете этот шаблон в той же среде, то его нужно изменить, чтобы избежать конфликтов; если среда другая - то первые сегменты в MAC-адресе по умолчанию разные). Я не администратор Linux, поэтому я не уверен, что всегда (в каждом дистрибутиве) используется одна и та же политика сопоставления NIC-> eth (x).

Поэтому вам нужно проверить, как ОС сопоставляет NIC с именами eth(x). Если есть какой-либо способ сделать сопоставление на основе позиции PCI, вы можете это сделать, потому что эта информация находится в файле ovf. Если сопоставление выполняется ТОЛЬКО на основе MAC-адреса, то корректное сопоставление будет невозможно, поскольку MAC-адрес не записывается в файл ovf.

person Maciej Łukaszewicz    schedule 08.02.2017
comment
Похоже, моя VMWare не учитывает информацию о слоте в файле ovf. В противном случае гостевой Linux правильно распознает порядок по номеру слота pci, как это делает гостевой Linux в KVM VM. Я ожидаю, что передовое программное обеспечение VMWare не столкнется с этой проблемой. Но у меня нет на них полных лицензий. Теперь я использую KVM. - person Ming Lu; 10.02.2017

Проблема не в vmware, а в вашей vm. Когда вы клонируете виртуальную машину или если ваша ova не была должным образом подготовлена, eth0 нельзя будет использовать, потому что MAC-адрес указан в сценарии /etc/sysconfig/network-scripts/ifcfg-eth0, а также в /etc/ udev/rules.d/70-persistent-net.rules. У вас есть 2 варианта.

  1. Измените Mac как в 70-persistent-net.rules, так и в ifcfg-eth0, чтобы он соответствовал вашему новому Mac.
  2. Удалите 70-persistent-net.rules и удалите HWADDR из ifcfg-eth0.

После перезагрузки eth0 должен снова работать.

person aflat    schedule 02.10.2017