Назад | Перейти на главную страницу

Поиск / настройка vSwitch для адаптера Ethernet

У меня есть хост виртуализации (может быть VSphere или SCVVM) с четырьмя сетевыми адаптерами, двумя 1 Гбит / с и двумя 10 Гбит / с. На этом компьютере виртуальная машина размещена на двух коммутаторах vSwitch с уникальными именами (например, vSwitch0 и vSwitch1), один на сетевом адаптере 1 Гбит / с, а другой - на сетевом адаптере 10 Гбит / с.

Эта виртуальная машина создается автоматически с помощью длительного процесса PowerShell, который создает определение импорта виртуальной машины и пустой виртуальный диск, устанавливает ОС, устанавливает другое программное обеспечение и т. Д.

Моя проблема в том, что в гостевой ОС (Server 2012 R2) сетевые адаптеры просто помечены как «Ethernet-адаптер» и «Ethernet-адаптер 1». Я не могу сказать, что находится на «vSwitch0» или «vSwitch1». Мне нужно, чтобы у каждого адаптера был очень конкретный IP-адрес, в зависимости от того, к какому виртуальному коммутатору он подключен.

Любые идеи? Мне нужно как-то настроить это в сценарии PowerShell, который настраивает гостевую ОС.

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

Самый простой способ, который я могу придумать, - это каким-то образом извлечь MAC-адрес каждого сетевого адаптера из конфигурации виртуальной машины и сравнить его с сетевыми адаптерами внутри виртуальной машины.

Вам не обязательно нужно устанавливать MAC-адреса - vSphere автоматически назначит вам MAC-адрес, если вы не укажете пользовательский (назначение достаточно разумно, чтобы знать, что нельзя переназначать уже используемые адреса, поэтому вам не нужно беспокоиться о конфликтах). Затем вы можете запросить конфигурацию виртуальной машины после он был создан, и сопоставьте его с сетевыми картами в том виде, в котором они отображаются в ОС. Например:

Сначала вы запрашиваете конфигурацию виртуальной машины через vSphere:

  • NIC A подключен к vSwitch0 и имеет MAC-адрес 00:56:3f:00:21:12
  • NIC B подключен к vSwitch1 и имеет MAC-адрес 00:56:3f:12:32:4a

Затем вы запрашиваете сетевые карты, присутствующие в гостевой ОС после создания:

  • Адаптер Ethernet имеет MAC-адрес 00:56:3f:12:32:4a и поэтому NIC B и прикреплен к vSwitch1
  • Адаптер Ethernet 1 имеет MAC-адрес 00:56:3f:00:21:12 и поэтому NIC A и прикреплен к vSwitch0

Возможно, вы сможете сделать это программно, однако я недостаточно разбираюсь в интерфейсе командной строки vSphere PowerShell, чтобы знать наверняка.

То, как я справился с этим для моих виртуальных машин с двойным подключением, заключается в том, что у меня есть DHCP-сервер в одной сети, поэтому я знаю, что vNIC, который получает IP-адрес, назначенный DHCP, подключен к сети, где находится DHCP-сервер. Сетевая карта, которая назначает себе адрес APIPA, подключена к другой сети. Это грубо, но работает. Возможно, вы не захотите настраивать DHCP-сервер только для этой цели, но в моем случае я использую DHCP-сервер, поэтому мне повезло, я могу использовать его, чтобы определить, к какой сети подключен каждый vNIC.