Tabla de contenidos
LPD("Line Printer Daemon")
4.17 Protocolo BOOTstrap - BOOTP
BOOTP es un borrador de protocolo de Internet. Su status es recomendado. Las especificaciones de BOOTP se pueden encontrar en los RFC 951 - Bootstrap y RFC 1497 - Extensiones de la información de los distribuidores de BOOTP.
Además hay actualizaciones de BOOTP que lo permiten interoperar con DHCP(ver DHCP("Dynamic Host Configuration Protocol")).Estas se describen en el RFC 1542 - Aclaraciones y extensiones para el protocolo Bootstrap que actualiza a los RFC 951 y RFC 1533 - Opciones y extensiones de DHCPs, que desfasa al RFC 1497. Dichas actualizaciones de BOOTP son estándares propuestos con status electivo.
Las LANs hacen posible usar host sin disco como estaciones de trabajo, "routers" concentradores de terminales, etc. Los host sin disco requieren de algún mecanismo para el arranque remoto sobre una red. El protocolo BOOTP se utiliza para efectuar arranques remotos en redes IP. Permite que una pila de IP mínima sin información de configuración, típicamente almacenada en la ROM, obtenga información suficiente para comenzar el proceso de descargar el código de arranque necesario. BOOTP no define como se realiza esta descarga, pero habitualmente se emplea TFTP (ver también TFTP("Trivial File Transfer Protocol")) como se describe en el RFC 906 - Carga en Bootstrap usando TFTP.
El proceso BOOTP implica los siguientes pasos:
- El cliente determina su propia dirección hardware; esta suele estar en una ROM del hardware.
- El cliente BOOTP envía su dirección hardware en un datagrama UDP al servidor. El contenido completo de este datagrama se muestra en Figura - Formato de mensaje de BOOTP. Si el cliente conoce su dirección IP y/o la dirección del servidor, debería usarlas, pero en general los clientes BOOTP carecen de configuración IP en absoluto. Si el cliente desconoce su dirección IP, emplea la 0.0.0.0. Si desconoce la dirección IP del servidor, utiliza la dirección de broadcast limitado(255.255.255.255). El número del puerto UDP es el 67.
- El servidor recibe el datagrama y busca la dirección hardware del cliente en su fichero de configuración, que contiene la dirección IP del cliente. El servidor rellena los campos restantes del datagrama UDP y se lo devuelve al cliente usando el puerto 68. Hay tres métodos posibles para hacer esto:
- Si el cliente conoce su propia dirección IP(incluida en la solicitud BOOTP), entonces el servidor devuelve directamente el datagrama a esa dirección. Es probable que la caché de ARP en la pila de protocolos del servidor desconozca la dirección hardware correspondiente a esa dirección IP. Se hará uso de ARP para determinarla del modo habitual.
- Si el cliente desconoce su propia dirección IP(0.0.0.0 la solicitud BOOTP), entonces el servidor se ocupa de averiguarla con su propia caché de ARP. El servidor no puede usar ARP para resolver la dirección hardware del cliente porque el cliente no sabe su dirección IP y por lo tanto no puede responder a una petición ARP. Es el problema de la pescadilla que se muerde la cola. Hay dos soluciones posibles:
- Si el servidor tiene un mecanismo para actualizar directamente su propia caché ARP sin usar ARP, lo utiliza y envía directamente el datagrama.
- Si el servidor no puede actualizar su propia caché, debe enviar una respuesta en forma de broadcast.
- Cuando reciba la respuesta, el cliente BOOTP grabará su dirección IP(permitiéndole responder a peticiones ARP) y comenzará el proceso de arranque.

Figura: Formato de mensaje de BOOTP
- code
- Indica una solicitud o una respuesta
- 1
- Request
- 2
- Reply
- HWtype
- El tipo de hardware, por ejemplo:
- 1
- Ethernet
- 6
- IEEE 802 Networks
Remitirse a STD 2 - Números asignados de Internet para un alista completa.
- length
- Longitud en bytes de la dirección hardware. Ethernet y las redes en anillo usan 6, por ejemplo.
- hops
- El cliente lo pone a 0. Cada "router" que retransmite la solicitud a otro servidor lo incrementa, con el fin de detectar bucles. El RFC 951 sugiere que un valor de 3 indica un bucle.
- Transaction ID
- Número aleatorio usado para comparar la solicitud con la respuesta que genera.
- Seconds
- Fijado por el cliente. Es el tiempo transcurrido en segundos desde que el cliente inició el proceso de arranque.
- Flags Field
- El bit más significante de este campo se usa como flag de broadcast. Todos los demás bits deben estar a 0; están reservados para usos futuros. Normalmente, los servidores BOOTP tratan de entregar los mensajes BOOTREPLY directamente al cliente usando unicast. La dirección de destino en la cabecera IP se pone al valor de la dirección IP fijada por el servidor BOOTP, y la dirección MAC a la dirección hardware del cliente BOOTP. Si un host no puede recibir un datagrama IP en unicast hasta saber su propia dirección IP, el bit de broadcast se debe poner a 1 para indicar al servidor que el mensaje BOOTREPLY se debe enviar como un broadcast en IP y MAC. De otro modo, este bit debe ponerse a cero.
- Client IP adress
- Fijada por el cliente. O bien es su dirección IP real , o 0.0.0.0.
- Your IP Address
- Fijada por el servidor si el valor del campo anterior es 0.0.0.0
- Server IP address
- Fijada por el servidor.
- Router IP address
- Fijada por el "router" retransmisor si se usa retransmisión BOOTP.
- Client hardware address
- Fijada por el cliente y usada por el servidor para identificar cuál de los clientes registrados está arrancando.
- Server host name
- Nombre opcional del host servidor acabado en X'00'.
- Boot file name
- El cliente deja este campo vacío o especifica un nombre genérico, tal como "router", indicando el tipo de archivo de arranque a usar. El servidor devuelve el nombre completo del fichero o bien el de un fichero de arranque adecuado para el cliente. Su valor tiene como terminador a la secuencia X'00.
- Vendor-specific area
- Área específica del distribuidor(opcional). Se recomienda que el cliente llene siempre los cuatro primeros bytes con un "magic cookie" o galleta mágica. Si el cookie específica de un distribuidor no se usa, el cliente debería utilizar 99.130.83.99 seguido de una marca de fin(255) y fijar los bis restantes a cero. Remitirse al RFC 1533 para más detalles.
Una restricción a este esquema es el uso del broadcast limitado para las solicitudes BOOTP; requiere que el servidor esté en la misma subred que el cliente. La retransmisión BOOTP es un mecanismo para que los "routers" transmitan solicitudes BOOTP. Es una opción de configuración disponible en algunos "routers". Ver el RFC 951 para más información.
Una vez que el cliente BOOTP ha procesado la respuesta, puede proceder con la transferencia del fichero de arranque y ejecutar el proceso de arranque completo. Ver el RFC 906 para la especificación de como se hace esto con TFTP. El proceso de arranque completo reemplaza la pila mínima de IP usada por BOOTP y TFTP por una pila IP normal transferida como parte del fichero de arranque, que contiene la configuración correcta para el cliente.
Tabla de contenidos
DHCP ("Dynamic Host Configuration Protocol")