Sie sind auf Seite 1von 9

    

Home  Linux  Linux como Servidor DHCP (Ubuntu 16.04 LTS)

Linux

L I N U X C O M O S E R V I D O R D H C P ( U B U N T U
written by José Luis Sánchez Borque
November 21, 2017

El protocolo de con guración dinámica de host (DHCP, Dynamic Host Con guration Protocol) es un estándar TCP/IP diseñado para
simpli car la administración de la con guración IP de los equipos de nuestra red.

Si disponemos de un servidor DHCP, la con guración IP de los PCs puede hacerse de forma automática, evitando así la necesidad de tener
que realizar manualmente uno por uno la con guración TCP/IP de cada equipo.

Un servidor DHCP es un servidor que recibe peticiones de clientes solicitando una con guración de red IP. El servidor responderá a dichas
peticiones proporcionando los parámetros que permitan a los clientes autocon gurarse. Para que un PC solicite la con guración a un
servidor, en la con guración de red de los PCs hay que seleccionar la opción ‘Obtener dirección IP automáticamente’.

El servidor proporcionará al cliente al menos los siguientes parámetros:

Dirección IP

Máscara de subred

Opcionalmente, el servidor DHCP podrá proporcionar otros parámetros de con guración tales como:

Puerta de enlace

Servidores DNS

Muchos otros parámetros más

El servidor DHCP proporciona una con guración de red TCP/IP segura y evita con ictos de direcciones repetidas. Utiliza un modelo cliente-
servidor en el que el servidor DHCP mantiene una administración centralizada de las direcciones IP utilizadas en la red. Los clientes podrán
solicitar al servidor una dirección IP y así poder integrarse en la red.

Funcionamiento de una petición DHCP


El servidor solo asigna direcciones dentro de un rango pre jado. Si por error hemos con gurado manualmente una IP estática perteneciente
al rango gestionado por nuestro servidor DHCP, podría ocurrir que dicha dirección sea asignada dinámicamente a otro PC, provocándose un
con icto de IP. En ese caso el cliente solicitará y comprobará, otra dirección IP, hasta que obtenga una dirección IP que no esté asignada
actualmente a ningún otro equipo de nuestra red.

La primera vez que seleccionamos en un PC que su con guración IP se determine por DHCP, éste pasará a convertirse en uncliente DHCP e
intentará localizar un servidor DHCP para obtener una con guración desde el mismo. Si no encuentra ningún servidor DHCP, el cliente no
podrá disponer de dirección IP y por lo tanto no podrá comunicarse con la red. Si el cliente encuentra un servidor DHCP, éste le
proporcionará, para un periodo predeterminado, una con guración IP que le permitirá comunicarse con la red. Cuando haya transcurrido
el 50% del periodo, el cliente solicitará una renovación del mismo.

Cuando arrancamos de nuevo un PC cuya con guración IP se determina por DHCP, pueden darse dos situaciones:

Si la concesión de alquiler de licencia ha caducado, el cliente solicitará una nueva licencia al servidor DHCP (la asignación del servidor
podría o no, coincidir con la anterior).

Si la concesión de alquiler no ha caducado en el momento del inicio, el cliente intentará renovar su concesión en el servidor DHCP, es
decir, que le sea asignada la misma dirección IP.

Vemos en las imágenes adjuntas los protocolos, y secuencias de tramas del protocolo DHCP.

Cómo Funciona el Servicio DHCP (Incluye Capturas de Red)

Antes de comenzar con los procesos de instalación y con guración de nuestro servidor DHCP, vamos a de nir algunos términos que
utilizaremos a lo largo de dicho proceso.

Ámbito servidor DHCP: Un ámbito es un agrupamiento administrativo de equipos o clientes de una subred que utilizan el servicio DHCP.

Rango servidor DHCP: Un rango de DHCP está de nido por un grupo de direcciones IP en una subred determinada, como por ejemplo de
192.168.0.1 a 192.168.0.254, que el servidor DHCP puede conceder a los clientes.

Concesión o alquiler de direcciones: es un período de tiempo que los servidores DHCP especi can, durante el cual un equipo cliente puede
utilizar una dirección IP asignada.

Reserva de direcciones IP: Consiste en reservar algunas direcciones IP para asignárselas siempre a los mismos PCs clientes de forma que
cada uno siempre reciba la misma dirección IP. Se suele utilizar para asignar a servidores o PCs concretos la misma dirección siempre. Es
similar a con gurar una dirección IP estática pero de forma automática desde el servidor DHCP. En el servidor se asocian direcciones MAC a
direcciones IP. Es una opción muy interesante para asignar a ciertos PCs (servidores, impresoras de red, PCs especiales…) siempre la misma
IP.
Vamos con al parte práctica. Con gurando el servicio
Antes veamos la con guración IP de nuestro Servidor Linux Ubuntu 16.04 LTS.

root@ubuntu:~# cat /etc/network/interfaces

# This file describes the network interfaces available on your system


# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface


auto lo
iface lo inet loopback

# The primary network interface


auto ens33
iface ens33 inet dhcp

auto ens34
iface ens34 inet static
address 192.168.50.254
netmask 255.255.255.0
broadcast 192.168.50.255

root@ubuntu:~# ifconfig

ens33 Link encap:Ethernet HWaddr 00:0c:29:8b:ec:81


inet addr:192.168.1.208 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2233 errors:0 dropped:0 overruns:0 frame:0
TX packets:678 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2827978 (2.8 MB) TX bytes:53222 (53.2 KB)

ens34 Link encap:Ethernet HWaddr 00:0c:29:8b:ec:8b


inet addr:192.168.50.254 Bcast:192.168.50.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

El objetivo es que nuestro servidor asigne direcciones a la red 192.168.50.0/24 sólamente. En nuestro plan de direccionamiento
establecemos los siguientes parámetros:

Ámbito: 192.168.50.50 a la 192.168.50.100


Máscara: 255.255.2555.0
DNS servers: 8.8.8.8 y 192.168.1.1
Dominio local: profe.local
Gateway: 192.168.50.254

En primer lugar vamos a instalar el servicio DHCP en nuestro servidor. Para ello ejecutamos la siguiente instrucción:

sudo apt-get install isc-dhcp-server

Y veri camos que está arrancado con “service isc-dhcp-server status”

root@ubuntu:~# service isc-dhcp-server status

● isc-dhcp-server.service - ISC DHCP IPv4 server


Loaded: loaded (/lib/systemd/system/isc-dhcp-server.service; enabled; vendor
Active: active (running) since mar 2017-11-21 11:15:25 CET; 15min ago
Docs: man:dhcpd(8)
Main PID: 1410 (dhcpd)
Tasks: 1
Memory: 10.7M
CPU: 31ms
CGroup: /system.slice/isc-dhcp-server.service
└─1410 dhcpd -user dhcpd -group dhcpd -f -4 -pf /run/dhcp-server/dhcp

Podemos ver que los puertos 67 y 68 están abierto como servidor y como cliente de dos formas (el interface ens33 está con gurado por
dhcp), usando el comando lsof y netstat

root@ubuntu:~# lsof -i -P -n | grep -i :67


dhcpd 1410 dhcpd 7u IPv4 16283 0t0 UDP *:67

root@ubuntu:~# lsof -i -P -n | grep -i :68


dhclient 1340 root 6u IPv4 14860 0t0 UDP *:68

Con netstat suena mal… pero funciona

root@ubuntu:~# netstat -putona | grep :67


udp 0 0 0.0.0.0:67 0.0.0.0:* 1410/dhcpd off (0.00/0/0)

root@ubuntu:~# netstat -putona | grep :68


udp 0 0 0.0.0.0:68 0.0.0.0:* 1340/dhclient off (0.00/0/0)

Ahora solo queda con gurar el chero /etc/dhcp/dhcpd.conf, añadiendo la siguiente sección:

subnet 192.168.50.0 netmask 255.255.255.0 {


range 192.168.50.51 192.168.50.100;
option domain-name-servers 8.8.8.8, 192.168.1.1;
option domain-name "profe.local";
option subnet-mask 255.255.255.0;
option routers 192.168.50.254;
option broadcast-address 192.168.50.255;
default-lease-time 600;
max-lease-time 7200;
}

Los parámetros dentro de una sección subnet, tales como max-lease-time, domain-name etc, prevalecen sobre cualquier otro de nido
como global ( fuera de cualquier sección) en el chero /etc/dhcp/dhcpd.conf

Solo quedaría reiniciar el servicio mediante la orden:

root@ubuntu:~# service isc-dhcp-server restart

Reservas
Las reservas implican tal como hemos visto anteriormente asignar siempre la misma IP a un determinado host de red. La asignación es
mediante la dirección MAC de dicha ordenador. Hay que tener en cuenta que la IP debe estar fuera del rango asignado.

#host pcCTO {
# hardware ethernet 08:00:07:26:c0:a5;
# xed-address fantasia.fugue.com;
#}

Veamos como quedaría el chero de con guración. Como vemos podemos redi nir las directivas que nos interesen:
subnet 192.168.50.0 netmask 255.255.255.0 {
range 192.168.50.51 192.168.50.100;
option domain-name-servers 8.8.8.8, 192.168.1.1;
option domain-name "profe.local";
option subnet-mask 255.255.255.0;
option routers 192.168.50.254;
option broadcast-address 192.168.50.255;
default-lease-time 600;
max-lease-time 7200;

host pcCTO {
hardware ethernet 08:22:33:44:55:66;
fixed-address 192.168.50.151
default-lease-time 7200;
max-lease-time 12960;
}

Trabajando la redudancia
El servicio DHCP es uno de los más críticos de la empresa. Si falla, todas las estaciones clientes dejarán de tener conexión a nuestra red. En
de nitiva tenemos que trabajar la redundancia. Hay dos formas:

1. Utilizar la capacidad DHCP Failover que proporciona el propio servicio ( ver man dhcpd.conf )

2. Utilizar un ámbito diferente, con IP distintas, en el segundo servidor.

Vamos a utilizar el segundo método por su simplicidad. Basta con instalar el servicio DHCP en otro servidor linux, y cambiar el rango

Con guración del Servidor DHCP 2

subnet 192.168.50.0 netmask 255.255.255.0 {


range 192.168.50.101 192.168.50.150;
option domain-name-servers 8.8.8.8, 192.168.1.1;
option domain-name "profe.local";
option subnet-mask 255.255.255.0;
option routers 192.168.50.254;
option broadcast-address 192.168.50.255;
default-lease-time 600;
max-lease-time 7200;

host pcCTO {
hardware ethernet 08:22:33:44:55:66;
fixed-address 192.168.50.151
default-lease-time 7200;
max-lease-time 12960;
}

Vemos que los dos rangos son diferentes, y las reservas las mismas:

Servidor DHCP 1: range 192.168.50.51 192.168.50.100;

SErvidor DHCP 2: range 192.168.50.101 192.168.50.150;ç

“ Recordar otra vez que el servicio DHCP funciona por Broadcast, así que
necesitamos un servidor DHCP por subred, o un dhcp relay agent.

Cualquier duda podéis comentar el post y os responderé así me sea posible.

Saludos.
DHCP DHCPD

 0 comment
12     

J O S É L U I S S Á N C H E Z
B O R Q U E

 

previous
post
C Á P S U L A P O W E R S H E L L – U S O D E V A R I A B L E S Y C O N S T A N

next
post
C R E A R U N T Ú N E L S S H C O N P U T T Y , O C O M

Y O U M A Y A L S O
L I K E

L E A V E A
C O M M E N T

Your Comment

Name*

Email*

Website

Save my name, email, and website in this browser for the next time I comment.

N O T I F Y M E O F F O L L O W - U P C O M M E N T S B Y E M A I L .

N O T I F Y M E O F N E W P O S T S B Y E M A I L .

SUBMIT

T y p e a n d h i t e n t e r . . .
R E C E N T
P O S T S

Entendiendo SNMP, base de muchas cosas…

Consejos prácticos para mejorar la seguridad en tu empresa

G SUITE I – GESTIÓN OU’s/Grupos/Cuentas CON LA API DE PHP

Vivir sin /etc/rc.local . Ejecutar un script en un servidor Ubuntu 18.04 al realizar un reboot del sistema.

Instalar Microsoft SQL en un Ubuntu 18.04 con Docker

C A T E G O R I E S

 Cisco

 Developers

 Linux

 PROXMOX

 Security

 SYSADMIT

 Uncategorized

 Windows

T A G S

AD API AUDIT BOT CIBERSEGURIDAD CISCO DEVELOPER DEVELOPERS DHCP DHCPD DOCKER DOMINIO

ENRUTAMIENTO ESTADOS FIREWALL GSUITE HACKING HASH HONEYPOT IPTABLES KALI KFSENSOR KUHISCRIPTS LINUX

METASPLOIT NAT NETPLAN NETWORKING NMAP PHP POWERCHELL POWERSHELL PROXMOX RC.LOCAL SQL SWITCH

SYSADMIT TRUNK TRUNKING UBUNTU VLAN

F O L L O W M E O N
T W I T T E R

My Tweets

A R C H I V E S

Select Month

N E W S L E T T E R
Subscribe my Newsletter for new blog posts & tips. Let's stay updated!

Your email address

SIGN UP

A B O U T M E

H o l a , m e l l a m o J o s é L u i s

Mi intención es publicar contenido técnico de calidad, para hacer las cosas más sencillas.

P O P U L A R P O S T S

1
Linux como Servidor DHCP (Ubuntu 16.04 LTS)
November 21, 2017

2
PowerShell: Trabajando con el sistema de archivos y permisos NTFS
February 8, 2018

3
Inter VLAN Routing con DHCP por VLAN
July 5, 2017

4
Ubuntu 18.04 y NETPLAN. Tutorial rápido de los cambios de NETWORKING
May 5, 2019

5
Crear un túnel ssh con PuTTY, o como saltarse el proxy del trabajo ;-)
November 27, 2017

C A L E N D A R

N o v e m b e r 2

M T W T F S S

1 2 3 4 5

6 7 8 9 10 11 12

13 14 15 16 17 18 19 DEC »
« OCT
M T W T F S S
20 21 22 23 24 25 26

27 28 29 30

DEC »
« OCT

 

@2019 - by José Luis Sánchez Borque