Загрузка UEFI PXE через подсети
Я пытаюсь загрузить ПК с WDS-сервера Windows 2012R2 в режиме UEFI. Если и только если клиент находится в другой подсети от серверов DHCP/PXE, с некоторыми из них это не получится. (Он всегда работает в режиме BIOS, но мне нужен UEFI.)
Симптом заключается в том, что после начальной последовательности запросов / предложений / запросов / подтверждений DHCP работающие клиенты обращаются к серверу PXE, чтобы получить информацию о загрузке, а отказавшие - нет.
Есть два DHCP-сервера (также 2012R2) в дополнение к PXE. На них не настроены параметры 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. БИОСы являются актуальными и не старше нескольких месяцев на всех задействованных устройствах.
Мне кажется, что прошивка UEFI не знает, как использовать маршрутизатор. Есть ли способ заставить это работать?
2 ответа
Проблема в клиенте; Я должен был присмотреться к следам своих пакетов. Я только что выяснил, что сразу после получения DHCP ACK от обычного DHCP-сервера отказавший клиент начинает ARPing для PXE-сервера, конечно же, ни к чему не привлекая.
Так что проблема действительно в том, что прошивка не понимает роутеры.
Ваша стратегия DHCP - беспорядок. У вас не должно быть более одного DHCP-сервера на сеть, а PXE-сервер выступает в роли proxyDHCP.
Более одного DHCP-сервера приводит к условиям гонки; Вы не можете предсказать, какой DHCP в конечном итоге предоставит IP клиенту.
у вас, вероятно, есть какой-то другой DHCP во второй сети, и предложение proxyDHCP (PXE-сервер), вероятно, никогда не попадет на другую сторону.
Вы должны внимательно прочитать захват Wireshark; загрузил его куда-нибудь, и мы можем помочь.