Home UC3M
Home IT

Implementación de RFC 2131: Dynamic Host Configuration Protocol (DHCP)

 INTRODUCCIÓN


El objetivo de esta práctica es desarrollar una implementación simplificada del protocolo RFC 2131: Dynamic Host Configuration Protocol (DHCP), que permite a dispositivos de red (clientes) la obtención de los parámetros necesarios para su conexión a una red. DHCP es tanto un protocolo de arranque como de autoconfiguración. Es un protocolo de arranque ya que permite obtener los parámetros necesarios para el arranque del ordenador (por ejemplo, permite localizar una imagen del sistema operativo que posteriormenente es descargada por TFTP). Y es también un protocolo de autoconfiguración, ya que detalla el mecanismo para la obtención de direcciones IP y otros parámetros.

DHCP apareció como estándar (RFC 1531) en Octubre de 1993, mejorando al protocolo BOOTP como protocolo de arranque y autoconfiguración. Posteriormente, la RFC 2131, que sustituyó a la anterior, se convirtió en el estándar actual de DHCP. El último desarrolo es DHCP sobre IPv6, definido en la RFC 3315. Esta práctica se centra exclusivamente en la RFC 2131.

Las clases prácticas serán en total siete, en las aulas 7.0J02/03 (Leganés, grupos 81 y 82) ó 1.1A16 (Colmenarejo). Además de las clases prácticas, se impartirá una clase teórica adicional en la que se explicarán brevemente conceptos sobre programación con sockets y el protocolo DHCP. Esta clase teórica será el día siguiente:

  • Leganés, grupo 81: 20 de Octubre de 2008 en el aula 2.3B01
  • Leganés, grupo 82: 20 de Octubre de 2008 en el aula 2.3B01
  • Colmenarejo: 15 de Octubre de 2008 en el aula 1.0B05


 OBJETIVOS


Los objetivos de la práctica son los siguientes:

  1. Enfrentarse a la implementación de un protocolo de nivel de aplicación real, partiendo de su especificación original y de la interpretación de su RFC.
  2. Conocer el funcionamiento de los protocols de arranque y autoconfiguración, como DHCP, BOOTP y RARP. BOOTP (BOOTstrap Protocol) es un protocolo anterior a DHCP pero similar a él (de hecho, usa el mismo formato de mensajes) y definido en la RFC 1542, que tiene como inconveniente que no permite asignación dinámica de direcciones IP. RARP (Reverse Address Resolution Protocol) es un protocolo que funciona a nivel de subred para la obtención de una dirección IP a partir de una dirección de subred (48 bits).
  3. Profundizar en el conocimiento de los protocolos estudiados en las clases teóricas.
  4. Adquirir conocimientos de programación con sockets UDP, raw sockets, y mensajes de Broadcast.


 ENUNCIADO


El lenguaje de desarrollo debe ser lenguaje C sobre sistema operativo Linux y debe funcionar en los ordenadores de los laboratorios docentes de Ingeniería Telemática, donde se realizará la corrección presencial (existen tres máquinas disponibles para conexión en forma remota (ssh): monitor01.lab.it.uc3m.es, monitor02.lab.it.uc3m.es y monitor03.lab.it.uc3m.es).

Es obligatorio utilizar el parámetro -Wall de gcc en todas las compilaciones. Las prácticas deben compilar sin ningún warning ó error. Las prácticas no deben tener fugas de memoria (se utilizará valgrind para comprobarlo). Las instrucciones de entrega se publicarán durante el curso, básicamente deberán incluir la entrega del código fuente (sólo ficheros .c y .h), un fichero Makefile que lo compile y un fichero README con detalles como el nombre, email y número de grupo. No se corregirán prácticas que no cumplan con lo anterior, es decir, no se corregirán prácticas que contengan fugas de memoria, warnings ó errores durante la compilación. Para poder realizar la práctica en los laboratorios se ha montado el entorno de pruebas DHCPlab, cuyas instrucciones de uso se pueden descargar desde aquí.

En la práctica se va a implementar una versión simplificada de la RFC. Las simplicaciones están indicadas más abajo. La RFC completa está accesible desde el siguiente enlace: RFC 2131. El estándar RFC 2131 define tanto el funcionamiento del cliente como del servidor para la obtención de parámetros de arranque y autoconfiguración. Sin embargo, para la realización de la práctica sólo se exige implementar el cliente. Debido a que es necesario ser root para la implementación de la práctica, se va a suministrar un entorno de pruebas con todo el software ya instalado, incluído un servidor DHCP básico.

Se ha creado una página de manual para la implementanción propuesta en esta práctica de dhcp, que resume la información de formatos de entrada y salida y trazas. También se puede descargar en formato HTML.


 EVALUACIÓN

La evaluación de la práctica se realizará de forma presencial y su nota tendrá un peso del 40% sobre la nota final de la asignatura. Para que se haga media con el examen teórico debe obtenerse una nota superior o igual a 5. La nota de la práctica, siempre que esté aprobada, se mantendrá para la convocatoria de Septiembre de 2009. Además, en caso de aprobarse en la convocatoria de Febrero, esta nota podrá conservarse hasta el siguiente curso académico 2009/10.

Fechas importantes

  • 9 de Enero de 2009 a las 23:59: Entrega de la práctica a través de Aula Global.

  • 16 de Enero de 2009: Corrección presencial en laboratorios.


 ENLACES

FAQ

RFC

  • RFC 2131 (obsoletes 1541) "Dynamic Host Configuration Protocol". R. Droms, Bucknell University, March 1997
  • RFC 2132 "DHCP Options and BOOTP Vendor Extensions". S. Alexander, R. Droms, March 1997

Libros

  • W. R. Stevens: "Unix network programming".Volume 1.Networking APIs-Sockets and XTI (L/S 004.451.9 UNIX STE )

Información sobre sockets





inicio | tablón| contacta