Software
********
.. _DHCP-clients:
Clientes
========
En *Linux* se usan, fundamentalmente, dos clientes:
.. _dhclient:
.. index:: index
:program:`dhclient`
Es el cliente del |ISC| y el habitual en las distribuciones normales. Su uso
es bastante sencillo:
* Para pedir configuración para la interfaz *eth0*::
# dhclient -v eth0
* Para desconfigurar la interfaz *eth0*, advirtiendo al servidor::
# dhclient -r eth0
Si no se quiere avisar al servidor (con lo cual no se liberará la |IP|),
debe usarse la opción :kbd:`-x`
Este cliente revisa el fichero :file:`/etc/dhcp/dhclient.conf` dentro del
cual puede manipularse la forma en que se pide la configuración al servidor.
.. _udhcpc:
:program:`udhcpc`
Es el microcliente del proyecto `busybox `_ y que
suelen usar las distribuciones mínimas como SliTaZ_, Alpine_ o linux
empotrados. Su uso básico es el siguiente:
* Para pedir configuración para la interfaz *eth0*::
# udhcpc -b -R -p /var/run/udhcpc.eth0.pid -i eth0 -x hostname:nombre_maquina
donde :kbd:`-x` sirve para pedir opciones de configuración al servidor. En
el ejemplo, se le ha sugerido que nos adjudique un nombre de máquina
(:kbd:`hostname`), pero puede sugerirse otras como un tiempo de concesión
(:kbd:`lease`). Para sugerior varias debe repetirse el argumento.
* Para desconfigurar la interfaz y parar el cliente::
# kill -USR2 $(cat /var/run/udhcpc.eth0.pid)
# kill -TERM $(cat /var/run/udhcpc.eth0.pid)
Servidores
==========
Tipos
-----
Un servidor |DHCP| puede trabajar de tres formas distintas:
#. Como servidor |DHCP| en sí proporcionando la información de red a los
clientes que lo solicitan y que es la función a la que dedicamos el tema.
#. Como |DHCP| *relay*, en que el servidor se limita a retransmitir los paquetes
enviados por el servidor |DHCP| real. Se usa para resolver el caso en que el
servidor |DHCP| no comparte red con los cientes:
.. image:: files/DHCPrelay.png
En este caso, el *router*, además de comunicar ambas redes, retransmite hacia
el servidor las peticiones de los clientes y retransmite a los clientes las
respuestas del servidor.
#. Como *proxy* |DHCP|, que se limita a complementar la información del servidor
|DHCP| real, comunicando a los clientes la información adicional para el
arranque por red. Trataremos este tipo de servidor al tratar el
:ref:`servicio PXE `.
Implementaciones
----------------
Las implementaciones libres de servidores |DHCP| más usadas son las siguientes:
`udhcpd `_
Es el microservidor del proyecto `busybox `_ y suele
encontrarse en los linux empotrados en algunos dispositivos.
`dnsmasq `_
Es un servidor ligero que incorpora, además, un |DNS| y un |TFTP|. Es más que
competente para la resolución de la mayor parte de las situaciones con que
nos encontramos en pequeñas redes locales.
`ISC DHP Server `_
Es el servidor tradicional del |ISC| (que también patrocina el servidor |DNS|
:program:`bind`). Es bastante más pesado que el anterior, pero permite un
mayor control sobre la configuración.
`ISC KEA `_
Es el nuevo servidor del |ISC|, que previsiblemente sustituirá al anterior en
el futuro.
.. |ISC| replace:: :abbr:`ISC (Internet Systems Consortium)`
.. |TFTP| replace:: :abbr:`TFTP (Trivial FTP)`
.. _Alpine: https://alpinelinux.org/
.. _SliTaZ: http://slitaz.org/es/