Salta el contingut

Configuració de DHCP en Linux amb ISC DHCP Server

ISC DHCP està en fi de vida (EOL)

ISC va anunciar el fi del desenvolupament d'ISC DHCP Server l'octubre de 2022. Aquesta pàgina es manté perquè els conceptes (àmbits, reserves, relay, failover) segueixen sent vàlids, però per a nous desplegaments en producció es recomana Kea DHCP (del mateix fabricant, ISC) o dnsmasq per a xarxes petites.

Instal·lació de ISC DHCP Server

En sistemes basats en Debian/Ubuntu:

# Actualització del sistema
sudo apt update && sudo apt upgrade -y

# Instal·lació del servidor DHCP
sudo apt install -y isc-dhcp-server

# Verificació del servei
sudo systemctl status isc-dhcp-server

Per a sistemes basats en Red Hat/CentOS:

# Instal·lació en RHEL/CentOS
sudo dnf install -y dhcp-server

# Iniciar i habilitar el servei
sudo systemctl enable dhcpd
sudo systemctl start dhcpd

Estructura de Fitxers de Configuració

  • /etc/dhcp/dhcpd.conf: fitxer principal de configuració (opcions globals i subxarxes)
  • /etc/default/isc-dhcp-server (Debian/Ubuntu): defineix la interfície de xarxa on escolta el servei (INTERFACESv4="eth0")
  • /var/lib/dhcp/dhcpd.leases: base de dades de concessions (leases) actives

Configuració Bàsica del Servidor

Opcions globals a /etc/dhcp/dhcpd.conf:

# El servidor és autoritatiu per a les xarxes que gestiona
authoritative;

default-lease-time 86400;      # 24 hores
max-lease-time 172800;         # 48 hores

option domain-name "empresa.local";
option domain-name-servers 192.168.1.10, 8.8.8.8;

Creació d'un Àmbit (Scope)

Definició d'una subxarxa amb el seu rang d'adreces:

subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.100 192.168.1.200;
    option routers 192.168.1.1;
    option subnet-mask 255.255.255.0;
    option domain-name-servers 192.168.1.10, 8.8.8.8;
    option domain-name "empresa.local";
    default-lease-time 86400;
    max-lease-time 172800;
}

Reserves d'Adreces (per MAC)

host servidor-web {
    hardware ethernet 08:00:27:AA:BB:CC;
    fixed-address 192.168.1.20;
}

Reserva ≠ exclusió

Una reserva assigna sempre la mateixa IP a una MAC concreta, però aquesta IP segueix formant part del rang (range) definit a la subnet. Si vols que una IP mai s'assigni dinàmicament (per exemple, perquè la fa servir un dispositiu configurat manualment), cal excloure-la del rang en comptes de reservar-la.

AC0375/02/03 — Miniactivitat

RA2 · CA2c, CA2d, CA2e, CA2f, CA2g

Instal·la ISC DHCP Server en una màquina virtual o contenidor Linux, configura l'àmbit de l'exemple anterior amb una reserva per MAC, i comprova des d'un client que rep la IP correcta segons si té reserva o no. Documenta els passos seguits.

Opcions Addicionals

option ntp-servers 192.168.1.10;
option netbios-name-servers 192.168.1.10;
option rfc3442-classless-static-routes 24, 10, 0, 0, 192, 168, 1, 254;

DHCP Relay Agent a Linux

Quan els clients es troben en una subxarxa diferent del servidor, es fa servir el paquet isc-dhcp-relay:

sudo apt install -y isc-dhcp-relay

Configuració a /etc/default/isc-dhcp-relay:

SERVERS="192.168.1.10"
INTERFACES="eth1"
OPTIONS=""

Alta Disponibilitat (Failover)

ISC DHCP Server suporta failover entre dos servidors:

failover peer "dhcp-failover" {
    primary;
    address 192.168.1.10;
    port 647;
    peer address 192.168.1.11;
    peer port 647;
    max-response-delay 60;
    max-unacked-updates 10;
    mclt 3600;
    split 128;
    load balance max seconds 3;
}

subnet 192.168.1.0 netmask 255.255.255.0 {
    pool {
        failover peer "dhcp-failover";
        range 192.168.1.100 192.168.1.200;
    }
}

Eines de Diagnòstic a Linux

# Alliberar l'adreça IP del client
sudo dhclient -r

# Sol·licitar nova configuració
sudo dhclient

# Mostrar la configuració actual
ip addr show

Verificació de configuració:

# Comprovar la sintaxi de dhcpd.conf abans de recarregar
sudo dhcpd -t -cf /etc/dhcp/dhcpd.conf

# Veure el log del servei
sudo journalctl -u isc-dhcp-server -f

Consulta de concessions actives:

# Veure el fitxer de leases directament
cat /var/lib/dhcp/dhcpd.leases

Problemes Comuns i Solucions

Problema: El servidor no respon a peticions dels clients

Solució: verificar la interfície configurada i les regles del firewall:

# Verificar la interfície on escolta el servei
cat /etc/default/isc-dhcp-server

# Obrir els ports al firewall (Ubuntu/UFW)
sudo ufw allow 67/udp
sudo ufw allow 68/udp

Problema: Adreces duplicades o conflictes d'IP

Solució: revisar el fitxer de leases i les reserves configurades:

grep -A2 "lease" /var/lib/dhcp/dhcpd.leases | less