Saltar al contenido
Codifíca.me | Desarrollo web | Programación

Como instalar un Servidor DHCP en Ubuntu

10 septiembre, 2019

Un servidor DHCP asigna dinámicamente direcciones IP a las PC dentro de una red, esto evita que tengamos que configurar la dirección IP de cada máquina por separado por lo que es muy utilizado en todo tipo de redes. Además de asignar la dirección IP DHCP puede proporcionar un conjunto de configuraciones automáticas como por ejemplo la dirección de broadcast, las direcciones de los servidores DNS y muchos otros parámetros que veremos en este tutorial.

En este tutorial vamos a ver como instalar un servidor DHCP en Ubuntu, que proporcionará el direccionamiento IP dentro de nuestra red y además configuraremos otro parámetros necesarios para que las PC puedan navegar y comunicarse dentro y fuera de nuestra red.

Como se muestra en la Figura 1, estamos suponiendo una red sencilla con varios clientes, una impresora en red y un gateway (o pasarela de datos, que puede ser un swtich, router, router inalámbrico, etc.) que permite la conexión hacia Internet.

dhcp

Figura 1. Red de ejemplo para DHCP Server

Nuestra red está planificada con los siguientes parámetros:

  • Red: 192.168.1.0
  • Máscara de red: 255.255.255.0
  • Dirección de Broadcast: 192.168.1.255
  • Rango de direcciones por DHCP: 192.168.1.100 al 192.168.1.200
  • Gateway: 192.168.1.1
  • Dirección de red de nuestro servidor DHCP: 192.168.1.5
  • Impresora en red: 192.168.1.10 con dirección MAC o de hardware 00:00:55:ef:db:55 (si no la dirección MAC de su impresora de red casi siempre está en alguna etiqueta de la impresora o revisen el manual)
  • Servidores DNS 208.67.222.222 y 208.67.220.220 (estos son los de OpenDNS utilicen los de su ISP o los que tengan en el archivo /etc/resolv.conf donde diga nameserver)

Pasos a seguir para realizar la instalación:

1. Asignar una dirección IP fija a nuestro servidor DHCP

Para esto abrimos el archivo de configuración de red que se encuentra en /etc/network/interfaces y colocamos lo siguiente dentro del archivo:

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.5
gateway 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255

Esto suponiendo que su interfaz de red es la eth0, si no sabe o quiere saber más acerca de como configurar una dirección IP fija visite este artículo.

2. Instalación del servidor DHCP

Abrimos el terminal en Ubuntu y ejecutamos:

sudo apt-get install dhcp3-server

Al finalizar la instalación aparecerán unos mensajes parecidos a estos:

Setting up dhcp3-server (3.1.3-2ubuntu3) ...
Generating /etc/default/dhcp3-server...
 * Starting DHCP server dhcpd3  
 * check syslog for diagnostics.      [fail]
 Setting up dhcp3-server (3.1.3-2ubuntu3) ...Generating /etc/default/dhcp3-server... * Starting DHCP server dhcpd3                                                   * check syslog for diagnostics.                                                                         [fail]

No se preocupen por los mensajes de fallos estos simplemente ocurren porque aún no hemos configurado el servidor.

3. Seleccionar la interfaz de red en la cual va a funcionar el servidor DHCP

Si configuramos la interfaz eth0 en el paso 1 usaremos esta, si configuramos otra tienen que cambiar donde está eth0 por la interfaz de red a utilizar

Abrimos el archivo que se encuentra en sudo /etc/default/dhcp3-server ejecutando:

sudo vim /etc/default/dhcp3-server

Nota: Pueden utilizar el editor de su preferencia (nano, gedit, vi, emacs, etc).

Donde aparece:

INTERFACES=""

La cambiamos por:

INTERFACES="eth0"

En eth0 el 0 es un CERO

Luego guardamos y cerramos el archivo, aquí estamos diciendo que el servidor DHCP debe “escuchar” en esta interfaz por las peticiones de DHCP.

4. Modificar el archivo de configuración de DHCP

Antes de modificar el archivo de configuración de DHCP hacemos un respaldo del archivo, para tener siempre el original por cualquier fallo que se nos pueda presentar, ejecutamos en el terminal:

sudo cp /etc/dhcp3/dhcpd.conf /etc/dhcp3/dhcpd.conf-respaldo

Luego abrimos el archivo de configuración de DHCP ejecutando:

sudo vim /etc/dhcp3/dhcpd.conf

Dentro del archivo encontrarán gran cantidad de comentarios y ejemplos que sirven como guía para configurar el servidor DHCP en este caso vamos a borrar todo lo que existe dentro del archivo (lo respaldaron como les dije en el paso anterior cierto?) y colocamos:

default-lease-time 600; #tiempo de espera antes de renovar la direccion IP
max-lease-time 7200;  #tiempo máximo de espera antes de renovar la direccion IP
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.1;
option domain-name-servers 208.67.222.222,208.67.220.220; #servidores DNS
option domain-name "ejemplo.local";
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
}
#Configuracion IP fija para impresora en red
host impresora1 {
hardware ethernet 00:00:55:ef:db:55;
fixed-address 192.168.1.10;
}

Recuerden cambiar los valores por los que hayan decidido en su red y cambiar la dirección MAC de la impresora por la de su impresora.

Solo esto debe tener el archivo de configuración ni más ni menos guarden el archivo. Vamos a verlo línea por línea:

  • default-lease-time 600: es el tiempo de préstamo o alquiler por defecto de la dirección IP y está medido en segundos.
  • max-lease-time 7200: es el tiempo máximo que debe durar una dirección IP antes que caduque y el cliente deba pedir otra vez una dirección.
  • option subnet-mask 255.255.255.0: Es la máscara de red que definimos arriba.
  • option broadcast-address 192.168.1.255: Es la dirección de broadcast de nuestra red.
  • option routers 192.168.1.1: Es la dirección IP de nuestro gateway (tambien llamado pasarela de datos o puerta de enlace).
  • option domain-name-servers 208.67.222.222,208.67.220.220: Es la dirección IP de nuestros servidores DNS como se explicó arriba.
  • option domain-name “ejemplo.local”: Es el nombre de dominio de nuestra red, este parámetro es opcional.
  • subnet 192.168.1.0 netmask 255.255.255.0 : Aquí definimos nuestra red que queremos asignarle el rango de direcciones IP.
  • range 192.168.1.100 192.168.1.200: Es el rango de direcciones de la .100 a la .200.
  • host impresora1 : Así es como llamamos nuestra impresora de red para asignarle una IP fija.
  • hardware ethernet 00:00:55:ef:db:55: Aquí especificamos la dirección MAC o dirección de hardware de la tarjeta de red de nuestra impresora (ver explicación arriba, utilicen su propia dirección MAC)
  • fixed-address 192.168.1.10: Es la dirección IP fija que le queremos asignar a nuestra impresora.

Si tienen algún otro servidor que necesite una IP fija y no la quieran configurar en el servidor simplemente agregan las siguientes líneas igual que la impresora al final del archivo anterior:

host server1 {
hardware ethernet xx:xx:xx:xx:xx:xx;
fixed-address 192.168.1.11;
}

Cambiando por supuesto la dirección MAC de su servidor (pueden obtenerla ejecutando ifconfig donde dice MAC o direcciónHW) y la dirección IP que uds quieran dentro de su red.

5. Reiniciar el servidor DHCP

Por último para que la configuración haga efecto y nuestro servidor DHCP funcione ejecutamos:

sudo /etc/init.d/dhcp3-server restart

Con esto reiniciamos el servicio de DHCP y si no sale ningún error debería funcionar (puede salir un error cuando intenta detener (STOP) el servicio porque simplemente no está corriendo aún).

6. Probar en el cliente

NOTA IMPORTANTE: Debe existir sólo un servidor DHCP en nuestra red, si tienen algún otro servidor DHCP (como por ejemplo el de un router o router inalámbrico) deben estar deshabilitado de lo contrario podrían tener conflictos dentro de su red.

Una vez que tengamos configurado nuestro servidor DHCP es hora de obtener las direcciones IP en nuestros clientes. Tenemos dos casos:

a. Si el PC cliente ya está encendido y tiene una dirección IP asignada deberán, tanto para un PC con MS Windows como Linux, solicitar que renueve la dirección IP de su PC.

b. Si el PC está apagado, no hay problemas la próxima vez que la enciendan obtendrá la dirección IP automáticamente.

Una vez hecho esto los clientes deberán obtener direcciones IP automáticamente y estar dentro del rango de .100 y .200. Por ejemplo 192.168.1.101.-

En un cliente Linux además pueden verificar ejecutando el comando:

sudo dhclient 

sudo solo es necesario para Ubuntu y derivados (deben tener permisos de administrador en el cliente) ó

tail -n 15 /var/lib/dhcp3/dhclient.*.leases

Eso es todo ya tienen un servidor DHCP funcionando.

Cualquier duda o sugerencia por favor dejen su comentario y les responderé.

Nosotros en ofrecemos servicios de soporte, instalación y configuración de Linux y Software Libre para PyMES y corporaciones,