Как генерируются MAC адреса для виртуальных машин ESXI

Обновлено 20.05.2020

support esxi

Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов Pyatilistnik.org. В прошлый раз мы с вами разобрали методы позволяющие производить подключение к удаленному рабочему столу, они сейчас очень востребованы на самоизоляции. В сегодняшней теме я бы вновь хотел коснуться темы гипервизоров, и разобрать такой вопрос "Как генерируются MAC адреса для виртуальных машин ESXI". Просто интересно самому было в этом разобраться и решил себе сохранить на память.

Процесс генерации MAC адреса в виртуальных машинах ESXI

Ранее мы с вами уже касались вопроса смены mac-адреса на виртуальных машинах, разбирали задачи связанные с этим. Задумывались ли вы, как vCenter назначает MAC-адреса виртуальным машинам, и знаете ли вы для чего вам эти знания.

Давайте для начала напомню что из себя представляет MAC-адрес, если по простому, то это шести байтное (48 битное) число, вида 54-27-1E-0D-28-47. Его можно представить вот таким образом:

OO:UU:II:XX:YY:ZZ

Mac адрес несет в себе информацию о производителе, которая зашита в первых символах этого номерка. По сути каждый мак адрес уникален и его производитель, получает данные номера пачками в специальной конторе IEEE Registration Authority. У каждого сетевого интерфейса есть уникальный Organizationally Unique Identifier (OUI), который из себя представляет трех байтный (24 битный) префикс, использующийся для генерации уникальных MAC адресов. VMware-у присвоено несколько Organizationally Unique Identifier (OUI)-ов, и таким образом за VMware-ом резервируется блок производных идентификаторов, таких как MAC адреса.

vSphere 5.5 и более поздние версии предоставляют несколько схем для автоматического распределения MAC-адресов в vCenter Server. Вы можете выбрать схему, которая наилучшим образом соответствует вашим требованиям для дублирования MAC-адресов, требованиям OUI для локального или универсального администрирования адресов.

В vCenter Server доступны следующие схемы генерации MAC-адресов:

  • Распределение OUI VMware, распределение по умолчанию
  • Распределение на основе префиксов (Prefix-based allocation)
  • Распределение на основе диапазона (Range-based allocation)

После создания MAC-адреса он не изменится, если только MAC-адрес виртуальной машины не конфликтует с MAC-адресом другой зарегистрированной виртуальной машины. MAC-адрес сохраняется в файле конфигурации виртуальной машины. При выделении организационного уникального идентификатора (OUI) VMware назначаются MAC-адреса на основе стандартного OUI VMware 00:50:56 и идентификатора vCenter Server.

В соответствии со схемой выделения VMware OUI MAC-адрес имеет формат 00: 50: 56: XX: YY: ZZ, где 00:50:56 представляет OUI VMware, XX рассчитывается как (128 + vCenter Server ID) и YY и ZZ - случайные двузначные шестнадцатеричные числа

4- й октет виртуального MAC-адреса рассчитывается следующим образом

4- й октет MAC: (128 + vCenter Instance ID) преобразует его в шестнадцатеричный

MAC-адрес виртуальной машины конфликтует или имеет двойной MAC-адрес при создании виртуальной машины

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

  • Каждая система vCenter Server имеет идентификатор экземпляра vCenter Server (Organizationally Unique Identifier (OUI)). Этот идентификатор представляет собой число от 0 до 63, которое генерируется случайным образом во время установки, но может быть перенастроено после установки.
  • vCenter Server использует идентификатор экземпляра для создания MAC-адресов и UUID для виртуальных машин. Если две системы vCenter Server имеют одинаковый идентификатор экземпляра vCenter Server, они могут генерировать идентичные MAC-адреса (дублированные MAC-адреса) для виртуальных машин. Это может вызвать конфликты, если виртуальные машины находятся в одной сети, что приведет к потере пакетов и другим проблемам.
  • При создании новой виртуальной машины MAC-адрес дублируется
  • Виртуальные машины включаются и работают нормально, но разделяют MAC-адрес с другой виртуальной машиной.
  • Эта проблема может возникнуть, если количество развертываемых виртуальных машин превысило пул MAC-адресов по умолчанию. Это приводит к тому, что vCenter Server начинает повторно использовать уже назначенные MAC-адреса.

Чтобы решить дублирование MAC-адресов, необходимо при развертывании виртуальных машин из нескольких систем vCenter Server в одной сети необходимо убедиться, что эти vCenter имеют уникальные идентификаторы экземпляров. При изменении уникального идентификатора сервера vCenter автоматически сгенерированные MAC-адреса будут другими.

Как найти vCenter Instance ID

Чтобы просмотреть или изменить идентификатор экземпляра vCenter Server вам необходимо авторизоваться в web-интерфейсе. Далее вы переходите в раздел "Hosts & Clusters". Нажимаете кнопку "Actions - Settings".

Organizationally Unique Identifier

Далее открываете в разделе "Configure" пункт "General - Runtime settings". В моем примере мой vCenter Server inique ID равен "13".

Как найти vCenter Instance ID

Если вы хотите поменять vCenter Server inique ID, то вам нужно в правом верхнем углу нажать кнопку "Edit". Далее идете в раздел "Running settings" и в строке vCenter Server unique ID меняете значение. Если вы изменили идентификатор экземпляра vCenter Server, вы должны перезапустить vCenter Server, чтобы изменения вступили в силу и это значение может быть любым числом от 0 до 63.

Как сменить Organizationally Unique Identifier

Как видите в моем примере vCenter Server unique ID равно 13, давайте рассчитаем выдаваемые MAC_адреса, точнее первые 8 символов.

Первые три октета будут 00:50:56, это константа. Далее 4- й октет MAC = (128 + 13)=141. Теперь, если вы преобразуете 141 в шестнадцатеричное значение, оно преобразуется в "8D". Теперь проверим любую из моих виртуальных машин, а именно 4-й актет. Как видно из свойств сетевого интерфейса, это "8D".

Как генерируются MAC адреса для виртуальных машин ESXI

Генерация MAC адреса для виртуальных машин ESXI без vCenter

Если у вас гипервизор не управляется через vCenter сервер, то за генерацию MAC-адресов отвечает сам хост ESXi, он следит чтобы не было конфликтов на виртуальных машинах. Первые три актета будут "00:0C:29", 4-й актет генерируется на основании правил:

  • VMware Organizationally Unique Identifier (OUI)
  • SMBIOS UUID ESXi хоста
  • Хэш основанный на имени объекта для которого для которого данный MAC адрес генерируется

Генерация MAC адреса для виртуальных машин ESXI без vCenter

Простой пример, вы выключаете виртуальную машину, ее MAC-адрес запоминается хостом ESXI. Если при ее включении, такой мак-адрес уже есть, то у включаемой виртуальной машины он будет заменен, если конфликта нет, то сервер получит прежние MAC-адреса. Еще момент, если вы данный хост отдадите под управление vCenter, то прежние виртуальные машины так же сохранят свои старые MAC-адреса с первыми 3-ми актетами "00:0C:29", а вот новые будут получать "00:50:56".

Автор - Сёмин Иван

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *