VMware – ВМ не получает DHCP-адрес после перезагрузки

Вопрос или проблема

У нас наблюдается странное поведение в нашем кластере ESX:

Инфраструктура:

У нас есть 2 ESXi 5.5.0 сборки 2718055 в кластере, управляемом vCenter. Мы используем лицензию Essentials, поэтому у нас нет распределенных коммутаторов. Наша корпоративная сеть имеет несколько VLAN, из которых около 10 необходимы для виртуальных серверов. Оборудование – HP DL380 Gen8, 8 портов 1 Гбит. Порты коммутатора (Cisco 2960E и 3850E), подключенные к серверам, настроены с использованием trunk VLAN Cisco – все пакеты приходят с их VLAN-меткой. Физическая сеть полностью избыточна, один из двух коммутаторов И ОДНА из двух сетевых карт на сервере могут выйти из строя, не вызывая сбоя виртуальных машин.

Все порты коммутатора настроены одинаково,

Я использую 2 виртуальных коммутатора (на каждом хосте), каждый коммутатор имеет назначенные

Проблема

Когда я перезагружаю виртуальную машину, размещенную на esx1 и с автоматической конфигурацией IP-адреса, машина не получает подключение DHCP – сетевое подключение доступно, если я устанавливаю ручной IP-адрес, все работает хорошо, но ipconfig /refresh зависает, и DHCPExplorer не находит валидный DHCP-сервер (который я могу пинговать, если назначу ручной IP-адрес).

Теперь мне нужно перенести машину на esx2 и подождать некоторое время (или выполнить ipconfig /renew или отключить и включить сетевую карту), и тогда машина получит DHCP-адрес. После этого я могу вернуть машину обратно на esx1, и она будет работать совершенно нормально. После этого я даже получаю положительные результаты от DHCP explorer.

Я тогда тестировал, связано ли это поведение с физической частью сети: я отключил все физические сетевые карты, кроме одной, от портовой группы с затронутым VLAN, провел несколько перезагрузок с DHCP-машиной, а затем протестировал с другой сетевой картой – коротко говоря, я заставил весь трафик из этой портовой группы проходить через один физический порт сетевой карты и коммутатора.

Результат был следующим: проблема возникает только на двух разных портах двух разных сетевых карт, но обе они подключены к одному и тому же коммутатору.

Мне кажется, что этот коммутатор каким-то образом блокирует доступ к службе DHCP. Кто-нибудь сталкивался с подобным поведением? Я исчерпываю варианты – скоро мы хотим обновиться до ESX 6, но поскольку у нас также есть виртуализация рабочих столов VMWare View, процесс обновления потребует много работы и тестирования и не может быть завершен быстро…

ДОПОЛНЕНИЕ:

Поскольку визуальная конфигурация наших коммутаторов слишком велика для экрана, я экспортировал виртуальные коммутаторы и портовые группы через PowerShell.

Проблемный хост – host-1002, проблемные сетевые карты, которые я определил, это vmnic4 и vmnic8, портовые группы, где наблюдалась проблема – PortGroup35 и PortGroup41

 Get-Virtualswitch|select Name, ID, NumPorts, NumPortsAvailable, Nic, MTU, VMHostID

РЕЗУЛЬТАТ:

Name              : vSwitch0
Id                : key-vim.host.VirtualSwitch-vSwitch0
NumPorts          : 4352
NumPortsAvailable : 4309
Nic               : {vmnic7, vmnic0, vmnic2, vmnic9}
Mtu               : 1500
VMHostId          : HostSystem-host-1001

Name              : vSwitch2
Id                : key-vim.host.VirtualSwitch-vSwitch2
NumPorts          : 4352
NumPortsAvailable : 4309
Nic               : {vmnic3, vmnic1, vmnic6, vmnic8}
Mtu               : 1500
VMHostId          : HostSystem-host-1001

Name              : vSwitch5
Id                : key-vim.host.VirtualSwitch-vSwitch5
NumPorts          : 4352
NumPortsAvailable : 4309
Nic               : {vmnic4}
Mtu               : 1500
VMHostId          : HostSystem-host-1001

Name              : vSwitch0
Id                : key-vim.host.VirtualSwitch-vSwitch0
NumPorts          : 4352
NumPortsAvailable : 4304
Nic               : {vmnic7, vmnic3, vmnic5, vmnic9}
Mtu               : 1500
VMHostId          : HostSystem-host-1002

Name              : vSwitch2
Id                : key-vim.host.VirtualSwitch-vSwitch2
NumPorts          : 4352
NumPortsAvailable : 4304
Nic               : {vmnic8, vmnic4, vmnic6, vmnic2}
Mtu               : 1500
VMHostId          : HostSystem-host-1002

Name              : vSwitch5
Id                : key-vim.host.VirtualSwitch-vSwitch5
NumPorts          : 4352
NumPortsAvailable : 4304
Nic               : {vmnic1}
Mtu               : 1500
VMHostId          : HostSystem-host-1002


Get-Virtualportgroup|select Name, VirtualSwitchId, Key, VLANId, VMHostID

РЕЗУЛЬТАТ:

Name            : PORTGROUP82
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch0
Key             : key-vim.host.PortGroup-PORTGROUP82
VLanId          : 82
VMHostId        : HostSystem-host-1001

Name            : PORTGROUP90
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch0
Key             : key-vim.host.PortGroup-PORTGROUP90
VLanId          : 90
VMHostId        : HostSystem-host-1001

Name            : PORTGROUP83
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch0
Key             : key-vim.host.PortGroup-PORTGROUP83
VLanId          : 83
VMHostId        : HostSystem-host-1001

Name            : PORTGROUP16
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch0
Key             : key-vim.host.PortGroup-PORTGROUP16
VLanId          : 16
VMHostId        : HostSystem-host-1001

Name            : Management Network
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch0
Key             : key-vim.host.PortGroup-Management Network
VLanId          : 41
VMHostId        : HostSystem-host-1001

Name            : PORTGROUP80
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch2
Key             : key-vim.host.PortGroup-PORTGROUP80
VLanId          : 80
VMHostId        : HostSystem-host-1001

Name            : PORTGROUP41
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch2
Key             : key-vim.host.PortGroup-PORTGROUP41
VLanId          : 41
VMHostId        : HostSystem-host-1001

Name            : PORTGROUP35
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch2
Key             : key-vim.host.PortGroup-PORTGROUP35
VLanId          : 35
VMHostId        : HostSystem-host-1001

Name            : VMkernel
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch5
Key             : key-vim.host.PortGroup-VMkernel
VLanId          : 0
VMHostId        : HostSystem-host-1001

Name            : PORTGROUP43
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch0
Key             : key-vim.host.PortGroup-PORTGROUP43
VLanId          : 43
VMHostId        : HostSystem-host-1001

Name            : PORTGROUP82
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch0
Key             : key-vim.host.PortGroup-PORTGROUP82
VLanId          : 82
VMHostId        : HostSystem-host-1002

Name            : PORTGROUP83
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch0
Key             : key-vim.host.PortGroup-PORTGROUP83
VLanId          : 83
VMHostId        : HostSystem-host-1002

Name            : PORTGROUP90
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch0
Key             : key-vim.host.PortGroup-PORTGROUP90
VLanId          : 90
VMHostId        : HostSystem-host-1002

Name            : PORTGROUP16
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch0
Key             : key-vim.host.PortGroup-PORTGROUP16
VLanId          : 16
VMHostId        : HostSystem-host-1002

Name            : Management Network
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch0
Key             : key-vim.host.PortGroup-Management Network
VLanId          : 41
VMHostId        : HostSystem-host-1002

Name            : PORTGROUP80
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch2
Key             : key-vim.host.PortGroup-PORTGROUP80
VLanId          : 80
VMHostId        : HostSystem-host-1002

Name            : PORTGROUP41
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch2
Key             : key-vim.host.PortGroup-PORTGROUP41
VLanId          : 41
VMHostId        : HostSystem-host-1002

Name            : PORTGROUP35
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch2
Key             : key-vim.host.PortGroup-PORTGROUP35
VLanId          : 35
VMHostId        : HostSystem-host-1002

Name            : VMkernel
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch5
Key             : key-vim.host.PortGroup-VMkernel
VLanId          : 0
VMHostId        : HostSystem-host-1002

Name            : PORTGROUP43
VirtualSwitchId : key-vim.host.VirtualSwitch-vSwitch0
Key             : key-vim.host.PortGroup-PORTGROUP43
VLanId          : 43
VMHostId        : HostSystem-host-1002

ДОПОЛНЕНИЕ: НОВАЯ ИНФОРМАЦИЯ

Теперь я понял, почему проблема возникает только на esx1: DHCP-сервер для этих машин – это виртуальная машина, размещенная на esx2. Таким образом, DHCP-запросы от машин на esx2 даже не должны покидать виртуальный коммутатор. Если я переношу DHCP-сервер на esx1, проблема решается там и возникает на esx2. Все еще только один коммутатор подвержен проблеме, другой работает нормально. Так что, на мой взгляд, проблема определенно лежит в физическом коммутаторе, а не в виртуальном.

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

Как долго вы ждете, прежде чем считать это “неудачным”?
У вас есть доступ к конфигурации коммутатора Cisco?


Кроме этого, было бы полезно увидеть конфигурацию вашего виртуального коммутатора как в этом примере.

Спасибо за обновление вашего вопроса и комментариев, в основном вам нужно установить ‘DHCP Helper’ на конкретном коммутаторе для этого порта/VLAN.

В основном на коммутаторе делайте следующее;

enable
conf t
int {любой порт}
ip helper-address {IP-адрес DHCP-сервера или виртуальный IP кластера}

Затем протестируйте, и если все успешно, запишите вашу конфигурацию обратно в хранилище.

Ответ или решение

Ваша проблема с получением DHCP-адреса после перезагрузки виртуальной машины (ВМ) на хосте ESXi может быть связана с несколькими факторами, включая конфигурацию вашего Cisco-коммутатора и настройку виртуальных коммутаторов на ESXi. Давайте попробуем разобраться шаг за шагом.

Шаг 1: Настройка Cisco-коммутатора

  1. Проверьте настройки Spanning Tree Protocol (STP): Возможно, у вас есть конфликты в конфигурации STP на портах коммутатора, к которым подключены ваши хосты. Убедитесь, что все порты имеют согласованные настройки STP.

  2. Настройка DHCP Relay (IP Helper): Чтобы ваш DHCP-сервер (который находится на ESXi 2) мог обрабатывать запросы от ВМ, находящихся на ESXi 1, вам необходимо настроить DHCP Helper на Cisco-коммутаторе:

    enable
    configure terminal
    interface {номер порта}  # Укажите порт, к которому подключен ESXi 1
    ip helper-address {IP-адрес DHCP-сервера}

    Это позволит пересылать DHCP-запросы с клиентов на ESXi 1 к DHCP-серверу на ESXi 2.

Шаг 2: Проверка конфигурации виртуальных коммутаторов

  1. Проверьте настройки виртуальных коммутаторов и портовых групп на ESXi: Убедитесь, что порты виртуального коммутатора (vSwitch) правильно настроены для использования VLAN и соответствуют физической сети. Убедитесь, что порты, подключенные к вашим problem-areas, правильно настроены на соответствующие VLAN.

  2. Виртуальные адаптеры: Проверьте, что виртуальные адаптеры (vNIC) ваших ВМ присоединены к правильным портовым группам с соответствующей настройкой VLAN.

Шаг 3: Тестирование и диагностика

  1. Логи DHCP: Посмотрите журналы DHCP на вашем DHCP-сервере (который находится на ESXi 2). Это поможет вам увидеть, получает ли сервер запросы от клиентов, и были ли какие-либо ошибки.

  2. Проверка подключения: После перезагрузки ВМ, попробуйте выполнить команду ping до DHCP-сервера с ВМ, чтобы убедиться, что его можно достичь.

  3. Тайм-аут запроса: Убедитесь, что вы не слишком рано определяете, что DHCP-запрос не сработал. Обычно время ожидания может зависеть от нескольких факторов, включая сетевые задержки.

Шаг 4: Дополнительные проверки

  1. Настройки VMware: Убедитесь, что все обновления для ваших ESXi-хостов установлены, и проверьте наличие известных проблем с версией ESXi 5.5, которые могут вызывать проблемы с DHCP.

  2. Роутинг VLAN: Если вы используете несколько VLAN, убедитесь, что маршрутизатор (или уровень 3 коммутатор) правильно настроен для маршрутизации между VLAN, если это необходимо.

Заключение

Во многом ваша проблема связана с конфигурацией Cisco-коммутатора и настройкой DHCP. Настроив DHCP Helper и проверив конфигурацию VLAN, вы, вероятно, сможете решить проблему с получением DHCP-адресов после перезагрузки ВМ. Если после выполнения этих шагов проблема не решится, рассмотрите возможность использования инструмента анализа трафика, например Wireshark, для более глубокой диагностики проблемы.

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

Капча загружается...