Teoria del DHCP
Introducció al DHCP
Què és DHCP?
El DHCP (Dynamic Host Configuration Protocol) és un protocol de xarxa que permet assignar automàticament configuracions de xarxa als dispositius clients. Opera a la capa d'aplicació del model OSI i utilitza els ports UDP 67 (servidor) i 68 (client).
Per què és important el DHCP?
- Automatització: Elimina la configuració manual d'adreces IP
- Centralització: Gestió centralitzada de la configuració de xarxa
- Optimització: Reutilització eficient d'adreces IP
- Simplicitat: Facilita la connexió de nous dispositius a la xarxa
Història i evolució del DHCP
Orígens: BOOTP (1985)
Abans de DHCP, existia BOOTP (Bootstrap Protocol). BOOTP permetia a un dispositiu obtenir una IP i informació bàsica de la xarxa automàticament.
Limitacions de BOOTP:
- Les adreces IP havien d'estar pré-configurades al servidor.
- No gestionava bé el re-ús dinàmic d'IP.
- No oferia facilitat per a la configuració de paràmetres addicionals (DNS, gateway, etc.).
Naixement DHCP (1993)
RFC 1531 (1993) introdueix DHCP (Dynamic Host Configuration Protocol).
Característiques inicials:
- Assignació dinàmica i automàtica d'IP.
- Possibilitat de reserva d'IP per dispositius específics (per MAC).
- Suport per a múltiples paràmetres de configuració: DNS, gateway, servidor NTP, etc.
- Dissenyat per ser compatible amb BOOTP.
Evolució i estandardització
- RFC 1541 (1993): primera especificació oficial de DHCP.
- RFC 2131 (1997): versió més establerta i àmpliament adoptada.
- Defineix el procés DORA (Discover → Offer → Request → Acknowledge).
- Inclou leases de IP amb temps d'expiració.
- Introducció de DHCP Relay per a xarxes amb múltiples subxarxes.
- RFC 3004 i següents: millores en seguretat i gestió de paràmetres addicionals.
Arquitectura i funcionament del DHCP
Utilització de ports
El servei DHCP utilitza ports UDP específics tant per al client com per al servidor:
Ports DHCP
| Rol | Port UDP | Direcció | Descripció |
|---|---|---|---|
Servidor DHCP |
67 | Rebut | Rep missatges dels clients (Discover, Request) |
Client DHCP |
68 | Enviat | Rep missatges del servidor (Offer, Acknowledge) |
Flux típic
- Discover: Client envia UDP src:68 → dst:67 (broadcast).
- Offer: Servidor envia UDP src:67 → dst:68 (broadcast o unicast).
- Request: Client envia UDP src:68 → dst:67 (broadcast).
- Acknowledge: Servidor envia UDP src:67 → dst:68 (unicast normalment).
Procés d'assignació dinàmica d'adreça: DORA
El protocol DHCP segueix un procés de 4 passos conegut com a DORA:
---
config:
theme: base
themeVariables:
background: "#FFFFFF"
primaryTextColor: "#1F2937"
secondaryTextColor: "#fafafa"
lineColor: "#64748B"
nodeBorder: "#CBD5E1"
cScale0: "#2563EB"
cScale1: "#16A34A"
cScale2: "#7C3AED"
actorBkg: "#2563EB"
actorTextColor: "#ffffff"
actorBorder: "#1e40af"
actorLineColor: "#64748B"
noteBkgColor: "#475569"
noteTextColor: "#ffffff"
noteBorderColor: "#334155"
signalColor: "#1F2937"
signalTextColor: "#1F2937"
---
sequenceDiagram
participant Client
participant Server
Note over Client,Server: Procés DORA (Discover, Offer, Request, Acknowledge)
Client->>Server: DHCP Discover<br/>(Src IP: 0.0.0.0:68 → Dst IP: 255.255.255.255:67, Broadcast)
Server-->>Client: DHCP Offer<br/>(Src IP: DHCP Server:67 → Dst IP: 255.255.255.255:68, Broadcast)
Client->>Server: DHCP Request<br/>(Src IP: 0.0.0.0:68 → Dst IP: 255.255.255.255:67, Broadcast)
Server-->>Client: DHCP Acknowledge<br/>(Src IP: DHCP Server:67 → Dst IP: Client IP:68, Unicast)
---
config:
theme: base
themeVariables:
background: "#FFFFFF"
primaryTextColor: "#1F2937"
secondaryTextColor: "#fafafa"
lineColor: "#64748B"
nodeBorder: "#CBD5E1"
cScale0: "#2563EB"
cScale1: "#16A34A"
cScale2: "#7C3AED"
---
flowchart TD
subgraph C[💻 Client DHCP]
CL[💻 Client<br/>IP: 0.0.0.0<br/>Port: 68]
end
subgraph S[🖥️ Servidor DHCP]
SV[🖥️ Server<br/>IP: DHCP Server<br/>Port: 67]
end
%% Discover
CL -->|📡 DHCP Discover<br/>Client MAC, Requested Options| SV
%% Offer
SV -->|📨 DHCP Offer<br/>Offered IP, Subnet Mask, Gateway, DNS, Lease Time| CL
%% Request
CL -->|✉️ DHCP Request<br/>Requested IP, Client MAC, Options| SV
%% Acknowledge
SV -->|✅ DHCP Acknowledge<br/>Assigned IP, Subnet Mask, Gateway, DNS, Lease Time| CL
style C fill:none,stroke:#2563EB,stroke-width:2px
style S fill:none,stroke:#16A34A,stroke-width:2px
style CL fill:#2563EB,color:#ffffff,stroke:#1e40af,stroke-width:1px
style SV fill:#16A34A,color:#ffffff,stroke:#15803d,stroke-width:1px
1. DISCOVER (Descobriment)
- El client envia un missatge de broadcast (255.255.255.255)
- Busca servidors DHCP disponibles a la xarxa
- Utilitza l'adreça origen 0.0.0.0 ja que encara no té IP
2. OFFER (Oferta)
- Els servidors DHCP responen amb una oferta
- Proposen una adreça IP disponible i configuració
- Reserven temporalment l'adreça oferida
3. REQUEST (Sol·licitud)
- El client accepta una de les ofertes rebudes
- Envia un missatge REQUEST (també per broadcast)
- Indica quin servidor ha escollit
4. ACK (Confirmació)
- El servidor escollit envia un ACK (Acknowledgment)
- Confirma l'assignació i envia la configuració completa
- El client ja pot utilitzar l'adreça IP
AC0375/02/01 — Miniactivitat
RA2 · CA2a, CA2b
Captura amb Wireshark (o tcpdump) el trànsit mentre un client allibera i torna a demanar IP (ipconfig /release + /renew a Windows, o dhclient -r + dhclient a Linux). Identifica els quatre missatges del procés DORA, els ports UDP origen/destí de cadascun i si viatgen per broadcast o unicast.
Tipus de configuració DHCP
1. Dinàmica
- Assignació automàtica d'IPs disponibles
- Les adreces es reutilitzen quan expira el lloguer
- Més eficient per a xarxes amb molts dispositius
2. Estàtica (Reservada)
- Adreça IP fixa assignada a una MAC específica (Ho decideix el Sysadmin)
- Sempre la mateixa IP per al mateix dispositiu
- Ideal per a servidors i equips crítics
3. Automàtica
- Assignació permanent la primera vegada (Ho decideix el servidor DHCP)
- L'adreça no canvia mai un cop assignada
- Poc utilitzada en la pràctica
Configuració bàsica
- Adreça IP del client
- Màscara de subxarxa
- Porta d'enllaç predeterminada (gateway)
- Servidors DNS primari i secundari
Configuració adicional (opcions)
- Servidor de temps (NTP)
- Nom del domini
- Servidors WINS
- Rutes estàtiques específiques
- Durada del lloguer (lease time)
Exemple genèric d'un àmbit (scope):
# Configuració típica d'un scope
Xarxa: 192.168.1.0/24
Rang DHCP: 192.168.1.100 - 192.168.1.200
Gateway: 192.168.1.1
DNS: 8.8.8.8, 8.8.4.4
Lease Time: 24 hores
La creació pràctica d'aquest àmbit es tracta a les pàgines d'instal·lació de Linux i de Windows.
Conceptes clau
Lease Time (Temps de lloguer)
- Durada de l'assignació d'una adreça IP
- El client ha de renovar abans que expiri
- Valors típics: 24 hores, 7 dies
Scope (Àmbit)
- Rang d'adreces IP disponibles per assignar
- Exemple: 192.168.1.100 - 192.168.1.200
- Exclou adreces reservades per a servidors
Renovació
- Procés automàtic quan s'arriba al 50% del lease time (temporitzador T1)
- El client sol·licita renovar la mateixa IP directament al servidor que la va concedir
- Si falla, ho intenta de nou al 87.5% del temps (temporitzador T2), aquest cop per broadcast a qualsevol servidor DHCP
Per recordar T1 i T2
T1 (50%): renovació silenciosa amb el servidor original (unicast). T2 (87.5%): si T1 ha fallat, el client "crida" a tots els servidors (broadcast) per intentar salvar la IP abans que expiri del tot.
AC0375/02/02 — Miniactivitat
RA2 · CA2a, CA2b
A partir d'una captura DHCP (la mateixa de l'activitat anterior o una de nova), examina les opcions incloses a l'Offer i l'ACK (per exemple, opcions 1, 3, 6, 51, 58, 59). Relaciona cada opció amb el paràmetre de xarxa que configura (màscara, gateway, DNS, lease time, T1/T2) i indica en quin missatge del procés DORA apareix cadascuna.
DHCP Relay Agent
Quan els clients DHCP estan en una subxarxa diferent del servidor:
- Els routers actuen com a agents de retransmissió
- Converteixen broadcasts en missatges unicast
- Permeten centralitzar un servidor DHCP per a múltiples xarxes
- Configurat amb la comanda
ip helper-addressen Cisco
Relay centralitzat o DHCP local a cada seu?
En una xarxa amb diverses seus, el DHCP Relay no és l'única opció: també es pot desplegar un servidor DHCP local a cada seu (al mateix firewall/router). Vegeu la comparativa detallada a Xarxes Corporatives Distribuïdes.
---
config:
theme: base
themeVariables:
background: "#FFFFFF"
primaryTextColor: "#1F2937"
secondaryTextColor: "#fafafa"
lineColor: "#64748B"
nodeBorder: "#CBD5E1"
cScale0: "#2563EB"
cScale1: "#16A34A"
cScale2: "#7C3AED"
---
flowchart LR
%% Client
CL[💻 Client DHCP<br/>IP: 0.0.0.0<br/>MAC: xx:xx:xx:xx]:::client
%% Router / Relay
R[🛡️ Router / DHCP Relay<br/>IP: Relay IP]:::relay
%% Servidor DHCP
SV[🖥️ Servidor DHCP<br/>IP: DHCP Server<br/>Port: 67]:::server
%% Xarxes
subnet1[[🌐 Subxarxa 1]]:::subnet
subnet2[[🌐 Subxarxa 2]]:::subnet
%% Connecta dispositius a les subxarxes
CL --- subnet1
R --- subnet1
R --- subnet2
SV --- subnet2
%% Flux DHCP amb Relay
CL -->|📡 DHCP Discover<br/>Broadcast| R
R -->|➡ Reenvia Discover<br/>Unicast amb Relay IP| SV
SV -->|📨 DHCP Offer<br/>Unicast| R
R -->|⬅ Reenvia Offer<br/>Broadcast| CL
CL -->|✉️ DHCP Request<br/>Broadcast| R
R -->|➡ Reenvia Request<br/>Unicast| SV
SV -->|✅ DHCP ACK<br/>Unicast| R
R -->|⬅ Reenvia ACK<br/>Broadcast| CL
%% Estils
classDef client fill:#2563EB,color:#ffffff,stroke:#1e40af,stroke-width:2px;
classDef relay fill:#7C3AED,color:#ffffff,stroke:#5b21b6,stroke-width:2px;
classDef server fill:#16A34A,color:#ffffff,stroke:#15803d,stroke-width:2px;
classDef subnet fill:#475569,color:#ffffff,stroke:#334155,stroke-width:1px;
Avantatges de DHCP
- Reducció d'errors: Elimina configuracions manuals incorrectes
- Gestió centralitzada: Control des d'un punt únic
- Mobilitat: Els dispositius es connecten automàticament
- Escalabilitat: Fàcil afegir nous dispositius
- Optimització: Reutilització d'adreces IP
Desavantatges i consideracions
- Punt únic de fallada: Si el servidor DHCP falla, no hi ha assignacions
- Seguretat: Possible suplantació de servidors DHCP
- Dependència de xarxa: Sense connectivitat no hi ha configuració
- Latència inicial: Retard en obtenir configuració de xarxa
El DHCP no autentica
Com que el protocol DORA es basa en broadcast sense autenticació, qualsevol equip de la xarxa pot fer-se passar per servidor DHCP (rogue DHCP) i respondre abans que el legítim. Vegeu les mitigacions (DHCP Snooping, etc.) a la pàgina de Ciberseguretat DHCP.
Implementacions principals
Windows Server
- Rol de servidor DHCP integrat
- Interfície gràfica completa
- Integració amb Active Directory
ISC DHCP (en fi de vida des de 2022)
- Servidor DHCP clàssic en Linux/Unix
- Configuració via fitxers de text (
dhcpd.conf) - Vegeu la instal·lació a la pàgina ISC DHCP Linux
Kea DHCP (successor recomanat)
- Desenvolupat pel mateix fabricant (ISC) per substituir ISC DHCP
- Configuració en JSON, backends de BD, API REST i alta disponibilitat nativa
- Vegeu la instal·lació a la pàgina Kea DHCP Linux
Dnsmasq
- Solució lleugera per a xarxes petites
- Combina DHCP i DNS
- Popular en routers domèstics
Punts importants per a exàmens
- DORA: Recordar l'ordre i funció de cada pas
- Ports: UDP 67 (servidor) i 68 (client)
- Broadcast vs Unicast: Quan s'utilitza cada un
- Lease Time: Quan i com es renova
- DHCP Relay: Necessari per a múltiples subxarxes
- Tipus d'assignació: Dinàmica, estàtica i automàtica
Referències i Recursos
RFCs i documentació oficial (ISC DHCP/Kea, Windows DHCP, dnsmasq): consulta la secció DHCP a la pàgina d'Annexos · Recursos.
Informació rellevant
- Evolució del DHCP a Linux amb la discontinuïtat d'ISC DHCP: vegeu la pàgina Kea DHCP Linux