Я пытаюсь загрузить ПК с сервера WDS Windows 2012R2 в режиме UEFI. Если, и только если клиент находится в подсети, отличной от подсети DHCP / PXE-серверов, это не сработает с некоторыми из них. (Он всегда работает в режиме BIOS, но мне нужен UEFI.)
Симптомом является то, что после начальной последовательности DHCP-запроса / предложения / запроса / подтверждения рабочие клиенты связываются с PXE-сервером для получения информации о загрузке, а отказавшие клиенты - нет.
В дополнение к PXE есть два DHCP-сервера (также 2012R2). На них не настроены параметры DHCP, связанные с загрузкой; Ретрансляция DHCP включена в сети и ретранслируется на все три сервера.
Это список пакетов при загрузке работающего клиента:
1 DHCP Discover - Transaction ID 0xe828c4bc
2 DHCP Offer - Transaction ID 0xe828c4bc (from first DHCP)
3 DHCP Offer - Transaction ID 0xe828c4bc (from PXE)
4 DHCP Offer - Transaction ID 0xe828c4bc (from second DHCP)
5 DHCP Request - Transaction ID 0xe828c4bc (to first DHCP)
6 DHCP ACK - Transaction ID 0xe828c4bc (from first DHCP)
7 4011 → 4011 Len=347 (to PXE)
8 4011 → 4011 Len=349 (from PXE)
9 TFTP Read Request, File: boot\x64\wdsmgfw.efi, (to PXE)
...
С отказавшим клиентом это выглядит точно так же до строки 6, затем ничего не происходит; он просто не связывается с PXE-сервером.
Я сравнил содержимое пакета в Wireshark, и кроме значений, которые зависят от того, в какой сети находится клиент (giaddr, маршрутизатор и т. Д.), Все предложения идентичны для рабочих и неудачных случаев.
Похоже, это влияет на определенные BIOS / прошивки: рабочие клиенты включают VMware Workstation и ESXi, а также Intel NUC, и это не удается с материнскими платами Asus B150M-C и по крайней мере одним Dell Optiplex. На всех задействованных устройствах используются текущие версии BIOS, возраст которых не превышает нескольких месяцев.
Мне кажется, что прошивка UEFI не умеет пользоваться роутером. Есть ли способ заставить это работать?
Проблема в клиенте; Мне следовало более внимательно изучить следы моих пакетов. Я только что понял, что сразу после того, как он получает DHCP ACK от обычного DHCP-сервера, отказавший клиент начинает ARPing для PXE-сервера, конечно, ни к чему не придя.
Так что проблема действительно в том, что прошивка не понимает роутеры.
ваша стратегия DHCP - беспорядок. У вас не должно быть более одного DHCP-сервера в сети, а PXE-сервер действует как proxyDHCP.
Наличие более одного DHCP-сервера приводит к состояниям гонки; вы не можете предсказать, какой DHCP в конечном итоге действительно предоставит IP клиенту.
у вас, вероятно, есть другой DHCP во второй сети, и предложение proxyDHCP (PXE-сервер), вероятно, никогда не перейдет на другую сторону.
Вам следует внимательно прочитать захват Wireshark; где-то загрузили, и мы можем помочь.