SCCM; OSD; WDS; PXE; UEFI & BIOS & DHCP options 66, 67. Часть 1: DHCP Relay Agent

С периодичностью в неделю на профильных ресурсах возникает один и тот же вопрос – “У меня появилось устройство, загружающееся по UEFI и вот оно не загружается, в DHCP опции 67 меняю, теперь UEFI — работает, а BIOS (legacy) нет”.

Давайте разбираться.

Есть два способа правильно обрабатывать запрос клиента и выдавать ему правильный загрузчик.

  • “DHCP Relay Agent” — когда WDS Сервер сам определяет архитектуру загрузчика клиента и отправляет клиенту информацию с правильным загрузчиком;
  • “Vendor Classes Filtering” — т.е. продолжать использовать DHCP Options 66, 67, но с дополнительной фильтрацией клиентского запроса по “Vendor class identifier”.

DHCP Relay Agent

Условие №1: Сетевой загрузчик UEFI — появляется в WDS 2008, но сам сервер не определяет, должным образом, архитектуру загрузчика клиента. Поэтому если у вас WDS от Windows Server 2008, 2008R2 — обновляемся минимум до Windows Server 2012.

Для начала кратенько — как происходит сам процесс получения настроек сети, сервера PXE и файла, который надо скачать и запустить новому PXE-клиенту.

PXE не имеет выделенного протокола загрузки, а опирается на протокол DHCP, запрашивая дополнительные DHCP-опции касающиеся PXE (60, 66, 67).

Возьмем самую распространённую схему – “DHCP и WDS (PXE) — отдельные сервера”. И на DHCP не настроены никакие опции, касающиеся PXE.

  1. (Discover) PXE-Клиент отправляет пакет, с списком DHCP-options которые его интересуют (Option 55 — Parameter Request List), в этот пакет входят опции и про PXE. Так же клиент сообщает информацию о себе:

    — Option 93, свой тип архитектуры системы – “Client System Architecture”, например, EFI BC (7);

    — И Option 60 — Vendor class identifier, например, PXEClient:Arch:00007:UNDI:003000;

  2. (Offer) DHCP сервер-а, получившие “запрос” клиента, резервируют под клиента IP и отправляют широковещательный пакет – “Предложение” клиенту;
    2.1 От DHCP-сервера, в этом “предложении” отправляются — предлагаемые IP-адрес, маска, DNS-сервера, время аренды и т.д.;
    2.2 WDS-сервер так же “прикидывается” DHCP-сервером и отправляет клиенту дополнительные опции, которые относятся к его деятельности — Option 60 — Vendor class identifier: PXEClient, что означает – “Я загрузочный сервер или имею информацию о нём и загрузочном файле, если меня спросят”;
  3. (Request) Клиент подтверждает DHCP-серверу, что будет использовать предложенный IP-адрес и прочие настройки. В этом пакете клиент так же сообщает информацию о себе:

    — Option 93, свой тип архитектуры системы – “Client System Architecture”, например, EFI BC (7);

    — И Option 60 — Vendor class identifier, например, PXEClient:Arch:00007:UNDI:003000;

  4. (Acknowledgement) DHCP — шлет клиенту пакет-подтверждение что IP-адрес ему выдан;
  5. (Request) Клиент шлет пакет WDS-серверу, запрашивает указанный файл для загрузки (67);
  6. (Acknowledgement) WDS-сервер указывает клиенту файл для загрузки, например, Boot file name: smsboot\x64\bootmgfw.efi.

Первые четыре пакета отправляются используя broadcast, последние два — unicast.

clip_image001

Важный момент. Пока PXE-клиент не получит, от кого бы то небыло –“DHCP-Offer”, содержащий — Option 60 или 67, он будет продолжать спрашивать, широковещательными пакетами – “где ты мой друг?” (DHCP Discover). Каждый раз увеличивая интервал запроса, пока не устанет и скажет – “все я устал, отключаюсь”, передавая загрузку следующему методу загрузки…

В пункте 2.2 и заключается вся суть вопроса. Необходимо чтобы WDS-сервер, наряду с сервером DHCP, получал запрос (п.1) от клиента.

Как этого добиться. Если клиент и WDS-сервер в одном широковещательном домене — ничего делать не надо (кроме как убрать с DHCP-скоупа все опции про PXE 60, 66, 67, если ранее они были определены).

Если клиент и DHCP, WDS — сервера в разных сетях — у вас скорее всего уже работает DHCP-Relay Agent (так же известные как IP Helper или DHCP-Forwarder), который слушает широковещательные запросы от клиентов и перенаправляет их на сервер DHCP. Единственно что вам надо сделать это добавить в него ещё один адрес — IP-адрес WDS-сервера.

На RRAS-Сервере, например, это будет выглядеть так:

clip_image002

На D-Link это может выглядеть так:

clip_image003

На Microtik:

clip_image004

Если же у вас в каждой подсети свой DHCP-сервер, то остается второй вариант с фильтрацией по “Vendor Classes”, который рассмотрим в следующий раз.

Реклама
Запись опубликована в рубрике OSD, SCCM, Tricks. Добавьте в закладки постоянную ссылку.

1 отзыв на “SCCM; OSD; WDS; PXE; UEFI & BIOS & DHCP options 66, 67. Часть 1: DHCP Relay Agent

  1. Уведомление: SCCM; OSD; WDS; PXE; UEFI & BIOS & DHCP options 66, 67. Часть 2: Vendor Classes | Sergey Korotkov's Blog

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

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google photo

Для комментария используется ваша учётная запись Google. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s