Configuración del servidor DHCP

La configuración del servidor DHCP, como hemos visto anteriormente, se realiza en el fichero /etc/dhcpd.conf. Es un fichero de texto, donde cada línea que comience por # indica un comentario y no se tiene en cuenta. Las distintas entradas de este fichero terminan en ;. Si una entrada de configuración necesita distintos parámetros los podemos agrupar mediante { y }. Ver el siguiente ejemplo de cofiguración.

Este fichero contendrá línea de configuración de la forma

parámetro valor;

y línea de la forma:

option parámetro valor;

El valor dependerá del parámetro que queramos configurar; podrá ser un valor lógico (on u off, por ejemplo), una dirección, un nombre predefinido u otro valor según el caso.

En este fichero también se definen las subredes en las que actúa el servidor DHCP y qué rangos de direcciones puede asignar. Existe unos parámetros que pueden ser globales o se pueden especificar dentro de una declaración de subred. Cualquier parámetro especificado en una subred tiene preferencia en esta subred sobre los establecidos de forma global.

Primero vemos un ejemplo de configuración y posteriormente veremos una descripción de las línea que contiene y otras que podría contener:

authoritative;
one-lease-per-client on;
server-identifier ppfm.atenea.dom;
default-lease-time 604800;
max-lease-time 604800;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.10;
option domain-name-servers 192.168.1.10;
option domain-name "atenea.dom";
ddns-domainname "atenea.dom";
ddns-update-style ad-hoc;
ddns-updates on;
option netbios-name-servers 192.168.1.10;
  subnet 192.168.1.0 netmask 255.255.255.0 {
     range 192.168.1.7 192.168.1.9;
     range 192.168.1.90 192.168.1.150;
 }

En una vista rápida para impacientes:

authoritative; Supone que la configuración correcta para la red es la definida en el servidor DHCP y tratará de reasignar datos a los clientes mal configurados. Este parámetro puede ser global o asigando a una declaración de subred. Los cambios realizados en en servidor marcado como authoritative tienen una rápida propagación en la subred ya que se reconfigura cualquier cliente con la antigua configuración.

not authoritative; tiene el significado opuesto al anterior parámetro.

one-lease-per-client on; cuando esta opción está en "on" y un cliente solicita una asignación, el servidor libera automáticamente cualquier otra asignación que tenga ese cliente. Se supone que si el cliente hace una solicitud es porque ha olvidado que tuviera alguna, es decir tiene un solo interfaz de red. Si no se da esta situación en los clientes hay que usar este parámetro con precaución.

server-identifier 192.168.1.10; este parámetro identifica el nodo que alberga el servicio DHCP. Sólo se deber usar cuando el nodo tenga más de una dirección IP asignada al interfaz.

default-lease-time 604800; indica el tiempo de asignación en segundos.

max-lease-time 604800; indica el tiempo máximo de asignación en segundos.

ddns-updates on; activa la actualización DNS con los valores asignados mediante DHCP.

ddns-domainname "atenea.dom"; indica el dominio en el que se actualizan los DNS

ddns-update-style interim; esta línea indica el método de actualización DNS automática con los valores de la IP asignados por DHCP. Más adelante veremos como hay que modificar las zonas en el fichero /etc/named.conf para permtir la actualización.

option subnet-mask 255.255.255.0; definimos la máscara general de red que vamos a utilizar.

option broadcast-address 192.168.1.255; definimos la dirección de difusión de la red.

option routers 192.168.1.10; definimos el gatewaye de la red.

option domain-name-servers 192.168.1.10; definimos la dirección del servidor DNS de la red.

option domain-name "atenea.dom"; definimos el nombre del dominio DNS que se añade a los nombres de host.

option netbios-name-servers 192.168.1.10; definimos ls dirección del servidor WINS para NetBios.

  subnet 192.168.1.0 netmask 255.255.255.0 {
     range 192.168.1.7 192.168.1.9;
     range 192.168.1.90 192.168.1.150;
 }

y por último definimos la red en la que queremos hacer asignaciones y los rangos de direcciones que puede asignar el servidor DHCP.

Una vez vista la descripcíón preliminar de la configuración DHCP vamos a entrar en más detalles.

Podíamos haber definido una descripción de subred más simple si sólo tuviéramos un rango de asignaciones:

subnet 192.168.1.0 netmask 255.255.0.0 
range 192.168.1.100 192.168.1.200;

Nota: En cualquier red serán necesarios distintos host con dirección IP fija, por ejemplo los servidores DNS o gateways. Habrá que tener cuidado con la asignación de estas direcciones y definir los rangos correctamente para no llevarnos sorpresas. También se pueden configurar equipos concretos mediante el parámetro host.


Otras opciones disponibles

fixed-address lista_direcciones_ip; define direcciones estáticas para asignar a un host

group comienza una declaración de grupo.

hardware tipo_hardware dirección; se utiliza para indicar el tipo de hardware, Ethernet o token ring. por ejemplo: hardware ethernet 00:50:b3:c5:60:05;

host comienza una declaración de host. Por ejemplo:

host cli004 {
   hardware ethernet 00:50:b3:c5:60:23;
   fixed-address 192.168.1.122;
}

fixed-address direccion-ip; dirección fija para asignar a un host, como vemos en el ejemplo anterior.

host-name nombre; nombre para asignar al host solicitado.

max-lease-time segundos; Máximo tiempo de asignación de la asignación. Esta parámetro lo podemos utilizar para evitar que los clientes tomen una dirección IP por tiempo indefinido.

netbios-name-servers lista_IP; Lista de IP de servidores WINS.

range ip-menot ip-mayor; el rango de diecciones que se asignarán en la correspondiente subred.

routers lista_IP; Lista de IP de gateways.

subnet comienza un declaración de subred.

subnet-mask máscara; mascara de red

shared-network define unadeclaración de subred compartida.

Alguna veces es necesario especificar opciones para cierto número de máquinas de la red sin tener que tratarlas como una subred separada. Por ejemplo, se puede definir una subred para un grupo de equipos y entonces aplicarle unas opciones específicas a esa subred. Esto significa que tendremos que especificarle todas las opciones de configuración necesarias.

Por ejemplo:

shared-network 192.168.2.253 {
        subnet 192.168.2.0 netmask 255.255.255.0 {
                option routers 192.168.2.253;
                option subnet-mask 255.255.255.0;
                option broadcast-address 192.168.2.255;
                option domain-name-servers ns.atenea.dom, ns2.atenea.dom;
                pool {
                        default-lease-time 400;
                        max-lease-time 400;
                        range 192.168.2.100 192.168.2.200;
                        ddns-domainname "atenea.dom";
                        ddns-rev-domainname "in-addr.arpa";
                        }
        }
}
shared-network 192.168.3.253 {
        subnet 192.168.3.0 netmask 255.255.255.0 {
                option routers 192.168.3.253;
                option subnet-mask 255.255.255.0;
                option broadcast-address 192.168.3.255;
                option domain-name-servers ns.atenea.dom, ns2.atenea.dom;
                pool {
                        default-lease-time 400;
                        max-lease-time 400;
                        range 192.168.3.100 192.168.3.200;
                        ddns-domainname "atenea.dom";
                        ddns-rev-domainname "in-addr.arpa";
                        }
        }
}