Para configurar el servidor DHCP, tendremos que editar los siguientes ficheros:
/etc/dhcpd.conf
/etc/init.d/dhcp
A continuación veremos unos apuntes de cada uno de los archivos.
Este es el archivo donde reside la configuración del DHCP y es el primero que debemos editar. Se divide en bloques[2], dentro de los cuales se pueden definir otros bloques y así sucesivamente. Cada bloque posee una zona de configuración global, que se aplica a todos los bloques definidos dentro de este. Podemos considerar una zona de definición local[3], definida en los bloques que dependen de otros bloques. Siempre prevalecerá la configuración del último bloque definido (el más interno, dentro de un conjunto de bloques).
Como una imágen vale más que mil palabras, a continuación se muestra gráficamente la explicación anterior:
Partiendo del concepto de bloque, descrito anteriormente, paso a definir ahora la estructura de los archivos de configuración que se han empleado para configurar el servidor DHCP. Se ha optado por dividir la configuración del DHCP en subredes, de forma que cada “bloque subred” contiene toda la configuración de la red a la que representa.
La parte global del “bloque subred” sería suficiente para configurar una red en la cual todos los equipos tuvisen IP's dinámicas. Si, como es nuestro caso, necesitamos asignar IP's fijas a determinados equipos, hemos de añadir el bloque group, dentro del cual se definirán los distintos hosts cuya IP sea fija.
Veamos esta estructura en la siguiente imagen:
A continuación veremos las partes más importantes de un fichero de configuración. Una subred quedaría definida de la siguiente forma:
subnet 192.168.1.0 netmask 255.255.255.0 { } |
![]() | A partir de ahora, las opciones, irán dentro de las llaves del bloque subnet |
El rango de direcciones dinámicas se define con la siguiente opción, que como se puede observar, comprende todas las direcciones IP entre la 192.168.1.100 y la 192.168.1.200 (ambas incluidas):
range 192.168.1.100 192.168.1.200; |
Un acpecto muy importante en la configuración de la red, son los servidores DNS y el router. Esto se configura de la siguiente manera:
option domain-name-servers 192.168.1.1, 193.146.96.2, 193.146.96.3; option routers 192.168.1.1; |
Más datos que hay que suministrar, a la hora de configurar una red, son la máscara de subred y la dirección de broadcast:
option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; |
El tiempo, medido en segundos, que va a tener un determinado host la configuración suministrada por el DHCP, se controla gracias a las siguientes opciones[4]:
default-lease-time 86400; max-lease-time 172800; |
Si necesitamos equipos con IP's fijas, se ha de definir un nuevo bloque en el “bloque subred”. group es el nombre el nuevo bloque, y dentro de este podremos definir algunas opciones específicas para los host con IP fija, como vemos a continuación:
group { default-lease-time 604800; max-lease-time 691200; } |
Pero esto no es suficiente para tener un host con una IP fija. Para ello debemos añadir un bloque host dentro del “bloque group”. Como se ve en el ejemplo de abajo, es necesario introducir la MAC del equipo al que le queremos asignar la dirección fija:
host nombre-del-equipo { hardware ethernet 00:10:5a:f1:35:87; fixed-address 192.168.1.3; } |
Una vez que ya tenemos configurado el DHCP, hemos de ejecutarlo. Pero para ello, antes hemos de editar el fichero /etc/init.d/dhcp. En este fichero le diremos al servidor DHCP sobre que interfaces de red ha de aplicar la configuración. Para ello crearemos la siguiente variable:
ARGS="-cf /etc/dhcpd.conf eth1 eth2" |
Una vez definida la variable y colocada en la sección de parámetros del script de inicio que estamos editando, le indicaremos al DHCP que ya estamos listos para que se ejecute. Para hacer esto, le daremos el valor 1 a la variable run_dhcpd:
run_dhcpd=1 |
[2] Los bloques están encerrados entre llaves
[3] Esto no es necesariamente cierto, ya que cada bloque sólo se puede configurar en su sección global, pero si tenemos un bloque del que no dependan otros bloques, la podemos considerar como local
[4] Dependiendo de si se están haciendo pruebas en la red o no, conviene definir un tiempo mayor o menor en esta opción