Как генерируют 70 персистентных net.rules для esx?

Я имею 300 +, VMs человечности основываются от яиц. На vm существует 5 сетевых адаптеров. Я должен из vm переименовать их относительно к VMware порядок ESX.

Например, называя в различных сценариях:

  • сначала = eth1, второй = eth2, треть = em0, и т.д.
  • сначала = em0, второй = em9, треть = br0, и т.д.
  • сначала = phys1, второй = phys2, треть = eth0, и т.д.

ubuntu vm 5 network adapters

Моя проблема состоит в том, что lspci|grep "контроллер Ethernet" не показывают им заказанный:

04:00.0 Ethernet controller: VMware VMXNET3 Ethernet Controller (rev 01)
0b:00.0 Ethernet controller: VMware VMXNET3 Ethernet Controller (rev 01)
0c:00.0 Ethernet controller: VMware VMXNET3 Ethernet Controller (rev 01)
13:00.0 Ethernet controller: VMware VMXNET3 Ethernet Controller (rev 01)
1b:00.0 Ethernet controller: VMware VMXNET3 Ethernet Controller (rev 01)

04:00.0 должен быть eth1, но это - eth4 - я выдержал сравнение макинтошами

это - действительно порядок:/etc/udev/rules.d/70-persistent-net.rules

SUBSYSTEM=="net", ACTION=="add", KERNELS=="0000:0b:00.0", ATTR{dev_id}=="0x0", NAME="eth1"
SUBSYSTEM=="net", ACTION=="add", KERNELS=="0000:13:00.0", ATTR{dev_id}=="0x0", NAME="eth2"
SUBSYSTEM=="net", ACTION=="add", KERNELS=="0000:1b:00.0", ATTR{dev_id}=="0x0", NAME="eth3"
SUBSYSTEM=="net", ACTION=="add", KERNELS=="0000:04:00.0", ATTR{dev_id}=="0x0", NAME="eth4"
SUBSYSTEM=="net", ACTION=="add", KERNELS=="0000:0c:00.0", ATTR{dev_id}=="0x0", NAME="eth5"

Это - информация от человечности vm на ESXI:

 cat ubuntu.vmx|grep eth|more
ethernet0.present = "TRUE"
ethernet0.virtualDev = "vmxnet3"
ethernet0.wakeOnPcktRcv = "FALSE"
ethernet0.networkName = "_clients_network_1"
ethernet0.addressType = "vpx"
ethernet1.present = "TRUE"
ethernet1.virtualDev = "vmxnet3"
ethernet1.wakeOnPcktRcv = "FALSE"
ethernet1.networkName = "_servers_network_1"
ethernet1.addressType = "vpx"
ethernet2.present = "TRUE"
ethernet2.virtualDev = "vmxnet3"
ethernet2.wakeOnPcktRcv = "FALSE"
ethernet2.networkName = "_clients_network_1"
ethernet2.addressType = "vpx"
ethernet3.present = "TRUE"
ethernet3.virtualDev = "vmxnet3"
ethernet3.wakeOnPcktRcv = "FALSE"
ethernet3.networkName = "_servers_network_1"
ethernet3.addressType = "vpx"
ethernet4.present = "TRUE"
ethernet4.virtualDev = "vmxnet3"
ethernet4.wakeOnPcktRcv = "FALSE"
ethernet4.networkName = "VM Network"
ethernet4.addressType = "vpx"
ethernet0.generatedAddress = "00:50:56:a8:66:24"
ethernet0.pciSlotNumber = "192"
ethernet1.generatedAddress = "00:50:56:a8:32:78"
ethernet1.pciSlotNumber = "224"
ethernet2.generatedAddress = "00:50:56:a8:7e:2c"
ethernet2.pciSlotNumber = "256"
ethernet3.generatedAddress = "00:50:56:a8:56:91"
ethernet3.pciSlotNumber = "1184"
ethernet4.generatedAddress = "00:50:56:a8:67:ad"
ethernet4.pciSlotNumber = "1216"
ethernet0.generatedAddressOffset = "0"
ethernet1.generatedAddressOffset = "10"
ethernet2.generatedAddressOffset = "20"
ethernet3.generatedAddressOffset = "30"
ethernet4.generatedAddressOffset = "40"
0
задан 22 April 2015 в 10:22
1 ответ

Идея 1

Виртуальная машина должна быть полностью изолирована от своего хоста, и, таким образом, конструкция должна затруднить такой вид супервизии.

Но вы можете сделать это, используя функциональность гостевой информации. Вам нужно будет написать сценарий на стороне хоста, чтобы заполнить сопоставления информации о топологии гостевого оборудования (PowerShell и т. Д.). и они используют vmtools для получения этой информации из гостя (при этом udev взламывает).

http://www.virtuallyghetto.com/2011/01/how-to-extract-host-information-from .html

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

Что вы получите за следующую команду? Я получаю ошибки, но ссылка выше предполагает, что вы должны иметь возможность получать информацию, которая была установлена ​​извне виртуальной машины.

# vmtoolsd -l –cmd "info-get"
[Apr 22 22:30:34.545] [ warning] [vmsvc] Error in the RPC receive loop: RpcIn: Unable to send.
[Apr 22 22:30:35.546] [ warning] [vmsvc] Error in the RPC receive loop: RpcIn: Unable to send.
...

Идея 2

Вы можете использовать ethtool --driver IFNAME , чтобы получить шину Информация. Возможно, это будет проще всего. Вот пример для e1000

# ethtool --driver eth0
driver: e1000
version: 7.3.21-k8-NAPI
firmware-version:
bus-info: 0000:02:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no

И для vmxnet3

# ethtool --driver eth0
driver: vmxnet3
version: 1.1.30.0-k-NAPI
firmware-version:
bus-info: 0000:0b:00.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: yes
supports-priv-flags: no

Интересно, полезен ли дамп регистра ... не похоже, но шестнадцатеричный формат не имеет большого значения.

1
ответ дан 4 December 2019 в 16:58

Теги

Похожие вопросы