Boot Service Discovery Protocol ( BSDP ) es una extensión de DHCP que cumple con los estándares y desarrollada por Apple . [1] Permite que las computadoras Macintosh se inicien desde imágenes de inicio en una red en lugar de medios de almacenamiento locales como CD , DVD o disco duro . Las opciones de DHCP utilizadas son la opción "información específica del proveedor" (número 43) y la opción "identificador de clase de proveedor" (número 60). Hay tres versiones de BSDP, aunque normalmente se utiliza la versión 1.0. Todas las versiones permiten a un cliente elegir entre varias imágenes de arranque ofrecidas por un servidor . LaLa implementación de referencia [ enlace muerto permanente ] de BSDP es el servidor BOOTP de Darwin , que forma parte de la función NetBoot de Mac OS .
Descripción
Contenido del identificador de clase de proveedor DHCP
El servidor y el cliente DHCP envían una opción de clase de proveedor que contiene una cadena codificada en ASCII con tres partes delimitadas por un carácter / . La primera parte es AAPLBSDPC , que anuncia la capacidad BSDP. La segunda parte es la arquitectura del cliente (" ppc " o " i386 "). La tercera parte es un identificador del sistema. Por ejemplo, un iMac basado en Intel envía
AAPLBSDPC / i386 / iMac4,1
como su clase de proveedor. Puede encontrar una lista de clases de proveedores de Microsoft aquí .
Contenido de las opciones de información específicas del proveedor de DHCP
Según RFC 2132, la opción DHCP que lleva el número 43 está reservada para información específica del proveedor. Esta información se almacena en el siguiente formato:
Código Len Información específica del proveedor + ----- + ----- + ----- + ----- + --- | 43 | n | i1 | i2 | ... + ----- + ----- + ----- + ----- + ---
Si el proveedor desea transmitir múltiples opciones dentro de este campo de opción, esto se hace con extensiones encapsuladas específicas del proveedor. Las extensiones encapsuladas por el proveedor contienen uno o más campos concatenados. Cada campo consta de:
Posición del byte | Contenido |
---|---|
0 | Tipo de campo |
1 | Longitud n de campo |
2 hasta n -2 | Datos |
La siguiente tabla describe los posibles tipos de campo. Todos los campos numéricos se interpretan como enteros sin signo y Big Endian .
Tipo | Significado | Tipo de datos |
---|---|---|
1 | Tipo de mensaje | 8 bits int
|
2 | Versión BSDP utilizada | 16 bits int
|
3 | Identificador de servidor | Dirección IP del servidor, un byte por componente: c0 a8 64 01 representa 192.168.100.1 |
4 | Prioridad del servidor | 16 bits int |
5 | Puerto de respuesta | 16 bits int |
6 | "ruta de la lista de imágenes de arranque" | Cuerda |
7 | ID de la imagen de arranque estándar | 32 bits int (De acuerdo con la documentación de Apple , el ID de la imagen de arranque puede variar hasta 65535. Esto comprende 16 bits; sin embargo, 32 bits están reservados. En todos los ID observados, los 16 bits más significativos son siempre 1000 0001 0000 0000 (0x8100), que probablemente indica el tipo y la versión del sistema operativo que se va a arrancar.) |
8 | ID de la imagen de arranque seleccionada | 32 bits int |
9 | Lista de imágenes de arranque | ? |
10 | "firmware netboot 1.0" | ? |
11 | Lista de errores para el atributo de imagen | ? |
12 | Tamaño máximo de mensaje | ? |
128 | "ruta de montaje en la sombra" | Cadena ( URL ) Aquí es posible especificar un montaje accesible en red donde se escribirán los datos después de un arranque exitoso. Si no se especifica este campo y no hay ningún medio de almacenamiento disponible localmente en el cliente, se cancela el proceso de arranque de Mac OS X. Oficialmente, Mac OS X solo admite rutas de montaje de sombras AFP . Sin embargo, NFS se puede utilizar después de modificar los archivos de inicio del sistema. |
129 | "ruta del archivo de sombra" | Cadena (URL) |
130 | "nombre de la máquina" (¿Nombre del sistema a arrancar?) | Cuerda |
Ejemplo
El siguiente ejemplo ilustra la construcción de la opción encapsulada de proveedor:
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
El primer campo aquí, 01 01 02, significa que el paquete es un mensaje BSDP "SELECT". El 01 declara que el campo especifica el tipo de mensaje BSDP. El siguiente 01 indica que el contenido del campo tiene un byte de longitud - 02 es el código para "SELECT".
El siguiente 08 04 81 00 07 e5 significa que la imagen de arranque con el ID 2164262885 está seleccionada.
Finalmente, 82 0a 4e 65 74 42 6f 6f 74 30 30 31 significa que una cadena con 0x 0a = 10 caracteres, a saber, "NetBoot001", es el nombre del sistema a arrancar.
Fuentes
- Documentación BSDP del bootpd de Apple
- varias conversaciones capturadas con Wireshark
- El código fuente de Darwin 's BOOTP servidor, https://opensource.apple.com/darwinsource/tarballs/apsl/bootp-133.8.tar.gz [ vínculo roto permanente ]
Referencias
- ^ "NetBoot 2.0: Protocolo de descubrimiento de servicios de arranque (BSDP)" (DOC) . Apple . 2003-12-08 . Consultado el 22 de julio de 2010 .