Ya hemos hablado y explicado en otras ocasiones este protocolo. Si necesitais refrescar conceptos podéis revisar el artículo sobre Servicio DHCP y pruebas con Whireshark.
Primero vamos a configurar las interfaces editando el archivo /etc/network/interfaces
Crearemos nuestro servidor dhcp sobre una interfaz interna eth1 con ip 192.168.1.150
auto eth1
iface eth1 inet static
address 192.168.1.150
netmask 255.255.255.0
Ahora vamos a por el paquete que instalará en nuestra máquina Linux el servicio de servidor dhcp :
$ sudo apt-get install dhcp3-server
*** El paquete conocido como dhcp3-server, ahora es isc-dhcp-server ***
En ese caso, instalaremos el paquete del servidor dhcp con:
sudo apt install isc-dhcp-server
Y después podremos configurar nuestro servidor dhcp.
Buscamos el archivo dhcpd.conf en :
/etc/dhcp3/dhcpd.conf
De nuevo, recordamos que en el nuevo paquete DHCP, el archivo será este:
/etc/dhcp/dhcpd.conf
Podemos hacer un backup del archivo antes de editarlo:
cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.back
Tenemos que localizar el siguiente texto y lo editaremos a nuestra conveniencia:
# A slightly different configuration for an internal subnet.
#subnet 10.5.5.0 netmask 255.255.255.224 {
# range 10.5.5.26 10.5.5.30;
# option domain-name-servers ns1.internal.example.org;
# option domain-name "internal.example.org";
# option routers 10.5.5.1;
# option broadcast-address 10.5.5.31;
# default-lease-time 600;
# max-lease-time 7200;
#}
Tiene que quedar así, por ejemplo (esta es una configuración muy básica):
default-lease-time 86400;
max-lease-time 604800;
get-lease-hostnames false;
subnet 192.168.1.0 netmask 255.255.255.0 {
option broadcast-address 192.168.1.255;
option subnet-mask 255.255.255.0;
option routers 192.168.1.1;
option domain-name ;
range 192.168.1.31 192.168.1.41;
}
Configuramos la interfaz sobre la que funcionará el servidor DHCP:
En el viejo paquete DHCP3:
/etc/default/dhcp3-server
** En el nuevo paquete DHCP:
/etc/default/isc-dhcp-server
Luego iniciamos el servicio del servidor DHCP sobre la interfaz deseada:
sudo systemctl start isc-dhcp-server.service
Y habilitamos el servicio para que se inice en cada arranque del sistema con:
sudo systemctl enable isc-dhcp-server.service
Podemos reiniciar el servicio posteriormente cuando sea necesario con
sudo systemctl restart isc-dhcp-server.service
También es posible que debamos reiniciar las interfaces de red:
systemctl restart networking
o
sudo systemctl restart networking.service
Con el antiguo paquete dhcp3-server puede que recibamos el siguiente error:
ln -s /var/run/dhcp3-server/dhcpd.pid /var/run/dhcpd.pid
Lo configuraremos como Automático (DHCP):
En el Cliente tendremos que volver a pedir una dirección IP, así que vamos a ejecutar el cliente dhcp.
Lo hacemos con el comando dhclient
Observamos que el cliente acepta la dirección 192.168.1.31
También podemos revisar el log en el Servidor DHCP, con
tail -f /var/log/syslog
Podemos observar cómo el cliente tenía al principio la ip 192.168.1.155, que ha cambiado por la 192.168.1.31 , que es la primera posible del rango configurado.
Con esto habremos configurado nuestro servidor DHCP de forma básica.
INTERFACES= "eth0"
También podemos iniciar el servicio de esta forma:
sudo service isc-dhcp-server restart
Si no encontramos el archivo dhcp3-server, usaremos:
/etc/init.d/isc-dhcp-server restart
o
sudo service isc-dhcp-server restart
Otro detalle que debemos tener en cuenta es que el servidor DHCP utiliza el puerto 67 y 68 a través de UDP.
Si configuramos un firewall o cortafuegos, debemos asegurarnos de permitir dicho tráfico .
–> Información y Descargas sobre DHCP Isc