Parámetros y Declaraciones del fichero dhcpd.conf
El fichero dhcpd.conf es el único archivo que necesitamos configurar dentro de un servidor DHCP en linux. Este archivo suele encontrarse en el directorio /etc/dhcp.
Es un fichero que va a tener muchas lÃneas que comienzan con #, y que son comentarios, que nos ayudan a hacer una correcta configuración del servidor.
Se puede utilizar el siguiente comando vara ver la configuración del servidor sin comentarios y lÃneas en blanco:
grep -v ^# /etc/dhcp/dhcpd.conf | grep -v ^$
ddns-update-style none; option domain-name 'example.org'; option domain-name-servers ns1.example.org, ns2.example.org; default-lease-time 600; max-lease-time 7200; log-facility local7; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.200 192.168.1.220; }
Vemos que el fichero tiene unas palabras clave que no distinguen entre mayúsculas y minúsculas. Estas palabras se pueden clasificar en parámetros y declaraciones.
Los parámetros contienen las opciones de configuración de red que se enviarán al cliente. Además puede establecer cómo se realiza una tarea o si debe llevarse a cabo una tarea . Algunos parámetros empiezan con la palabra option que indica que son parámetros opcionales.
Las declaraciones describen la topologÃa de la red, describen los clientes, proporcionan direcciones para los clientes o aplican un grupo de parámetros o un grupo de declaraciones.
Podemos tener parámetros globales o parámetros declarados. Los parámetros globales son generales para todo el servidor DHCP mientras que los declarados se encuentran dentro entre llaves {} y sólo afectan a la declaración.
Estos son los parámetros que podemos añadir al fichero:
- authoritative;: Indica que el servidor está autorizado para asignar direcciones IP. No tiene argumentos. Ejemplo: autoritative;
- lease-file-name: Indica el nombre del fichero donde se almacenan los registros de concesiones. Por defecto este fichero es el /var/lib/dhcp/dhcpd.leases. Ejemplo: lease-file-name /var/lib/dhcp/concesiones-dhcpd;
- server-identifier: Indica por qué IP va a ofrecer el servicio cuando se tiene más de un interface de red. Ejemplo: server-identifier 192.168.1.1;
- default-lease-time: Indica el tiempo en segundos que va a durar el contrato de concesión con el cliente. Ejemplo: default-lease-time 600;
- max-lease-time: Como el tiempo de concesión puede ser soliticado por el cliente, este parámetro indica el valor máximo del mismo. Ejemplo: max-lease-time 7200;
- option subnet-mask: Indica la máscara de subred que se le asigna al cliente. Ejemplo: option subnet-mask 255.255.255.0;
- option broadcast-address: Indica la dirección de difusión que se le asigna al cliente. Ejemplo: option broadcast-address 192.168.1.255;
- option domain-name-servers: Esta opción especifica la lista de servidores de DNS (saperados por comas) que deben utilizar los clientes. Pueden ser nombres como direcciones IP. Ejemplo: option domain-name.servers 8.8.8.8 4.4.4.4;
- option ddns-update-style: Esta opción especifica si el servidor de DHCP debe intentar actualizar el servidor de DNS cuando se acepta o se libera un préstamo. En la implementación proporcionada por el ISC esta opción es obligatoria. Ejemplo: option ddns-update-style none;
- range: Las direcciones IP pertenecientes a este rango, incluyendo los extremos, se pueden entregar a los clientes.
Ejemplo: range 192.168.1.200 192.168.1.210; - option routers: Asigna una o varias puertas de enlace a los clientes separadas por espacios. Ejemplo: routers 192.168.1.1;
- hardware-ethernet: Especifica la dirección MAC de una máquina, de tal forma que el servidor de DHCP pueda identificar a la máquina cuando realice una petición. Ejemplo: hardware-ethernet 11:22:33:44:55 fixed-address:
Indica que los clientes van a obtener siempre la misma dirección IP, es decir, direcciones estáticas o fijas. Tiene como argumentos las direcciones IP separadas por espacios. Para ello : Ejemplo: fixed-address 192.168.1.200 192.168.1.201 192.168.1.202;
Éstas son las declaraciones que podemos añadir al fichero:
- group: Permite agrupar máquinas, subredes e incluso grupos. Ejemplo:
group { option routers 192.168.1.1; host p01 {... } }
- host: Permite asignar parámetros a una máquina en concreto. Ejemplo:
host p01 { hardware-ethernet 11:22:33:44:55; fixed-address 192.168.1.200; option routers 192.168.1.1; }
- subnet: Indica una subred, contiene la subred junto a la máscara de subred; Ejemplo:
subnet 192.168.2.0 netmask 255.255.255.0 { range 192.168.2.100 192.168.2.120; range 192.168.2.200 192.168.2.220; }