Протокол обнаружения службы загрузки ( BSDP ) - это стандартное расширение DHCP, разработанное Apple . [1] Это позволяет компьютерам Macintosh загружаться с загрузочных образов по сети вместо локальных носителей, таких как CD , DVD или жесткий диск . Используемые параметры DHCP - это параметр «информация о производителе» (номер 43) и параметр «идентификатор класса поставщика» (номер 60). Существует три версии BSDP, хотя обычно используется версия 1.0. Все версии позволяют клиенту выбирать из нескольких загрузочных образов, предлагаемых сервером . Вэталонная реализация [ постоянная битая ссылка ] БСДП является Darwin «s BOOTP сервер, который является частью Mac OS » s NetBoot функции.
Описание
Содержание идентификатора класса поставщика DHCP
Сервер и клиент DHCP отправляют параметр класса поставщика, который содержит строку в кодировке ASCII с тремя частями, разделенными символом / . Первая часть - это AAPLBSDPC , рекламирующая возможности BSDP . Вторая часть - это архитектура клиента (« ppc » или « i386 »). Третья часть - это системный идентификатор. Например, Intel -На ИМАК посылает
AAPLBSDPC / i386 / iMac4,1
как его класс поставщика. Список классов поставщиков Microsoft можно найти здесь .
Содержимое параметров информации поставщика DHCP
Согласно RFC 2132 опция DHCP с номером 43 зарезервирована для конкретной информации производителя. Эта информация хранится в следующем формате:
Code Len Информация о производителе + ----- + ----- + ----- + ----- + --- | 43 | п | i1 | i2 | ... + ----- + ----- + ----- + ----- + ---
Если поставщик хочет передать несколько параметров в этом поле параметров, это делается с помощью инкапсулированных расширений, зависящих от поставщика. Расширения, инкапсулированные поставщиком, содержат одно или несколько объединенных полей. Каждое поле состоит из:
Позиция байта | Содержание |
---|---|
0 | Тип поля |
1 | Длина поля n |
2 к п -2 | Данные |
В следующей таблице описаны возможные типы полей. Все числовые поля интерпретируются как целые числа без знака и с прямым порядком байтов .
Тип | Имея в виду | Тип данных |
---|---|---|
1 | Тип сообщения | 8- битное int
|
2 | Используемая версия BSDP | 16-битное целое
|
3 | Идентификатор сервера | IP-адрес сервера, один байт на компонент: c0 a8 64 01 представляет 192.168.100.1 |
4 | Приоритет сервера | 16-битное целое |
5 | Порт для ответа | 16-битное целое |
6 | "путь к списку загрузочных образов" | Нить |
7 | ID стандартного загрузочного образа | 32-битное int (Согласно документации Apple , идентификатор загрузочного образа может составлять до 65535. Он состоит из 16 бит; однако 32 бита зарезервированы. Во всех наблюдаемых идентификаторах наиболее значимые 16 бит всегда равны 1000 0001 0000 0000 (0x8100), что, вероятно указывает тип и версию загружаемой операционной системы.) |
8 | ID выбранного загрузочного образа | 32-битное int |
9 | Список загрузочных образов | ? |
10 | "прошивка netboot 1.0" | ? |
11 | Список ошибок для атрибута изображения | ? |
12 | Максимальный размер сообщения | ? |
128 | "путь теневого монтирования" | Строка ( URL ) Здесь можно указать доступное по сети монтирование, куда будут записываться данные после успешной загрузки. Если это поле не указано и на клиенте нет локально доступного носителя, то процесс загрузки Mac OS X прерывается. Официально Mac OS X поддерживает только теневые пути монтирования AFP . Однако NFS можно использовать после изменения файлов запуска системы. |
129 | "путь к теневому файлу" | Строка (URL) |
130 | "имя машины" (Имя системы для загрузки?) | Нить |
Пример
Следующий пример иллюстрирует создание опции Vendor Encapsulated Option:
0000 01 01 02 08 04 81 00 07 e5 82 0a 4e 65 74 42 6f 6f ........ ..NetBoo 0010 74 30 30 31 t001
Первое поле здесь, 01 01 02, означает, что пакет является сообщением BSDP «SELECT». 01 объявляет, что поле определяет тип сообщения BSDP. Следующий 01 указывает, что содержимое поля имеет длину один байт - 02 - это код для «ВЫБРАТЬ».
Следующее сообщение 08 04 81 00 07 e5 означает, что выбран загрузочный образ с идентификатором 2164262885.
Наконец, 82 0a 4e 65 74 42 6f 6f 74 30 30 31 означает, что строка с 0x 0a = 10 символами, а именно «NetBoot001», является именем системы для загрузки.
Источники
- Документация BSDP от Apple bootpd
- несколько разговоров, записанных с помощью Wireshark
- Исходный код из Darwin «s BOOTP сервера, https://opensource.apple.com/darwinsource/tarballs/apsl/bootp-133.8.tar.gz [ постоянная битая ссылка ]
Рекомендации
- ^ «NetBoot 2.0: протокол обнаружения службы загрузки (BSDP)» (DOC) . Apple , Inc . 2003-12-08 . Проверено 22 июля 2010 .