El Protocolo de descubrimiento de servicio de arranque ( BSDP ) es una extensión de DHCP desarrollada por Apple que cumple con los estándares . [ 1 ] Permite que las computadoras Macintosh arranquen desde imágenes de arranque 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 generalmente se usa la versión 1.0. Todas las versiones permiten que un cliente elija entre varias imágenes de arranque ofrecidas por un servidor . La implementación de referencia 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 las clases de proveedores de Microsoft aquí .
Contenido de las opciones de información específica del proveedor DHCP
La opción DHCP 43 está reservada para información específica del proveedor. [ 2 ] Esta información se almacena en el siguiente formato:
Información específica del proveedor de Code Len +-----+-----+-----+-----+--- | 43 | n | i1 | i2 | ... +-----+-----+-----+-----+---
Si el proveedor desea transmitir varias opciones dentro de este campo de opciones, esto se realiza mediante extensiones específicas del proveedor encapsuladas. Las extensiones encapsuladas del proveedor contienen uno o más campos concatenados. Cada campo consta de:
La siguiente tabla describe los posibles tipos de campos. Todos los campos numéricos se interpretan como enteros sin signo y en formato Big Endian .
Ejemplo
El siguiente ejemplo ilustra la construcción de la opción encapsulada por el 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 t001El primer campo, 01 01 02, indica 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; el 02 es el código para "SELECT".
El siguiente código 08 04 81 00 07 e5 significa que se ha seleccionado la imagen de arranque con el ID 2164262885.
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 que se va a arrancar.
Fuentes
- Documentación BSDP del bootpd de Apple.
- Varias conversaciones capturadas con Wireshark.
- Código fuente del servidor BOOTP de Darwin , https://github.com/apple-oss-distributions/bootp
Referencias
- ↑ "NetBoot 2.0: Protocolo de descubrimiento de servicio de arranque (BSDP)" (DOC) . Apple Inc. 8 de diciembre de 2003. Consultado el 22 de julio de 2010 .
- ↑ S. Alexander; R. Droms (marzo de 1997). Opciones DHCP y extensiones de proveedor BOOTP . Grupo de trabajo de redes IETF . doi : 10.17487/RFC2132 . RFC 2132 .Borrador de norma. Sustituye a RFC 1533. Actualizado por RFC 3442 , 3942 , 4361 , 4833 y 5494 .