Tabla de contenidosLPD("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:

  1. El cliente determina su propia dirección hardware; esta suele estar en una ROM del hardware.
  2. 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.
  3. 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:
  1. 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 contenidosDHCP ("Dynamic Host Configuration Protocol")