Funcionamiento del servidor DHCP

La configuración de DHCP se basa en un fichero de texto, /etc/dhcp.conf que el proceso servidor lee en el inicio. La lectura del fichero de configuración sólo se realiza durante el inicio, nunca cuando ya está en ejecución, por tanto cualquier modificación requiere detener el servicio DHCP y volverlo a iniciar. En este fichero se especifican las características de comportamiento como son el rango de direcciones asignadas, el tiempo de asignación de direcciones, el nombre del dominio, los gateways, etc. DHCP almacena en memoria la lista de direcciones de cada sured que está sirviendo. Cuando se arranca un cliente DHCP le solicita una dirección al servidor, éste busca una dirección disponible y se la asigna. En caso de necesidad, el servidor DHCP también puede asignar direcciones fijas a determinados equipos de la red.

La asignación de los datos TCP/IP al cliente se realiza para un determinado espacio de tiempo que se define en la configuración del servidor. Si no se especifica otro valor, la asignación predeterminada es por un día. También los clientes pueden solicitar datos de una duración especificada, aunque para evitar que un cliente tenga una dirección fija se puede prefijar un tiempo máximo de asignación.

Si tenermos varias subredes en nuestra instalación, también se pueden diferenciar las asignaciones que otorga el servidor DHCP según el interfaz en el que se realice.

Como el servidor DHCP puede pararse y reiniciarse, necesita mantener la lista de direcciones asignadas. El fichero /var/lib/dhcp/dhcpd.leases o /var/state/dhcp/dhcpd.leases mantiene esta lista de asignaciones. Cuando se inicia el servidor, primero lee el fichero de configuración dhcpd.conf, después el fichero dhcpd.leases y marca qué sistemas tienen asignaciones activas.