Протокол обнаружения службы загрузки
Набор интернет-протоколов |
---|
Прикладной уровень |
Транспортный уровень |
Интернет-слой |
Слой связи |
Эта статья нуждается в дополнительных цитатах для проверки . ( октябрь 2008 г. ) |
Протокол обнаружения службы загрузки ( BSDP ) — это разработанное Apple соответствующее стандартам расширение DHCP . [ 1 ] Это позволяет Macintosh компьютерам загружаться с загрузочных образов в сети вместо локальных носителей, таких как CD , DVD или жесткий диск . Используемые параметры DHCP — это опция «информация, специфичная для поставщика» (номер 43) и опция «идентификатор класса поставщика» (номер 60). Существует три версии BSDP, но обычно используется версия 1.0. Все версии позволяют клиенту выбирать из нескольких загрузочных образов, предлагаемых сервером . Эталонной реализацией BSDP является Darwin сервер BOOTP- , который является частью Mac OS функции NetBoot .
Описание
[ редактировать ]Содержимое идентификатора класса поставщика DHCP
[ редактировать ]DHCP-сервер и клиент отправляют параметр класса поставщика, который содержит строку в кодировке ASCII , состоящую из трех частей, разделенных символом / . Первая часть — AAPLBSDPC , которая объявляет о возможности BSDP. Вторая часть — архитектура клиента (« ppc » или « i386 »). Третья часть — системный идентификатор. Например, Intel на базе процессора iMac отправляет
AAPLBSDPC/i386/iMac4,1
как класс поставщика. Список классов поставщиков Microsoft можно найти здесь .
Содержание параметров информации, специфичных для поставщика DHCP
[ редактировать ]Параметр DHCP 43 зарезервирован для информации, специфичной для поставщика. [ 2 ] Эта информация хранится в следующем формате:
Code Len Vendor-specific information +-----+-----+-----+-----+--- | 43 | n | i1 | i2 | ... +-----+-----+-----+-----+---
Если поставщик хочет передать несколько параметров в этом поле параметра, это делается с помощью инкапсулированных расширений, специфичных для поставщика. Инкапсулированные расширения поставщика содержат одно или несколько объединенных полей. Каждое поле состоит из:
Позиция байта | Содержание |
---|---|
0 | Тип поля |
1 | Длина n поля |
2 к n -2 | Данные |
В следующей таблице описаны возможные типы полей. Все числовые поля интерпретируются как без знака и с обратным порядком байтов целые числа .
Тип | Значение | Тип данных |
---|---|---|
1 | Тип сообщения | 8- битное целое
|
2 | BSDP версия Используемая | 16-битное целое число
|
3 | Идентификатор сервера | IP-адрес сервера, по одному байту на компонент: c0 a8 64 01 представляет собой 192.168.100.1. |
4 | Приоритет сервера | 16-битное целое число |
5 | Порт для ответа | 16-битное целое число |
6 | "путь к списку загрузочных образов" | Нить |
7 | Идентификатор стандартного загрузочного образа | 32-битное целое число (Согласно документации Apple , идентификатор загрузочного образа может достигать 65535. Он включает 16 бит; однако 32 бита зарезервированы. Во всех наблюдаемых идентификаторах наиболее значимые 16 бит всегда равны 1000 0001 0000 0000 (0x8100), что, вероятно, указывает тип и версию загружаемой операционной системы.) |
8 | Идентификатор выбранного загрузочного образа | 32-битное целое число |
9 | Список загрузочных образов | ? |
10 | "прошивка netboot 1.0" | ? |
11 | Список ошибок для атрибута изображения | ? |
12 | Максимальный размер сообщения | ? |
128 | "Путь теневого монтирования" | Строка ( URL ) Здесь можно указать доступное по сети монтирование, куда будут записываться данные после успешной загрузки. Если это поле не указано и локально на клиенте нет доступного носителя данных, то процесс загрузки Mac OS X прерывается. Официально Mac OS X поддерживает только AFP пути теневого монтирования . Однако NFS можно использовать после изменения файлов запуска системы. |
129 | «путь к теневому файлу» | Строка (URL) |
130 | «имя машины» (имя системы для загрузки?) | Нить |
Пример
[ редактировать ]Следующий пример иллюстрирует создание инкапсулированной опции поставщика:
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 — это код «SELECT».
Следующее 08 04 81 00 07 e5 означает, что выбран загрузочный образ с идентификатором 2164262885.
Наконец, 82 0a 4e 65 74 42 6f 6f 74 30 30 31 означает, что строка с 0x 0a = 10 символами, а именно «NetBoot001», является именем загружаемой системы.
Источники
[ редактировать ]- Документация BSDP из bootpd Apple.
- несколько разговоров, записанных с помощью Wireshark
- Исходный код сервера Darwin . BOOTP- , https://github.com/apple-oss-distributions/bootp
Ссылки
[ редактировать ]- ^ «NetBoot 2.0: протокол обнаружения службы загрузки (BSDP)» (DOC) . Apple Inc. 08.12.2003 . Проверено 22 июля 2010 г.
- ^ С. Александр; Р. Дромс (март 1997 г.). Опции DHCP и расширения поставщиков BOOTP . Сетевая рабочая группа. дои : 10.17487/RFC2132 . РФК 2132 . Проект стандарта. Устаревшие RFC 1533. Updated by RFC 3442 , 3942 , 4361 , 4833 и 5494 .