Omet navegació

3. El model funcional DHCP

El protocol DHCP utilitza UDP en la capa de transport. Utilitza dos ports:

  • Port 67, on escolta el servidor.
  • Port 68, on escolta el client.

El protocol DHCP descriu el diàleg que es produeix entre client i servidor per a la concessió de configuracions IP. En una xarxa amb configuració d’equips dinàmica, un o més servidors DHCP escoltaran les peticions dels clients en el port 67. Els clients DHCP sol·licitaran al servidor DHCP una configuració IP, i començarà un procés de negociació que ha d’acabar (si tot va bé) amb la concessió d’una adreça IP al client. Els servidors parlen al port 68 dels clients.

La negociació que s’estableix es pot definir a grans trets de la manera següent:

  1. El client sol·licita una adreça IP (de fet, una configuració de xarxa).
  2. El servidor mira les adreces IP disponibles dins de l’interval d’adreces dinàmiques de què disposa per concedir i n’ofereix una al client.
  3. Si el client l’accepta, envia una sol·licitud al servidor per fer-la seva.
  4. Si al servidor li sembla bé, accepta la petició del client i li confirma que pot utilitzar aquesta IP, que la hi concedeix per un període de temps limitat.

UDP en les transmissions DHCP

L’intercanvi d’informació entre client i servidor no és gaire gran (poc volum de dades) i no requereix un flux permanent (una conversa continuada). És per això que el protocol que s’utilitza en les transmissions DHCP és l’UDP.

La concessió de l’adreça IP és per un període de temps establert pel servidor. Això significa que, transcorregut aquest període, el client haurà de renegociar la concessió en un procés similar al descrit anteriorment. En la figura.1 es pot veure el diàleg de quatre fases client-servidor.

El procés real, però, és més detallat. El podem repassar: consta principalment de quatre parts: la petició del client o discovery, l’oferta del servidor o offer, l’acceptació de l’adreça IP pel client o request, i la confirmació del servidor o acknowledgement. A part d’aquest tipus de missatges, el protocol DHCP en defineix d’altres com el de petició d’informació o information i el d’alliberament de l’adreça IP o releasing.

Model funcional del protocol DHCP
Model funcional del protocol DHCP

Els següents són els tipus de paquets DHCP:

  • DHCP discover.
  • DHCP offer.
  • DHCP request.
  • DHCP ack / DHCP nack.
  • DHCP decline.
  • DHCP release.
  • DHCP information.

DHCP discover

En un procés de configuració IP d’un client de DHCP el paquet DHCP discover és el primer que s’envia. L’envia el client per tal de demanar una configuració IP a algun servidor. Generalment, el client s’acaba d’inicialitzar i vol obtenir una configuració dinàmica de xarxa. El client no sap a quina xarxa pertany (no té adreça IP ni màscara de xarxa) i tampoc sap quins servidors DHCP hi ha en la xarxa (si n’hi ha cap).

Una difusió o broadcast s’adreça a la IP 255.255.255.255 o a l’adreça MAC FF:FF:FF:FF:FF:FF, que és acceptada per tots els equips.

Per tant, el client genera un paquet de difusió (broadcast) destinat a tots els equips de la xarxa on sol·licita una configuració IP. En la xarxa pot haver-hi cap, un o més d’un servidor DHCP per atendre aquesta petició. És responsabilitat de l’administrador de xarxes configurar correctament l’estructura i els serveis de xarxa de forma que si defineix clients de DHCP hi hagi servidors DHCP que atenguin les seves peticions.

DHCP offer

En rebre una sol·licitud de configuració d’un client (DHCP discovery), un servidor DHCP mira d’atendre-la proporcionant una IP de l’interval d’adreces dinàmiques que gestiona (hi pot haver més d’un servidor DHCP en la mateixa xarxa).

DHCP request

Quan el client rep una oferta de configuració IP per part d’un servidor, la pot acceptar o rebutjar. Si el client no accepta l’oferta, simplement realitzarà un DHCP discovery de nou. Això és suficient perquè el servidor s’adoni que l’oferta ha estat rebutjada.

Si el client accepta l’oferta, ho ha de comunicar al servidor. El mecanisme per fer-ho és mitjançant un paquet DHCP request enviat un altre cop per difusió. A hores d’ara, el client encara no disposa de l’adreça IP per utilitzar-la. El servidor l’ha reservat, però encara no ha donat el sí definitiu perquè sigui concedida al client.

El motiu pel qual el client demana quedar-se la concessió (DHCP request) que ha rebut utilitzant difusió és fer públic a tothom de la xarxa que ha acceptat una oferta d’un servidor DHCP concret. Recordeu que la petició del client es fa per difusió i, per tant, pot rebre ofertes de diferents servidors DHCP. Quan accepta una de les ofertes, no ha de dir res als altres servidors que ha refusat. Simplement fent pública quina oferta accepta, la resta de servidors DHCP entenen que la seva oferta s’ha rebutjat.

DHCP ack/DHCP nack

ACK i NACK

ACK i NACK són dos acrònims usuals en el món de la informàtica que signifiquen confirmació (acceptació) i no-conformitat (refús) respectivament.

L’últim pas en una negociació DHCP bàsica el realitza el servidor quan finalment autoritza la concessió enviant el paquet DHCPACK (DHCP akcnowledgement). A partir d’aquest moment, el client sí pot fer ús de l’adreça IP i de la configuració de xarxa rebuda. DHCPACK inclou tota la informació referent a la durada de la concessió i les dades necessàries per gestionar quan expira.

El servidor anotarà en el registre de concessions la que acaba de realitzar i detallarà tots els aspectes d’aquesta, en especial el temps de concessió. El paquet d’acceptació de la concessió DHCPACK és un paquet unidestinació adreçat a la MAC del client.

DHCP decline

Per la seva part, el client també pot examinar l’adreça IP oferta pel servidor per comprovar si està en ús o no. Pot fer altres proves per veure si li sembla correcta o no l’oferta rebuda del servidor. Per exemple, en el cas de renovació d’una IP el client pot rebre una IP diferent a la que utilitza i no li interessa. En aquests casos, el client pot enviar un paquet DHCP decline al servidor per indicar que la seva oferta ha estat rebutjada.

DHCP release

Quan un client ja no necessita més l’ús de la configuració IP que ha rebut, la pot alliberar enviant al servidor un paquet DHCP release. En fer-ho, el servidor afegeix l’adreça IP al conjunt d’adreces dinàmiques que té disponibles. També fa l’anotació pertinent en el registre de concessions (leases) per indicar que ha finalitzat l’ús de l’adreça. De totes maneres, molt sovint el client no pot arribar a emetre aquest paquet perquè és apagat per l’usuari sense deixar temps al sistema per alliberar la IP.

DHCP information

En tot moment el client pot sol·licitar més informació sobre la configuració de xarxa al servidor utilitzant un paquet DHCP information. En el paquet DHCP offer que el servidor envia al client, consten les informacions generals de configuració de xarxa que es trameten en l’oferta: adreça IP, màscara de xarxa, porta d’enllaç predeterminada, servidor DNS, fitxer a baixar i molts altres paràmetres que poden estar configurats per enviar-se en l’oferta. El client pot tornar a demanar al servidor la informació d’aquests paràmetres o pot sol·licitar informació per a la configuració d’altres paràmetres (WINS, NetBIOS, hostname, etc.). El client només pot realitzar una petició d’informació DHCP information al servidor un cop ja està configurat.

Diversos servidors DHCP

Es pot configurar més d’un servidor DHCP, tant per a còpia de seguretat o backup com per incrementar el rendiment en compartir la càrrega de les peticions.

El servidor tracta d’assignar una IP del conjunt o interval (també anomenat pool) d’adreces dinàmiques que gestiona. Per fer-ho, ha de mirar quines de les adreces li queden lliures i disponibles per concedir al client. Cada vegada que el servidor concedeix una IP a un client, ho anota en un fitxer de registre de les concessions efectuades. Cada vegada que finalitza una concessió, el servidor pot tornar a utilitzar la IP per a un altre client.

Tota concessió (o lease) DHCP és per un període determinat de temps i un cop transcorregut cal renovar-la.

El mecanisme que utilitza el servidor per escollir la IP dins del conjunt d’adreces IP disponibles varia en funció del programa de servidor que s’utilitzi. A més a més es poden configurar innumerables opcions del servidor per establir com s’han de fer les concessions. Un cas típic és el de les adreces fixes. A un determinat client sempre se li assigna la mateixa IP. Per això cal disposar de la llista d’adreces MAC dels clients als quals es vol assignar una IP fixa.

El servidor selecciona una IP disponible i la reserva per al client (encara no està assignada). Tot seguit envia un paquet DHCP offer (unidestinació o unicast) al client amb tota la informació de configuració requerida. L’adreça IP i MAC origen identifiquen el servidor que fa l’oferta. El destinatari s’indica per la seva adreça MAC (que és coneguda). El camp IP del destinatari és l’adreça IP que el servidor ofereix (penseu que el client encara no té IP). Un altre concepte important és per quant de temps es realitza la concessió. El paquet inclou més camps per completar la resta de configuració de xarxa, per exemple, la porta d’enllaç per defecte, els servidors DNS, etc.

Exemple de mala configuració d'un equip

Un exemple de mala configuració és la d’un equip que s’ha engegat amb una adreça IP estàtica errònia que se solapa amb les adreces IP que reparteix el servidor. El mecanisme usat per comprovar si l’adreça IP ja està essent utilitzada és fer un ping. Si ningú no respon és que està lliure (segurament).

Quan un servidor DHCP detecta que la IP que havia reservat per a un client i que li anava a concedir ja està en ús, el servidor envia al client un paquet DHCPNACK i indica la no-autorització de la concessió. El client que rep un DHCPNACK ha de tornar a iniciar tot el procés de negociació començant un altre cop pel DHCP discovery.

Com és possible que algun equip de la xarxa utilitze una adreça IP que forma part del conjunt d’adreces IP dinàmiques que reparteix el servidor DHCP? La resposta és senzilla: perquè hi ha algun equip mal configurat.

Petició de renovació/concessió d'una IP concreta

El procés de quatre fases usuals de DHCP consistent en discovery/offer/request/ack es produeix quan el client sol·licita una IP de nou. Sabem que les concessions són per a un interval de temps passat, la renovació de la qual cal que el client la demani. Existeix, doncs, un procés de renovació simplificat. El client demana continuar usant la mateixa IP amb un paquet DHCP request, i el servidor li concedeix o no amb els paquets DHCP ACK/NACK.

Un altre cas és un client que demana usar (renovar) una adreça IP que el servidor no li pot concedir (està en ús, no és de l’interval que gestiona, etc.). En aquesta situació, el servidor envia un DHCP NACK.

Cal que conegues

Tipus d'adreçament

Hi ha diversos tipus d’adreçament:

  • Unidestinació o unicast: a un equip.
  • Multidestinació multicast: a un conjunt d’equips.
  • De difusió o broadcast: a tothom.

Activitat 1: Diagrama UDP

Elabora un diagrama DHCP incloent els noms dels missatges que s'intercanvien per a establir una nova configuració IP, els equips que participen, ports UDP i explicacions de cada missatge.
A més a més, afig una captura de la seqüència de missatges capturats amb wireshark (filtre: bootp).