Вопрос или проблема
У нас наблюдается странное поведение в нашем кластере 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-коммутатора
-
Проверьте настройки Spanning Tree Protocol (STP): Возможно, у вас есть конфликты в конфигурации STP на портах коммутатора, к которым подключены ваши хосты. Убедитесь, что все порты имеют согласованные настройки STP.
-
Настройка 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: Проверка конфигурации виртуальных коммутаторов
-
Проверьте настройки виртуальных коммутаторов и портовых групп на ESXi: Убедитесь, что порты виртуального коммутатора (vSwitch) правильно настроены для использования VLAN и соответствуют физической сети. Убедитесь, что порты, подключенные к вашим problem-areas, правильно настроены на соответствующие VLAN.
-
Виртуальные адаптеры: Проверьте, что виртуальные адаптеры (vNIC) ваших ВМ присоединены к правильным портовым группам с соответствующей настройкой VLAN.
Шаг 3: Тестирование и диагностика
-
Логи DHCP: Посмотрите журналы DHCP на вашем DHCP-сервере (который находится на ESXi 2). Это поможет вам увидеть, получает ли сервер запросы от клиентов, и были ли какие-либо ошибки.
-
Проверка подключения: После перезагрузки ВМ, попробуйте выполнить команду
ping
до DHCP-сервера с ВМ, чтобы убедиться, что его можно достичь. -
Тайм-аут запроса: Убедитесь, что вы не слишком рано определяете, что DHCP-запрос не сработал. Обычно время ожидания может зависеть от нескольких факторов, включая сетевые задержки.
Шаг 4: Дополнительные проверки
-
Настройки VMware: Убедитесь, что все обновления для ваших ESXi-хостов установлены, и проверьте наличие известных проблем с версией ESXi 5.5, которые могут вызывать проблемы с DHCP.
-
Роутинг VLAN: Если вы используете несколько VLAN, убедитесь, что маршрутизатор (или уровень 3 коммутатор) правильно настроен для маршрутизации между VLAN, если это необходимо.
Заключение
Во многом ваша проблема связана с конфигурацией Cisco-коммутатора и настройкой DHCP. Настроив DHCP Helper и проверив конфигурацию VLAN, вы, вероятно, сможете решить проблему с получением DHCP-адресов после перезагрузки ВМ. Если после выполнения этих шагов проблема не решится, рассмотрите возможность использования инструмента анализа трафика, например Wireshark, для более глубокой диагностики проблемы.