Podemos hacerlo directamente con la Guía de Administradores del Sistema (en inglés) de la documentación de Fedora.
La instalación del servidor se realiza directamente con yum:
# yum install dhcp
Los parámetros de diseño de la red IP's se han establecido en Parámetros del entorno de simulación de la red local. Puedes bajarte el fichero de configuración de este ejemplo desde http://www.anadebreuil.org/man/RedVirtual/dhcpd.conf, así que procedemos desde ese fichero:
# cd /etc/dhcp # mv -f dhcpd.conf dhcpd.conf.bak # wget http://www.anadebreuil.org/man/RedVirtual/dhcpd.conf
El contenido del fichero /etc/dhcp/dhcpd.conf puede ser parecido a algo como esto:
# Indica que en caso de conflicto entre servidores DHCP, éste es el dominante authoritative; # Tiempo de duración de las licencias default-lease-time 43200; # 12 horas max-lease-time 86400; # 24 horas # El servidor DHCP está autorizado a registrar los nombres de las maquinas en # el servidor DNS utilizando el esquema INTERIM. ddns-update-style interim; ignore client-updates; # La clave con que se identifica ante el servidor DNS. include "/etc/named.caistro.conf"; # Aqui se configuran la red a la que servimos las IP, y los rangos # de asignacion dinamica, así como las máquinas con IP fija, a partir # del numero MAC de su tarjeta de red (dirección fisica de la tarjeta) subnet 192.168.128.0 netmask 255.255.255.0 { # El dominio DNS en el que esta incluida esta red option subnet-mask 255.255.255.0; option broadcast-address 192.168.128.255; option domain-name "oceano"; option domain-search "oceano"; option domain-name-servers dns.oceano; # Aqui tendriamos que colocar la direccion del dispositivo en modo NAT. option routers vbhost.oceano; # Informamos a los clientes de los servicios disponibles en la red. # Quedan comentados los que no usamos para que puedan ser usados más # tarde. option ntp-servers ntp.oceano; #option netbios-name-servers wins.oceano; #option netbios-node-type 2; #option nis-domain "oceano"; #option nis-servers nis.oceano; # Le indicamos donde está el servidor DNS para las actualizaciones # dinamicas de IP. La clave se ha importado de /etc/named.caistro.conf zone oceano. { primary 127.0.0.1; key caistro; } zone 128.168.192.in-addr.arpa. { primary 127.0.0.1; key caistro; } # Zona por defecto, pero para máquinas conocidas pool { use-host-decl-names on; range 192.168.128.128 192.168.128.250; deny unknown-clients; #host makina01 { hardware ethernet XX:XX:XX:XX; } } # # Servidores con IP fija en el rango 001-031 # Aquí asociamos direcciones MAC de servidores que deban tener IP prefijada: # se indica su MAC y la IP que debe tener ese dispositivo. pool { use-host-decl-names off; deny unknown-clients; # Aún asi reservo las direcciones 1 a 3 para gestion sin DHCP range 192.168.128.4 192.168.128.31; # host myserver { # # Metodo 1: fijo la IP en el servidor DNS, y aquí asocia el DNS/IP a una # # máquina física # hardware ethernet XX:XX:XX:XX:XX:XX; # fixed-address myserver.oceano; # } # host database { # Metodo 2: fijo todo aquí e informo al DNS de forma dinámica. Este método # tiene la ventaja de que el DNS no resuelve el nombre si la máquina lleva # un tiempo caída. # hardware ethernet XX:XX:XX:XX:XX:XX; # fixed-address 192.168.128.X; # option host-name "database"; # } } pool { # Elementos de red rango 032-063 deny unknown-clients; use-host-decl-names on; range 192.168.128.32 192.168.128.63; #host prn01 { hardware ethernet XX:XX:XX:XX:XX:XX; } } pool { # Equipos "invitados" a través de una red WiFi, en el rango 032-063 # Tiempo de duración de las licencias más corto para que las ocupen menos # tiempo. allow unknown-clients; default-lease-time 1800; # 30min max-lease-time 3600; # 60min # Desactivamos la actualización de DNS con las máquinas ubicadas aquí. ddns-update off; # host mobile { # hardware ethernet XX:XX:XX:XX:XX:XX; # fixed-address 192.168.128.X; # option host-name "mobile"; # } } }
Verificamos si el servicio está iniciado:
# systemctl status dhcpd
Lo arrancamos (o reiniciamos según corresponda) y verificamos que se ha iniciado correctamente:
# systemctl start dhcpd # less -S /var/log/messages
Hay que verificar si está habilitado su inicio al arrancar el servidor y habilitarlo en caso de que no lo esté:
# systemctl is-enabled dhcpd # systemctl enable dhcpd
Una vez esté todo funcionando, conviene que repases la información de configuración del servidor DHCP, puesto que existen muchas más opciones que conviene conocer para saber qué se puede hacer y formas de automatizar la gestión de la red usando DHCP. Para ello es bueno comenzar con el manual Unix del servidor:
# man dhcpd.conf