Para poder co­mu­ni­car­se entre ellos en redes como Internet, los sistemas pa­r­ti­ci­pa­n­tes necesitan una dirección IP. En principio, esta se puede asignar de forma manual; sin embargo, en la práctica, la mayoría de los di­s­po­si­ti­vos la vinculan de forma au­to­má­ti­ca. Para ello es necesario el protocolo de co­mu­ni­ca­ción DHCP, que apoya a los sistemas que buscan conexión en la obtención de la in­fo­r­ma­ción necesaria. En los primeros días de los or­de­na­do­res y las redes, el protocolo de arranque, también conocido como BOOTP, asumió la función del gestor de di­re­c­cio­nes.

¿Qué es BOOTP?

En se­p­tie­m­bre de 1985, el Stanford Uni­ve­r­si­ty Network Group (grupo de redes de la Uni­ve­r­si­dad de Stanford) publicó en el RFC 951 la primera versión del protocolo de arranque (BOOTP). Este protocolo de co­mu­ni­ca­ción, que se de­sa­rro­lló en co­la­bo­ra­ción con un equipo de trabajo del fa­bri­ca­n­te de or­de­na­do­res Sun Mi­cro­s­y­s­te­ms, permitió por primera vez a los te­r­mi­na­les y las es­ta­cio­nes de trabajo sin disco duro uti­li­za­dos por aquel entonces obtener, además de la dirección IP, in­fo­r­ma­ción como la dirección de la puerta de enlace, la dirección del servidor de arranque y el di­re­c­to­rio del archivo de arranque (necesario para cargar el sistema operativo). Sustituyó al hasta entonces utilizado protocolo de re­so­lu­ción de di­re­c­cio­nes inverso (RARP), que se limitaba a entregar di­re­c­cio­nes de red y solo podía uti­li­zar­se en subredes.

El protocolo de arranque forma parte de la familia de pro­to­co­los de Internet y funciona, al igual que muchos otros pro­to­co­los de la pila, según el modelo cliente-servidor. El in­te­r­ca­m­bio de mensajes para la tra­n­s­mi­sión de la in­fo­r­ma­ción de red también tiene lugar entre un cliente BOOTP y el servidor BOOTP. Como protocolo para el tra­n­s­po­r­te de los paquetes de datos se ha previsto el protocolo de da­ta­gra­mas de usuario mínimo y sin conexión, (puertos 67 y 68) (UDP). En co­m­pa­ra­ción con el TCP, este no es solo menos complejo, sino que además permite, a di­fe­re­n­cia del protocolo estándar para el tra­n­s­po­r­te de datos, la difusión de audio y vídeo en tiempo real. Puesto que, al es­ta­ble­cer la conexión, el cliente no conoce ni su propia dirección ni la del servidor BOOTP, este método de me­n­sa­je­ría, mediante el cual se contacta a todos los pa­r­ti­ci­pa­n­tes de la red, es la única solución para la obtención au­to­má­ti­ca de la dirección.

Así funciona el in­te­r­ca­m­bio de in­fo­r­ma­ción de red con BOOTP

La asi­g­na­ción de di­re­c­cio­nes a través de BOOTP está basada en un sencillo in­te­r­ca­m­bio de mensajes de dos pasos entre el cliente y el servidor, en el que el co­m­po­ne­n­te cliente es el iniciador. Puesto que al principio este no conoce ni su propia dirección IP ni la del servidor BOOTP, envía una solicitud general ("BOO­TRE­QUE­ST") a la dirección de grupo de difusión 255.255.255.255. El servidor, que escucha el puerto UDP 67, recibe y procesa la solicitud, que consiste pri­n­ci­pa­l­me­n­te en asignar la dirección IP correcta a la dirección MAC del sistema cliente. A co­n­ti­nua­ción, se envía al cliente la respuesta ("BOOTREPLY") por difusión (broadcast) junto con in­fo­r­ma­ción de red adicional. A partir de ese momento el cliente puede vincular el sistema operativo a través de la red.

Nota

Si el cliente ya conoce la dirección del servidor BOOTP, puede enviarle a este la solicitud di­re­c­ta­me­n­te a través de una conexión de uni­di­fu­sión.

Esta es la es­tru­c­tu­ra de los mensajes que envían el cliente y el servidor durante la co­mu­ni­ca­ción a través del protocolo de arranque:

Cada mensaje BOOTP comienza con un campo op de 8 bits que define el tipo de operación o el mensaje. Para so­li­ci­tu­des por parte del cliente, en este punto se establece el valor 1 (para BOO­TRE­QUE­ST), mientras que las re­s­pue­s­tas del servidor muestran el valor 2 (para BOOTREPLY). Le siguen 8 bits que indican el tipo ("htype"), así como la longitud de la dirección de hardware ("hlen"). El campo "hops", también de 8 bits, indica el número de es­ta­cio­nes in­te­r­me­dias que atraviesa el paquete en su camino hacia el de­s­ti­na­ta­rio. En so­li­ci­tu­des del cliente el valor siempre es 0.

El bloque siguiente contiene un ide­n­ti­fi­ca­dor de tra­n­sac­ción al azar de 32 bits de largo, generada por el cliente, que también se utiliza en la respuesta del servidor, para que el cliente pueda cla­si­fi­car­las con claridad. El cliente también rellena el campo "Tiempo" (16 bits), que indica los segundos que han pasado desde el intento de arranque del cliente. El final de la in­fo­r­ma­ción in­tro­du­c­to­ria forma otro campo de 16 bits que permanece to­ta­l­me­n­te vacío. Las si­guie­n­tes entradas del paquete BOOTP se co­rre­s­po­n­den con la in­fo­r­ma­ción de red real, que se incluye en la siguiente lista:

  • Dirección IP del cliente (ciaddr): con la etiqueta "ciaddr" (client ip address, dirección ip de cliente) se distingue el campo de 32 bits en el que el cliente introduce su propia dirección IP, siempre que la conozca. Si no es el caso, el campo contiene el valor 0.
  • Dirección IP asignada (yiaddr): el campo "yiaddr" (your ip address, tu dirección ip) también está reservado para la dirección IP del cliente. A di­fe­re­n­cia de la sección del paquete me­n­cio­na­do an­te­rio­r­me­n­te, el servidor rellena este campo de 32 bits en caso de que el cliente no conozca su dirección IP en el momento en que se crea la solicitud de red.
  • Dirección IP del servidor (siaddr): en la secuencia de 32 bits "siaddr" (server ip address, dirección ip del servidor), el servidor BOOTP comparte con el cliente su propia dirección IP.
  • Dirección IP del router (giaddr): si hay una puerta de enlace (p.ej. un router) integrada en el proceso de co­mu­ni­ca­ción, su dirección se introduce en el campo "giaddr" (gateway ip address, dirección ip de la puerta de enlace).
  • Dirección de hardware del cliente (chaddr): la dirección de hardware (128 bits) es uno de los datos obli­ga­to­rios del cliente durante el in­te­r­ca­m­bio de mensajes. Sin estas di­re­c­cio­nes MAC, el servidor no puede asignar la dirección correcta ni el parámetro de red co­rre­s­po­n­die­n­te.
  • Nombre de host del servidor (sname): Op­cio­na­l­me­n­te, el servidor también puede es­pe­ci­fi­car la respuesta BOOTP en su nombre de equipo. Para ello, está di­s­po­ni­ble un campo de hasta 512 bits, en el que puede in­tro­du­cir una cadena de ca­ra­c­te­res terminada en cero (el cero indica el final de la cadena).
  • Nombre del archivo de arranque (file): op­cio­na­l­me­n­te, también se puede es­pe­ci­fi­car un archivo de arranque es­pe­cí­fi­co que el cliente ne­ce­si­ta­rá para iniciar el sistema operativo en el terminal o la estación de trabajo. Este campo también pro­po­r­cio­na una cadena de ca­ra­c­te­res terminada en cero que, en este caso, reproduce la ruta completa del di­re­c­to­rio del archivo. La secuencia de ca­ra­c­te­res puede tener hasta 1024 bits de largo. En la petición del cliente aparece, o bien el valor 0, o un nombre genérico.
  • In­fo­r­ma­ción es­pe­cí­fi­ca del fa­bri­ca­n­te (vend): la in­fo­r­ma­ción es­pe­cí­fi­ca del fa­bri­ca­n­te, que no está cubierta por el protocolo, marca el final del mensaje. Se puede tratar, por ejemplo, de in­fo­r­ma­ción sobre tipos o números de serie de hardware. Además, este dato in­fo­r­ma­ti­vo de 512 bits se puede reservar para un tercer proceso de arranque o proceso operativo.

En general, los mensajes BOOTP también pueden tener una longitud de hasta 2400 bits (300 bytes). El datagrama UDP/IP completo, incluidas las so­li­ci­tu­des y re­s­pue­s­tas del protocolo de arranque integrado, tienen la siguiente co­n­s­tru­c­ción:

BOOTP vs. DHCP: por qué hoy ya no se utiliza el protocolo de arranque

Para clientes de terminal y es­ta­cio­nes de trabajo sin disco duro, BOOTP fue la solución perfecta para obtener una dirección IP en la red y, de este modo, vincular el sistema operativo. El hecho de que la asi­g­na­ción de la dirección por el protocolo de co­mu­ni­ca­ción pudiese so­lu­cio­nar­se de forma si­mu­l­tá­nea al proceso de arranque fue algo práctico y sencillo para los or­de­na­do­res de sobremesa, que empezaron a uti­li­zar­se en redes con tamaños más ma­ne­ja­bles. Por ello, era pro­ble­má­ti­co, por ejemplo, que el ad­mi­ni­s­tra­dor tuviese que co­n­fi­gu­rar ma­nua­l­me­n­te las tablas de in­fo­r­ma­ción de red del servidor BOOTP.

Sin embargo, a medida que las redes fueron creciendo y los or­de­na­do­res ad­qui­rie­ron autonomía, y gracias al de­sa­rro­llo de los di­s­po­si­ti­vos po­r­tá­ti­les más móviles, no poder au­to­ma­ti­zar el proceso de co­n­fi­gu­ra­ción se apreciaba como un factor negativo. El deseo de un nuevo protocolo era evidente. Con el protocolo de co­n­fi­gu­ra­ción dinámica de host (DHCP) en el año 1993 se encontró un sucesor (es­pe­ci­fi­ca­ción final en el RFC 2131). DHCP está basado, en gran parte, en la es­tru­c­tu­ra del protocolo de arranque, co­m­ple­me­n­ta­do, sin embargo, con di­fe­re­n­tes opciones de co­n­fi­gu­ra­ción adi­cio­na­les y ofrece la po­si­bi­li­dad de asignar di­re­c­cio­nes de red re­uti­li­za­bles a clientes que buscan conexión. Además, la asi­g­na­ción de in­fo­r­ma­ción sobre di­re­c­cio­nes con DHCP también funciona durante la operación actual del sistema: con BOOTP no es necesario reiniciar.

Estas son las di­fe­re­n­cias más im­po­r­ta­n­tes entre ambos pro­to­co­los:

  BOOTP DHCP
Co­n­fi­gu­ra­ción au­to­má­ti­ca La asi­g­na­ción de di­re­c­cio­nes IP requiere la co­n­fi­gu­ra­ción manual de las tablas de di­re­c­cio­nes Soporta la asi­g­na­ción au­to­má­ti­ca y la obtención au­to­má­ti­ca de di­re­c­cio­nes IP (también la co­n­fi­gu­ra­ción manual)
Di­re­c­cio­nes IP te­m­po­ra­les No es posible Es posible durante un periodo de tiempo limitado
Soporte para di­s­po­si­ti­vos móviles No es posible la co­n­fi­gu­ra­ción IP y el acceso a la in­fo­r­ma­ción de la red Soporta la movilidad de los clientes de red
Índice de errores Índice de errores elevado debido a la co­n­fi­gu­ra­ción manual Prá­c­ti­ca­me­n­te inmune a los errores gracias a la co­n­fi­gu­ra­ción au­to­má­ti­ca de los co­m­po­ne­n­tes de red
Re­qui­si­tos del sistema Ninguno Requiere disco duro para almacenar y reenviar la in­fo­r­ma­ción

Gracias a las di­fe­re­n­tes op­ti­mi­za­cio­nes, DHCP se convirtió rá­pi­da­me­n­te en el protocolo estándar para la gestión de IP en redes, mientras que en la ac­tua­li­dad el protocolo BOOTP solo tiene un valor histórico. Puesto que DHCP soporta el protocolo de arranque, los se­r­vi­do­res DHCP, en principio, también pueden dar respuesta a todo tipo de so­li­ci­tu­des rea­li­za­das por un cliente BOOTP.

Ir al menú principal