Omet navegació

1. Introducció

L’administrador de xarxa té la tasca de configurar els equips que la componen. Això significa configurar els servidors, els equips client, concentradors, encaminadors, etc. Cada equip de la xarxa s’ha d’identificar amb l’adreça IP corresponent i la màscara de xarxa, i generalment disposarà d’un camí d’accés a Internet.

Tant els usuaris com els serveis requeriran l’accés a altres equips identificant-los pel nom de domini en lloc de fer-ho per l’adreça IP, que és més difícil de recordar. Fer això equip per equip resulta una feina pesada i repetitiva si no es disposa de serveis de xarxa que la faciliten.

El servei DHCP permet la configuració d’adreces IP, màscares, passarel·les per defecte i moltes altres opcions de configuració de manera totalment dinàmica. DHCP és l’acrònim de dynamic host configuration protocol, en català, protocol de configuració dinàmica d’equips.

Què fa el DHCP?

Una forma planera d’entendre el DHCP és imaginar que els equips de client en arrencar fan un crit per la xarxa i pregunten “hi ha algú?”, “qui sóc jo?”. El servidor de DHCP els contesta proporcionant-los tota la informació necessària perquè sàpiguen qui són i com han de configurar els seus paràmetres de xarxa.

El servei DHCP proporciona un mecanisme de configuració centralitzat dels equips de la xarxa. En lloc de configurar un per un els equips de xarxa amb adreces i valors estàtics, un servidor DHCP anirà assignant als equips clients els valors que els corresponguin. Aquesta assignació es fa per un període de temps finit, passat el qual caldrà renovar-se.

Avantatges DHCP

El servei DHCP té diversos avantatges:

  • Centralitza l'administració.
  • Evita errors i conflictes IP.
  • Estalvia temps.
  • Simplifica l’administració.

Els principals avantatges d’utilitzar DHCP són: d’una banda, evitar conflictes d’adreces IP (adreces repetides i adreces errònies), ja que passar equip per equip a canviar la configuració és molt més pesat i propens a l’error que fer-ho editant un sol fitxer de configuració en el servidor DHCP; i, d’altra banda, poder fer l’administració centralitzada representa un estalvi de temps i de feina.

El servei DHCP simplifica l’administració de la configuració dels equips de xarxa fent-la centralitzada, dinàmica i amb concessions per períodes de temps finits.

La concessió dinàmica d’adreces IP i altres paràmetres de configuració de xarxa es realitza per a un període de temps determinat, que varia en funció de les necessitats del client i del servidor.

Exemples d'ús del servei DHCP

Els següents són alguns exemples d’ús del servei DHCP:

  • En una biblioteca que admet connexions Wi-Fi, els clients obtindran concessions per a un temps reduït, per exemple, minuts.
  • Un usuari d’Internet que rep al seu equip de casa una adreça IP dinàmica del seu proveïdor d’accés a Internet (ISP) tindrà una concessió que segurament serà per hores.
  • En la xarxa corporativa d’una empresa que s’ha configurat dinàmicament usant DHCP, els equips rebran concessions dinàmiques per períodes de temps molt llargs, per exemple, dies.

Instal·lació de serveis de configuració dinàmica de sistemes
DHCP

DHCP és l’acrònim de dynamic host configuration protocol, en català, protocol de configuració dinàmica d’equips.
El servei DHCP permet la configuració d’adreces IP, màscares, passarel·les per defecte i moltes altres opcions de configuració de manera totalment dinàmica.

Què fa el DHCP?

Una forma planera d’entendre el DHCP és imaginar que els equips de client en arrencar fan un crit per la xarxa i pregunten “que hi ha algú?”, “qui sóc jo?”. El servidor de DHCP els contesta proporcionant-los tota la informació necessària perquè sàpiguen qui són i com han de configurar els seus paràmetres de xarxa.
Identificació dels equips de xarxa

L’administrador de xarxa té la tasca de configurar els equips que la componen. Això significa configurar els servidors, els equips client, concentradors, encaminadors, etc. Cada equip de la xarxa s’ha d’identificar amb l’adreça IP corresponent i la màscara de xarxa, i generalment disposarà d’un camí d’accés a Internet.

Tant els usuaris com els serveis requeriran l’accés a altres equips identificant-los pel nom de domini en lloc de fer-ho per l’adreça IP, que és més difícil de recordar. Fer això equip per equip resulta una feina feixuga i repetitiva si no es disposa de serveis de xarxa que la facilitin.
El servei DHCP
El servei DHCP proporciona un mecanisme de configuració centralitzat dels equips de la xarxa. En lloc de configurar un per un els equips de xarxa amb adreces i valors estàtics, un servidor DHCP anirà assignant als equips clients els valors que els corresponguin. Aquesta assignació es fa per un període de temps finit, passat el qual caldrà renovar-se.

Avantatges DHCP

El servei DHCP té diversos avantatges:

Evita errors i conflictes IP.
Centralitza l’administració.
Estalvia temps.
Simplifica l’administració.
Els principals avantatges d’utilitzar DHCP són: d’una banda, evitar conflictes d’adreces IP (adreces repetides i adreces errònies), ja que passar equip per equip a canviar la configuració és molt més pesat i propens a l’error que fer-ho editant un sol fitxer de configuració en el servidor DHCP; i, d’altra banda, poder fer l’administració centralitzada representa un estalvi de temps i de feina.

El servei DHCP simplifica l’administració de la configuració dels equips de xarxa fent-la centralitzada, dinàmica i amb concessions per períodes de temps finits.
La concessió dinàmica d’adreces IP i altres paràmetres de configuració de xarxa es realitza per a un període de temps determinat, que varia en funció de les necessitats del client i del servidor.

Exemples d'ús del servei DHCP

Els següents són alguns exemples d’ús del servei DHCP:

En una biblioteca que admet connexions Wi-Fi, els clients obtindran concessions per a un temps reduït, per exemple, minuts.
Un usuari d’Internet que rep al seu equip de casa una adreça IP dinàmica del seu proveïdor d’accés a Internet (ISP) tindrà una concessió que segurament serà per hores.
En la xarxa corporativa d’una empresa que s’ha configurat dinàmicament usant DHCP, els equips rebran concessions dinàmiques per períodes de temps molt llargs, per exemple, dies.
Configuració d'un equip de xarxa
Qualsevol equip que pertany a una xarxa requereix que es configuri amb uns paràmetres mínims, que són l’adreça IP, la màscara i la porta d’enllaç per defecte. L’adreça IP identifica l’equip de manera única, i la màscara permet determinar la xarxa o subxarxa en què es troba l’equip. Amb aquests dos paràmetres n’hi ha prou per tenir connectivitat en la xarxa. Si es vol disposar d’accés fora de la xarxa pròpia (per exemple, a Internet o a la resta de la xarxa corporativa) cal definir també la porta d’enllaç predeterminada. A part de la configuració bàsica, els equips poden necessitar (i de fet ho necessiten) més paràmetres de configuració com, per exemple: el nom del host, el servidor DNS, el fitxer d’iniciació a baixar, etc.

Tot equip de xarxa necessita disposar d’una adreça IP que l’identifica de manera única a la xarxa. Cal també una màscara per poder separar de l’adreça IP quina és la part d’adreça de xarxa i quina la part d’adreça de host. Finalment, és imprescindible disposar de l’adreça de la porta d’enllaç predeterminada o passarel·la per defecte (o gateway), per disposar d’accés a xarxes externes.
Exemple de configuració de xarxa d'un equip de casa:

La majoria d’usuaris disposen a casa d’un equip (o més) connectats a un router que proporciona l’accés a Internet. Aquest equip està configurat com a client DHCP i en iniciar-se rep la configuració de xarxa del router. Podeu comprovar a casa quina configuració teniu. Una configuració d’exemple podria ser:

Dirección IP. . . . . . . . . . . : 192.168.1.33
Máscara de subred . . . . . . . . : 255.255.255.0
Puerta de enlace predeterminada : 192.168.1.1
Servidor DHCP . . . . . . . . . . : 192.168.1.1
Servidores DNS . . . . . . . . . .: 80.58.61.250
80.58.61.254
L'inconvenient de la configuració estàtica

La configuració estàtica implica configurar els equips un a un. Fins i tot encara que es tingui accés remot als equips (per Telnet o SSH), com que cal modificar la configuració de xarxa no es pot fer assegut des de l’equip de l’administrador, sinó que cal anar equip per equip a modificar la configuració.
Aquest procés de configuració cal que es faci per a cada equip de la xarxa. Fer-lo manualment implica configurar equip per equip sense cometre errades en teclejar les adreces i les màscares. Qualsevol canvi en l’estructura de la xarxa, com per exemple redefinir les subxarxes o modificar algunes adreces IP, significa tornar a configurar manualment els equips implicats. És evident que tota aquesta feinada no és agradable per a l’administrador de xarxa (i és molt avorrida!). Tant si la xarxa corporativa consta de pocs equips com de molts, cal una solució que permeti automatitzar la configuració de xarxa de cada equip de manera centralitzada.

Les opcions de configuració de xarxa es poden assignar a cada equip estàticament o es poden configurar de manera dinàmica utilitzant DHCP.
Com a administradors de xarxa, la gestió centralitzada que ens proporciona DHCP ens permet modificar la xarxa afegint, eliminant i redefinint, equips amb un cost mínim.
Tipus d'assignacions d'adreces IP
Cada equip de xarxa té assignada una adreça IP que l’identifica de manera única dins la xarxa. La composició de l’adreça IP i la màscara determina la xarxa o subxarxa a la qual pertany. A més a més, es configuren altres paràmetres de xarxa com la porta d’enllaç predeterminada, servidors DNS, etc. Això es pot configurar manualment anant equip per equip i introduint aquesta informació.

Reconfiguració d'una xarxa

Imagineu la diversió de l’administrador d’una xarxa corporativa de 1.000 equips amb adreces estàtiques quan cal reconfigurar-la en un cap de setmana!
Quan l’adreça IP i els altres paràmetres necessaris de configuració de la xarxa es configuren equip per equip, manualment, es diu que tenen IP estàtica.
Quan la configuració de xarxa d’un equip no es fa manualment i localment en l’equip sinó que es rep per mitjà d’un servidor DHCP, es diu que l’equip utilitza una IP dinàmica. Per realitzar configuracions de xarxa dinàmicament caldran un o més servidors de DHCP (a manera de redundància) que proporcionaran la configuració als equips clients (els que cal configurar). Per tant, serà una estructura client-servidor. Les adreces IP dinàmiques que rep el client les podem classificar en dues categories: assignació dinàmica d’interval i assignació fixa.

El servidor DHCP disposa d’un interval d’adreces que pot assignar als clients que demanen una adreça IP. Quan el servidor assigna una adreça qualsevol de l’interval al client (a l’atzar) es tracta d’una assignació dinàmica d’interval. El client no sap quina adreça IP tindrà i no hi ha manera de predir quina adreça se li concedirà en una futura configuració. A cada nova assignació l’adreça IP pot ser diferent.

MAC

Cada interfície de xarxa s’identifica de manera única físicament per l’adreça MAC (media acces control, adreça d’accés al medi).
Una assignació fixa es produeix quan el servidor DHCP sempre assigna la mateixa adreça al client. Per assignar sempre la mateixa adreça IP al client

cal que el servidor pugui identificar inequívocament el client (per l’adreça MAC). El servidor disposa d’una taula amb les correspondències entre les adreces MAC i les adreces IP fixes.

Quan la configuració de xarxa d’un equip es rep per mitjà d’un servidor DHCP es diu que utilitza una adreça IP dinàmica. Aquesta adreça pot variar dins d’un interval d’adreces disponibles per al servidor DHCP o pot ser fixa.
Els avantatges de disposar d’una IP fixa són que la vostra identificació a Internet (la vostra adreça IP) no varia i tothom us pot identificar sempre per la mateixa IP. Podeu proporcionar serveis a altres equips, els clients us identifiquen sempre amb la mateixa adreça sense haver de recordar en cada moment quina adreça IP teniu avui (com passa en el cas d’una IP dinàmica).

DNS dinàmic

Hi ha serveis de DNS dinàmic (DDNS) que permeten assignar un nom de domini a equips amb adreça IP dinàmica.
El protocol DHCP i els seus components
El protocol DHCP ve descrit, com la majoria de protocols de xarxa, per un document oficial anomenat RFC. Al llarg dels anys ha sofert diverses evolucions per anar-se adaptant a les necessitats de cada moment. Tot protocol implica un diàleg entre els equips que hi intervenen, ens caldrà doncs analitzar quin és i com es produeix aquest diàleg. Finalment es descriurà el significat de termes tan usuals en DHCP com intervals, exclusions, concessions i reserves.

Què són els RFC?

Els Request for Comments (RFC) són memoràndums sobre noves investigacions, innovacions i metodologies relacionades amb les tecnologies d’Internet. Quan els publica l’IETF (Internet Engineering Task Force) defineixen a escala mundial els protocols i les seves revisions. És a dir, són les publicacions oficials que descriuen els protocols.
Per trobar especificacions dels protocols d’Internet, vegeu la secció “Més informació” del web d’aquest mòdul.
Evolució del protocol DHCP
El servei DHCP és un servei del tipus client-servidor que proporciona la configuració de xarxa als clients que ho sol·liciten. Proporciona els paràmetres bàsics de xarxa com l’adreça IP, la màscara de xarxa, la porta d’enllaç i també d’altres paràmetres necessaris per a una connexió en una xarxa IP. Es tracta d’un protocol de la capa d’aplicació del model TCP/IP.

El protocol DHCP està basat en l’arquitectura de serveis client-servidor i utilitza com a transport el protocol UDP de la pila de protocols TCP/ IP. El servidor DHCP es comunica amb els clients utilitzant paquets UDP, que rep en el seu port 67 i envia al port 68 del client.
L’RFC 951 és el document base que descriu el protocol BOOTP.
La configuració dinàmica d’equips de xarxa es va iniciar amb el protocol BOOTP (BOOT strap protocol, protocol d’arrencada). Un protocol més bàsic que principalment permetia definir l’adreça IP, la màscara de xarxa i la passarel·la per defecte per al client. El protocol BOOTP (RFC 951, any 1985) és un protocol pensat per proporcionar automàticament la IP a clients de xarxa en el procés d’arrencada. Originàriament s’utilitzava per a estacions de treball sense disc que obtenien la configuració de xarxa del protocol BOOTP i també obtenien el nom d’un fitxer d’arrencada que s’havia de baixar per mitjà del TFTP, que usualment era el sistema operatiu.

RFC de DHCP

Principals RFC dedicades a DHCP:

RFC 2131. Març 1997. DHCP dynamic host configuration protocol.
RFC 2132. DHCP options.
RFC 3396. Encoding long options.
RFC 4361. No especific client identifications for dhcpv4.
RFC 3315. DHCPv6 dinamic host configuration protocol Ipv6.
El BOOTP va donar pas al protocol DHCP, que n’és una evolució amb moltes més prestacions. El DHCP sorgeix l’octubre del 1993 a través de l’RFC 1531. Ràpidament evoluciona per mitjà de diverses RFC, com l’RFC 1541 el mateix any 1993, que serà substituïda per l’RFC 2131 el març del 1997. Aquest document és la base del protocol DHCP actual. A grans trets, el protocol es descriu en l’RFC 2131 per a xarxes Ipv4, el conjunt d’opcions de configuració de DHCP es descriuen en l’RFC 2132, i l’especificació de DHCP per a xarxes Ipv6 és en l’RFC 3315.
El model funcional del protocol DHCP
Ports 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:

El client sol·licita una adreça IP (de fet, una configuració de xarxa).
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.
Si el client l’accepta, envia una sol·licitud al servidor per fer-la seva.
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.

 

Figura 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, 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).

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.

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.
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.
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. Recordeu que el client encara no disposa d’una adreça IP vàlida, en disposarà en rebre el DHCPACK.

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 utilitzi 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.
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.
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.

Macchange

L’ordre GNU permet (mascarade) emmascarar l’adreça MAC pròpia. Compte! No feu dolenteries.
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.
Atacs al funcionament de DHCP i conflictes d'adreces IP
vei. Consisteix a inundar de peticions un servidor per tal de saturar-lo i bloquejar-ne el funcionament. Un client pot realitzar innumerables peticions DHCP discovery fingint que són clients diferents (emmascarant la seva MAC) amb la intenció d’esgotar les adreces IP disponibles del servidor o simplement amb la intenció de sobrecarregar-lo amb tantes peticions que no doni a l’abast a atendre-les o que ho faci lentament.

Un altre tipus d’atac consisteix a falsejar la informació que s’envia al client. Recordem que el client fa una sol·licitud d’IP en forma de difusió (broadcast) i la seva petició pot ser atesa per un o més servidors DHCP. Un dels servidors DHCP pot ser un atacant que intentarà proporcionar informació de configuració falsa al client. Per exemple indicant un servidor DNS també maliciós. Aquest pot falsejar les identitats de les màquines de la xarxa i, quan el client s’adreça a la seva entitat bancària, el servidor DNS en realitat li ha proporcionat una IP d’una màquina que falseja la de l’entitat bancària. Perillós, oi?

Tipus d'atacs DNS

Clients no autoritzats: accés a servidors DNS per part de clients no autoritzats. Servidors no autoritzats: servidors DNS impostors que suplanten els vertaders servidors.
 

Per posar remei a la inseguretat en la comunicació client-servidor DHCP, el protocol permet utilitzar mecanismes d’autenticació i xifratge. Aquests mecanismes queden fora de l’abast d’aquesta explicació.
Conflictes amb les adreces IP
Un dels principals motius per utilitzar DHCP és simplificar el procés de configuració de xarxa i minimitzar els conflictes per encavalcament d’adreces IP. Per desgràcia, això no garanteix que no es puguin produir conflictes. Per exemple, ens podem trobar en situacions en què dues màquines diferents tinguin la mateixa IP per una simple mala configuració del servidor DHCP. Un altre cas típic és el d’un client que s’ha configurat ell mateix una IP estàtica quan en la xarxa ja hi havia un equip que utilitzava la mateixa adreça IP assignada pel servidor DHCP.

Un problema habitual per als administradors poc experimentats és definir una configuració de xarxa local al client (hostname, servidor DNS, porta d’enllaç a utilitzar, etc.), però demanar l’adreça IP dinàmicament. La configuració dinàmica no és solament la IP i la màscara, sinó que el servidor DHCP pot proporcionar altres paràmetres de xarxa que sobreescriuran els que el client tenia definits localment (aquest és l’objectiu de DHCP!).

La configuració rebuda per DHCP sobreescriu la configuració local del client.
Intervals, exclusions, concessions i reserves
Els clients DHCP obtenen del servidor una configuració de xarxa. Descrivim ara alguns dels termes que tenen lloc durant aquest procés, i que formen part de la configuració DHCP.

Interval: anomenen interval d’adreces IP el conjunt d’adreces dinàmiques que el servidor té disponibles per assignar als clients. Les adreces IP disponibles s’agrupen per oferir-se a les diverses subxarxes que atén el servidor. Una mateixa subxarxa pot disposar de diversos intervals. Segurament s’entendrà més fàcilment amb un exemple:
subnet 140.220.191.0 netmask 255.255.255.0 {
range 140.220.191.150 140.220.191.249;
}

subnet 239.252.197.0 netmask 255.255.255.0 {
range 239.252.197.10 239.252.197.107;
range 239.252.197.113 239.252.197.250;
}
En l’exemple anterior s’observa que la primera subxarxa disposa d’un interval de 100 adreces dinàmiques (de la 140.220.191.150 al 250). La segona subxarxa permet assignar dinàmicament dos intervals d’adreces no correlatius.
Exclusions: entenem per exclusions aquelles adreces IP que no s’ofereixen dinàmicament per part del servidor. És a dir, que no formen part de cap interval.
Concessions: l’assignació d’una adreça IP i la resta de paràmetres de xarxa a un client per part del servidor, és una concessió (o leasse). Els clients reben les concessions per períodes de temps finits, que en finalitzar, cal renegociar. Tant el client com el servidor s’anoten les concessions, el client la que rep i el servidor les que concedeix. Quan finalitza una concessió el servidor pot decidir revocar-la o ampliar-ne la concessió.
El client tothora pot decidir renunciar a la concessió. Si el client vol allargar la concessió inicia un diàleg DHCP abreujat amb el servidor que pot acabar amb una renovació o amb la pèrdua de la concessió (sempre pot tornar a començar el procés). Tant el servidor com el client normalment miren les concessions que s’han efectuat entre ells amb anterioritat per tal de, si és possible, repetir la mateixa assignació.
Reserves: anomenem reserves aquelles adreces IP que s’assignen via DHCP però de manera fixa. És a dir, són adreces que s’assignen dinàmicament però sempre i únicament a un host determinat. Fixeu-vos que tot i ser una adreça dinàmica només s’utilitza si el host associat en fa ús. Si el host està apagat l’adreça no es pot usar per a altres hosts, està reservada. Un exemple podria ser:
subnet 140.220.191.0 netmask 255.255.255.0 {
host iocserver {
hardware ethernet 08:00:2b:4c:59:23;
fixed-address 140.220.191.1;
}
range 140.220.191.150 140.220.191.249;
}
En aquest exemple es pot veure que l’adreça 140.220.191.1 és una adreça reservada exclusivament per al host iocserver, que s’identifica mitjançant la seva adreça MAC.
DHCP un servei client/servidor
Com acostuma a passar amb els serveis client/servidor, un equip pot realitzar les dues funcions al mateix temps.
El servei DHCP és un més dels serveis de xarxa que tenen l’estructura client /servidor. Els servidors DHCP són els equips que tenen en execució el programa servidor. És el programa encarregat d’atendre les peticions dels clients i oferir-los la configuració de xarxa, tot portant el registre de les IP que concedeix i el registre de totes les accions que realitza. Els clients DHCP són aquells equips que realitzen peticions per obtenir una configuració de xarxa a un servidor DHCP.
El client DHCP
Un equip client DHCP és un equip que sol·licita la IP i altres paràmetres de configuració de xarxa a un servidor DHCP en lloc de tenir-los definits localment en l’equip.

ISP

ISP: Internet service provider o proveïdor de servei/accés a Internet. Ho són per exemple les empreses Ono, Vodafone, Jazztel, etc.
Si connecteu el vostre equip informàtic a la xarxa Internet per mitjà d’un ISP (Internet service provider o proveïdor de servei/accés a Internet), segurament rebreu una IP dinàmica del vostre proveïdor. Quan es realitzava una trucada telefònica amb mòdem i usant el protocol PPP (point to point protocol, protocol punt a punt), el proveïdor proporcionava una adreça IP dinàmica. Si utilitzeu ADSL i un encaminador o router, segurament l’encaminador us proporciona una adreça IP dinàmica privada a l’ordinador de casa. Al mateix temps, l’encaminador obté una IP dinàmica pública del proveïdor. Aquestes adreces IP dinàmiques són fixes (sempre les mateixes) o dinàmiques d’interval (pot ser qualsevol IP del conjunt d’adreces IP que té disponibles per concedir el servidor DHCP).

IP pública / IP privada

La diferència entre una IP pública i una IP privada és que la pública és visible per a tots els equips d’Internet, mentre que la privada és visible només dins de la mateixa xarxa local.
El client DHCP ha de tenir en funcionament un dimoni (daemon) encarregat de la gestió de les tasques DHCP per part del client. El programa client realitza la part de negociació encarregada al client (DHCP discovery, request) i també porta un registre de les concessions (leases) rebudes. Aquest registre és el que utilitza el client per tornar a demanar la mateixa IP que tenia anteriorment. Un cop rebuda la concessió el programa client queda “adormit”, pendent de tornar-se a executar automàticament quan calgui renegociar la concessió. Sense intervenció de l’usuari, el programa client s’activa i segueix el procediment necessari per renegociar l’adreça IP cada cop que el temps de la concessió s’exhaureix.

Configuració client

Usualment les configuracions clients es poden fer de tres maneres diferents:

fitxer de text: editar directament els fitxers de configuració.
menús en mode text: usant algun programa de menús amb interfície de text.
aplicació gràfica: usant una aplicació de finestres en l’entorn gràfic.
Els programes client varien d’un sistema operatiu a un altre i la manera d’executar-los també. Generalment es disposa d’un client executable en mode text o ordres i d’una interfície gràfica (GUI, graphics user interface o interfície gràfica d’usuari) per a la configuració. No cal dir que els sistemes Windows tendeixen a la configuració gràfica usant finestres i a la configuració i execució interna d’amagat de l’usuari. Normalment, en els sistemes GNU/Linux, la configuració es fa usant fitxers de text o com a opcions en l’ordre d’execució. La interfície gràfica acostuma a ser un frontal (front-end) per cridar l’ordre. Segons sigui el sistema operatiu es pot consultar el fitxer de registre de les concessions rebudes pel client, el fitxer de leasses, més o menys detalladament.

Generalment el programa client es pot configurar per definir-ne el comportament en la comunicació amb el servidor: informació a demanar, informació a proporcionar al servidor, opcions per defecte, etc.
El servidor DHCP
L’administrador de xarxa és l’encarregat de pensar la ubicació del servidor o servidors DHCP en l’estructura corporativa. Com més complicada sigui la topologia de la xarxa, més difícil en serà la gestió. Una xarxa corporativa bàsica pot disposar d’un únic servidor DHCP que ofereix els seus serveis a tots els equips de la xarxa. Els clients poden estar en una mateixa subxarxa o en diverses subxarxes, però totes amb connectivitat amb el servidor DHCP. Aquest també pot ser l’esquema d’una xarxa privada a casa, on un encaminador (el de l’ISP, per exemple) proporciona el servei DHCP a tots els ordinadors de la casa.

Si la xarxa corporativa creix i passa a tenir subxarxes segmentades amb tallafocs les unes de les altres, la configuració del servidor DHCP es complica. Si es vol continuar amb un únic servidor per a tota la xarxa, caldrà que els tallafocs (firewalls) deixin passar els paquets DHCP entre les subxarxes i el servidor. Una altra opció és posar un servidor DHCP per a cada subxarxa o grups de subxarxes. Fent-ho així, l’administració de cada servidor és més senzilla però hi ha més servidors a administrar. Una xarxa amb una casuística completa és la que té diversos servidors DHCP per a diverses parts de la xarxa i tallafocs entre clients i servidors que han de permetre el pas de paquets DHCP.

Si el servidor DHCP és l’encarregat de donar adreces IP als clients, qui li proporciona una adreça IP a ell? O bé un altre servidor DHCP (i podríem tornar a fer la mateixa pregunta indefinidament) o bé l’administrador. Usualment, en una xarxa corporativa el servidor DHCP utilitza una IP estàtica definida per l’administrador. Això li permet estar sempre disponible per als clients amb la mateixa IP i no el fa dependre d’un altre servidor extern.

Hi ha diversos programes servidors DHCP: en mode text, en mode gràfic, en mode “màgic” (no es veu què fan) i en mode Unix (tot basat en fitxers de text). Cada administrador treballa amb les seves eines preferides. Les tasques bàsiques per aprendre a utilitzar un servidor DHCP són observar/fer una llista de la configuració actual, activar/aturar el servei, modificar la configuració, monitorar els logs (registre de successos del servei) i, evidentment, saber instal·lar i desinstal·lar l’aplicació servidor.

Els fitxers de logs (successos) recullen els esdeveniments que es volen monitorar.
Com la majoria de serveis de xarxa, el servei DHCP és un servei que s’executa en segon pla en forma de dimoni. El servidor DHCP sempre està engegat escoltant en el port 67 les peticions que rep dels clients. Quan rep una petició entrant, el programa executable del servidor DHCP la processa i posa en marxa tot el mecanisme DHCP pertinent per tornar a escoltar noves peticions. De fet, el servidor sempre escolta peticions i les processa simultàniament (segons la configuració).

Els fitxers del registre del servei, on s’anoten les concessions, permeten mantenir la informació encara que el servei s’aturi o que el servidor s’apagui. En tornar a engegar es llegiran de nou els fitxers de registres per tal de saber quines són les concessions que s’havien realitzat.

Els fitxers de concessions permeten mantenir la coherència de l’assignació d’adreces IP entre aturades del servei.
Instal·lació d'un servei DHCP
El servei de xarxa DHCP està estructurat en forma de servei client / servidor; per tant, caldrà disposar del programari apropiat per fer cada un d’aquests rols. El programari que fa la funció de client usualment ja està integrat en el sistema operatiu (la part que gestiona la xarxa). És a dir, per disposar de la part client del servei DHCP normalment no cal instal·lar res, ja forma part del servei de xarxa.

Així doncs, quan parlem d’instal·lar un servei DHCP fem referència al procés d’instal·lació i configuració del programari del servidor DHCP. Evidentment també caldrà configurar els clients adequadament per fer ús d’aquest servei.

La instal·lació del programari que proporciona el servei DHCP es fa de manera molt similar (per no dir idèntica) al programari d’altres serveis de xarxa com els serveis DNS, HTTP, FTP, etc. Es tracta d’instal·lar el programari de l’aplicació servidor i fer-ne la configuració apropiada. Senzill oi?

Per fer això cal plantejar-se els passos següents:

Quin programari proporciona aquest servei? Quines característiques té? Com es pot adquirir?
Obtenir l’aplicació que proporciona el servei DHCP.
Observar l’estat de la xarxa actual. Està el servei ja en funcionament? Existeix ja una configuració DHCP activa?
Instal·lar l’aplicació servidor.
Comprovar que la instal·lació s’ha efectuat correctament.
Configurar el servei en el servidor i activar els clients perquè l’utilitzin.
Comprovar que el servei funciona correctament.
Aplicacions servidor DHCP
Sempre que l’administrador vol posar en funcionament un nou servei de xarxa cal que primerament analitzi quines aplicacions hi ha al mercat que ofereixen aquest servei. És feina seva estudiar les característiques de les diverses aplicacions, com per exemple: avaluar-ne l’eficiència, el cost, el que en diuen els altres… La manera més fàcil de fer això és navegar per Internet, consultar les revistes especialitzades o demanar consell a un dels gurus informàtics coneguts.

Usualment l’administrador s’informa a través del seu cercador preferit, per exemple Google, i de webs com la Viquipèdia. Podeu cercar DHCP o DHCP server al Google i a la wiki (en anglès).
Usualment, però, l’administrador acaba utilitzant l’aplicació servidor DHCP que li proporciona el mateix sistema operatiu. Si utilitzeu el sistema operatiu Windows l’empresa Microsoft disposa d’una aplicació pròpia, però també en podeu trobar d’altres a Internet. Igualment si utilitzeu GNU/Linux segurament la mateixa distribució ja proporciona un servidor DHCP. De totes maneres en podeu obtenir d’altres també a Internet.
Instal·lar l'aplicació servidor
Tot seguit es descriurà el procés per instal·lar el servei DHCP en un entorn GNU/Linux. Un cop feta la instal·lació cal observar què s’ha instal·lat, quins programes executables, on són els fitxers de configuració, els de monitoratge, etc.

Els usuaris GNU/Linux poden buscar fàcilment per Internet quins paquets del client i del servidor dhcp usant eines com yum, apt-get o wget, a part dels repositoris de programari usuals o del mateix Google.

Llista de paquets rpm que contenen exactament el text dhcp:

[root@portatil ~]# yum list dhcp
fedora 100% |===================================================| 2.3 kB 00:00
Installed Packages
dhcp.i386 12:3.0.5-42.fc7 installed
Llista de paquets que contenen la cadena dhcp:

[root@portatil ~]# yum list dhcp*
Installed Packages
dhcp.i386 12:3.0.5-42.fc7 installed
dhcpv6_client.i386 0.10-44.fc7 installed
Available Packages
dhcp-devel.i386 12:3.0.5-42.fc7 updates
dhcp-forwarder.i386 0.7-12.fc7 fedora
dhcp-forwarder-sysv.i386 0.7-12.fc7 fedora
dhcp-static.i386 12:3.0.5-42.fc7 updates
dhcpv6.i386 0.10-44.fc7 updates
Instal·lar el paquet dhcp:

# yum install dhcp
Fer la llista dels paquets dhcp instal·lats. Si el sistema ja els té instal·lats o volem comprovar-ho podem consultar els paquets instal·lats:

[root@portatil ~]# rpm -qa | grep dhcp
libdhcp6client-0.10-44.fc7
libdhcp4client-3.0.5-42.fc7
dhcp-3.0.5-42.fc7
dhcpv6_client-0.10-44.fc7
libdhcp-1.24-6.fc7
Obtenir informació del paquet del servei dhcp instal·lat:

[root@portatil ~]# rpm -qi dhcp
Name : dhcp Relocations: (not relocatable)
Version : 3.0.5 Vendor: Fedora Project
Release : 42.fc7 Build Date: dl 12 nov 2007 17:37:56 CET
Install Date: dc 23 gen 2008 19:14:18 CET Build Host: xenbuilder4.fedora.phx.redhat.com
Group : System Environment/Daemons Source RPM: dhcp-3.0.5-42.fc7.src.rpm
Size : 2162920 License: ISC
Signature : DSA/SHA1, dl 14 gen 2008 19:35:22 CET, Key ID b44269d04f2a6fd2
Packager : Fedora Project
URL : http://isc.org/products/DHCP/
Summary : DHCP (Dynamic Host Configuration Protocol) server and relay agent
Description :
El DHCP (protocol de configuració dinàmica de màquines) és un protocol
que permet a dispositius individuals d'una xarxa IP obtenir la seva
informació de configuració de xarxa (adreça IP, màscara de subxarxa,
adreça de difusió, etc) d'un servidor DHCP. El propòsit del DHCP és
fer més senzilla l'administració d'una xarxa gran. El paquet dhcp
inclou el servei DHCP i l'agent de repetició de l'ISC.
Per usar DHCP a la vostra xarxa, instal·leu un servei DHCP (o agent
de repetició) i als clients executeu un dimoni client DHCP. El paquet
dhcp proporciona servei DHCP i l'agent de repetició de l'ISC.
Observar els components del programari instal·lat
Sovint passa que els usuaris instal·len programes als ordinadors però no saben quins fitxers han instal·lat ni on són. Un administrador curiós ha de fer un repàs a tot allò que s’ha afegit de nou al sistema.

Fer la llista dels components del paquet dhcp:

[root@portatil ~]# rpm -ql dhcp
/etc/dhcpd.conf
/etc/openldap/schema/dhcp.schema
/etc/rc.d/init.d/dhcpd
/etc/rc.d/init.d/dhcrelay
/etc/sysconfig/dhcpd
/etc/sysconfig/dhcrelay
/usr/bin/omshell
/usr/sbin/dhcpd
/usr/sbin/dhcrelay
/usr/share/doc/dhcp-3.0.5
... output suprimit ....
/usr/share/doc/dhcp-3.0.5/rfc951.txt
/usr/share/man/man1/omshell.1.gz
... output suprimit ...
/usr/share/man/man8/dhcrelay.8.gz
/var/lib/dhcpd
/var/lib/dhcpd/dhcpd.leases
En funció del directori on s’ubiquen els fitxers podem intuir si són executables, de configuració o de documentació. També podem mirar de filtrar la sortida en cada cas:

Fitxers de configuració (usualment en el directori /etc):

[root@portatil ~]# rpm -qc dhcp
/etc/dhcpd.conf
/etc/openldap/schema/dhcp.schema
/etc/sysconfig/dhcpd
/etc/sysconfig/dhcrelay
/var/lib/dhcpd/dhcpd.leases
 
[root@portatil ~]# rpm -ql dhcp | grep etc
/etc/dhcpd.conf
/etc/openldap/schema/dhcp.schema
/etc/rc.d/init.d/dhcpd
/etc/rc.d/init.d/dhcrelay
/etc/sysconfig/dhcpd
/etc/sysconfig/dhcrelay
Fitxers de documentació:

[root@portatil ~]# rpm -qd dhcp
/usr/share/doc/dhcp-3.0.5/IANA-arp-parameters
/usr/share/doc/dhcp-3.0.5/README
/usr/share/doc/dhcp-3.0.5/README.ldap
/usr/share/doc/dhcp-3.0.5/RELNOTES
/usr/share/doc/dhcp-3.0.5/__fedora_contrib/3.0b1-lease-convert
/usr/share/doc/dhcp-3.0.5/__fedora_contrib/dhcp.spec
/usr/share/doc/dhcp-3.0.5/__fedora_contrib/dhcpd-conf-to-ldap
/usr/share/doc/dhcp-3.0.5/__fedora_contrib/ms2isc/Registry.perlmodule
/usr/share/doc/dhcp-3.0.5/__fedora_contrib/ms2isc/ms2isc.pl
/usr/share/doc/dhcp-3.0.5/__fedora_contrib/ms2isc/readme.txt
/usr/share/doc/dhcp-3.0.5/__fedora_contrib/sethostname.sh
/usr/share/doc/dhcp-3.0.5/__fedora_contrib/solaris.init
/usr/share/doc/dhcp-3.0.5/api+protocol
/usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample
/usr/share/doc/dhcp-3.0.5/draft-ietf-dhc-authentication-14.txt
/usr/share/doc/dhcp-3.0.5/draft-ietf-dhc-dhcp-dns-12.txt
/usr/share/doc/dhcp-3.0.5/draft-ietf-dhc-failover-07.txt
/usr/share/doc/dhcp-3.0.5/draft-ietf-dhc-ldap-schema-01.txt
/usr/share/doc/dhcp-3.0.5/rfc1542.txt
/usr/share/doc/dhcp-3.0.5/rfc2131.txt
/usr/share/doc/dhcp-3.0.5/rfc2132.txt
/usr/share/doc/dhcp-3.0.5/rfc2485.txt
/usr/share/doc/dhcp-3.0.5/rfc2489.txt
/usr/share/doc/dhcp-3.0.5/rfc951.txt
/usr/share/man/man1/omshell.1.gz
/usr/share/man/man5/dhcp-eval.5.gz
/usr/share/man/man5/dhcp-options.5.gz
/usr/share/man/man5/dhcpd.conf.5.gz
/usr/share/man/man5/dhcpd.leases.5.gz
/usr/share/man/man8/dhcpd.8.gz
/usr/share/man/man8/dhcrelay.8.gz
Podem mirar de filtrar quins són els executables tenint en compte que usualment estaran en un directori de nom bin o sbin:

Arxius executables

En GNU/Linux els fitxers executables per l’administrador es troben usualment a i a . Els executables d’usuari normalment són a i .
[root@portatil ~]# rpm -ql dhcp | grep bin
/usr/bin/omshell /sbin
/usr/sbin/dhcpd /usr/sbin
/bin
/usr/sbin/dhcrelay /usr/bin
 

En resum:

Els fitxers de documentació es troben generalment a: /usr/share/doc i a /usr/share/man.
Els fitxers de configuració es troben a: /etc, i a /etc/sysconfig.
El dimoni del servei es troba a: /usr/sbin/dhcpd.
El fitxer de configuració del dimoni del servei és: /etc/dhcpd.conf.
El fitxer de govern del servei és: /etc/rc.d/init.d/dhcpd.
Activar/desactivar el servei i nivells d'arrancada
Un cop feta la instal·lació física de l’aplicació servidor DHCP (els fitxers) cal posar-lo en marxa, engegar-lo, o comprovar que ja ho està.

Serveis de xarxa: stand alone o xinetd

En la majoria de serveis de xarxa el servidor pot funcionar com un servei per si mateix (stand alone) o pot estar configurat per funcionar dins d’un superservei de xarxa com per exemple inetd i xinetd. Si funciona en mode de servei propi és el servidor qui escolta les connexions entrants i les atén. Si s’executa dins del superservei de xarxa, aquest és qui detecta les connexions entrants i activa el dimoni del servei per tal que les atengui, un cop ateses el dimoni del servei acaba i torna a ser el superservidor de xarxa qui es queda escoltant.

En un primer moment molts serveis funcionaven en mode stand alone, però això es va mostrar poc eficient a nivell de recursos. Fixeu-vos que si es vol oferir n serveis de xarxa, cal tenir engegats els n servidors corresponents. Aquests ocupen memòria i CPU, tot i que no atenguin cap client. Estan engegats només “per si” un client els demana.

Un model més eficient és engegar un únic procés que fa la tasca de superservidor de xarxa (inetd o xinetd) i només quan es rep una petició d’un client, s’executa el servei apropiat.

Usualment els serveis que funcionen en mode xinetd disposen de fitxers de configuració lligats al xinetd. Els serveis que actuen indivudualment disposen dels fitxers de configuració propis al etc rc.dinit.d/.

Molt sovint és decisió de l’administrador configurar en quin mode de funcionament vol que treballi el servei. Per exemple el servei de pàgines web (httpd), el servei ssh i molts d’altres, funcionen individualment. Serveis més bàsics com telnet, finger, tftp, etc funcionen usualment dins del xinetd.
Primerament cal saber si el servidor instal·lat funciona en mode stand-alone o dins del superdimoni de xarxa xinetd o initd. Si existeixen fitxers de configuració dins del directori /etc/xinetd.d/<nom-servei> es tracta d’un servei dins del xinetd. Si existeixen fitxers de configuració dins del directori /etc/rc.d/init.d/<nom-servei> es tracta d’un servei stand-alone. Podem fer:

[root@portatil ~]# rpm -ql dhcp | grep /etc
/etc/dhcpd.conf
/etc/openldap/schema/dhcp.schema
/etc/rc.d/init.d/dhcpd
/etc/rc.d/init.d/dhcrelay
/etc/sysconfig/dhcpd
/etc/sysconfig/dhcrelay
Com podem observar es tracta d’un servei stand-alone. També es pot consultar el tipus de servei amb l’ordre chkconfig i observar si surt en la llista d’un tipus o de l’altre:

[root@portatil ~]# chkconfig --list | grep dhcpd
dhcpd 0:apagat 1:apagat 2:apagat 3:apagat 4:apagat 5:apagat 6:apagat
Per facilitar buscar els serveis “stand-alone” podem fer:

[root@portatil ~]# chkconfig --list dhcpd
dhcpd 0:apagat 1:apagat 2:apagat 3:apagat 4:apagat 5:apagat 6:apagat
L’estat del servei pot ser en execució (running) o aturat (stopped). Es pot consultar l’estat amb l’opció status de l’ordre service o del mateix executable del servei:

Es pot saber l'estat del servei amb l'opció status de les ordres:
[root@portatil ~]# service dhcp status
dhcp està aturat
[root@portatil ~]# /etc/rc.d/init.d/dhcpd status
dhcp està aturat
La gestió de l’estat d’un servei normalment inclou les opcions start, stop, status, restart i reload. Aquestes són les més usuals, però cada servei pot definir les que cregui oportunes. Aquests són exemples de gestió de l’estat del servei DHCP:

Es pot arrancar el servei amb l’opció start de les ordres:

[root@portatil ~]# service dhcpd start
S'està iniciant el servei dhcpd: [ FET ]
[root@portatil ~]# /etc/rc.d/init.d/dhcpd start
S'està iniciant el servei dhcpd: [ FET ]
Es pot aturar el servei amb l’opció stop de les ordres:

[root@portatil ~]# service dhcpd stop
S'està aturant el dhcpd: [ FET ]
[root@portatil ~]# /etc/rc.d/init.d/dhcpd stop
S'està aturant el servei dhcpd: [ FET ]
Es pot iniciar de nou el servei (recarregar) amb l’opció reload o restart de les ordres:

[root@portatil ~]# /etc/rc.d/init.d/dhcpd restart
S'està aturant el servei dhcpd: [Incorrecte]
S'està iniciant el servei dhcpd: [ FET ]
[root@portatil ~]# service dhcpd reload
S'està aturant el servei dhcpd: [ FET ]
S'està iniciant el servei dhcpd: [ FET ]
Per saber les opcions possibles d’un servei es pot fer el truc:

[root@portatil ~]# service dhcpd patapum
Forma d'ús: /etc/init.d/dhcpd {start|stop|restart|condrestart|status}
[root@portatil ~]# /etc/rc.d/init.d/dhcpd pimpam
Forma d'ús: /etc/rc.d/init.d/dhcpd {start|stop|restart|condrestart|status}
 

Que un servei del sistema estigui engegat no significa que en arrancar de nou el sistema torni a estar engegat. Cal comprovar que sigui així o assegurar-se de definir-ho correctament. Els serveis (usualment dimonis executables) es poden configurar per arrancar automàticament en determinats nivells d’execució. Les màquines GNU/Linux tenen 7 nivells d’execució com es pot veure del fitxer /etc/inittab:

[root@portatil ~]# head -20 /etc/inittab
... output suprimit ...
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
# ... output suprimit ...
Per configurar a quins nivells es vol que s’executi un servei s’utilitza l’ordre chkconfig, que permet activar/desactivar el servei pels nivells indicats. L’exemple següent mostra l’ús d’aquesta ordre, dóna la llista de l’estat actual del servei DHCP en tots els nivells i el configura per executar-se en els nivells 3, 4 i 5:

[root@portatil ~]# chkconfig --help
chkconfig versió 1.3.34 - Copyright (C) 1997-2000 Red Hat, Inc.
Aquest programari es pot distribuir lliurement d'acord amb els termes de la Llicència
Pública General GNU.
forma d'ús: chkconfig --list [nom]
chkconfig --add <nom>
chkconfig --del <nom>
chkconfig --override <nom>
chkconfig [--level <nivells>] <nom> <on|off|reset|resetpriorities>
[root@portatil ~]# chkconfig --list dhcpd
dhcpd 0:apagat 1:apagat 2:apagat 3:apagat 4:apagat 5:apagat 6:apagat
[root@portatil ~]# chkconfig --level 345 dhcpd on
[root@portatil ~]# chkconfig --list | grep dhcpd
dhcpd 0:apagat 1:apagat 2:apagat 3:engegat 4:engegat 5:engegat 6:apagat
Fixeu-vos que definir els nivells d’execució no significa que el servei estigui ara mateix engegat. Significa que quan arranqui el sistema de nou s’engegarà en els nivells corresponents. Podem ara estar al nivell 5 i tenir el servei aturat perquè encara no l’hem engegat. Per exemple:

[root@portatil ~]# runlevel
N 5
[root@portatil ~]# service dhcpd status
dhcpd està aturat
[root@portatil ~]# service dhcpd start
S'està iniciant el servei dhcpd [ FET ]
Comprovació del funcionament bàsic
 

Comprovar que el servidor DHCP està en funcionament és un procés ben senzill, n’hi ha prou de comprovar que el servei està engegat. Això no vol dir, en cap cas, que el servei estigui funcionant correctament. Potser el servidor està engegat però no està correctament configurat. De fet, la configuració és la part realment important de l’administració d’un servei, i també del servei DHCP.

A part de comprovar l’estat del servei (amb l’opció status), l’administrador pot assegurar-se que el dimoni del servei està en execució buscant el seu PID (process identifier o indicador de número de procés). Una altra activitat a fer és monitorar el registre d’activitats del servei (els logs). Tot el trànsit DHCP és trànsit de xarxa TCP/IP; per tant també es pot observar l’estat dels ports i analitzar el trànsit que s’hi produeix.

Comprovació DHCP

L’administrador pot verificar el funcionament del servidor DHCP observant:

l’estat del servei (on, off)
el PID del servei (ha d’estar running).
el registre de logs.
monitorar el trànsit de xarxa amb una eina tipus wireshark.
l’estat dels ports.
Tot procés en el sistema té un identificador de procés. El PID dels serveis usualment es desen en el sistema de fitxers (al directori /var/run) en forma de fitxer que conté un valor numèric (en text) corresponent al PID del procés. Amb el servei en marxa sempre es pot observar el PID del servidor amb:

[root@portatil ~]# ps ax | grep dhcp
3610 ? Ss 0:00 /usr/sbin/dhcpd
[root@portatil ~]# service dhcpd status
dhcpd (pid 3610) s'està executant...
[root@portatil ~]# ll /var/run/dhcpd.pid
-rw-r--r-- 1 root root 5 29 jun 14:17 /var/run/dhcpd.pid
[root@portatil ~]# cat /var/run/dhcpd.pid
3610
Un cop iniciat el servei es crea un fitxer de bloqueig o lock amb el nom del servei per evitar iniciar-ne una altra instància. Els fitxers de lock usualment es troben a /var/lock i són un simple fitxer de text buit on la seva pròpia existència ja marca que el servei està en marxa. En parar el servei el fitxer s’elimina. Podem observar això fent:

[root@portatil ~]# cat /var/lock/subsys/dhcpd
[root@portatil ~]# ll /var/lock/subsys/dhcpd
-rw-r--r-- 1 root root 0 1 jun 18:26 /var/lock/subsys/dhhcpd
Tots els serveis del sistema normalment es monitoren anotant en fitxers de text un registre de totes les accions que realitzen, són els fitxers coneguts com a fitxers de log. Tant es pot utilitzar un fitxer genèric pel sistema com un fitxer independent per a un servei determinat. El servidor DHCP utilitza el fitxer de monitoratge estàndard /var/log/messages. En aquest fitxer s’enregistra cada cop que el servei s’engega i s’atura.

[root@portatil ~]# cat /var/log/messages | grep dhcp
Jun 29 14:16:53 portatil yum: Installed: dhcp - 12:3.0.5-42.fc7.i386
Jun 29 14:17:33 portatil dhcpd: Internet Systems Consortium DHCP Server V3.0.5-RedHat
Jun 29 14:17:33 portatil dhcpd: Copyright 2004-2006 Internet Systems Consortium.
Jun 29 14:17:33 portatil dhcpd: All rights reserved.
Jun 29 14:17:33 portatil dhcpd: For info, please visit http://www.isc.org/sw/dhcp/
Jun 29 14:17:33 portatil dhcpd: WARNING: Host declarations are global. They are not limited
to the scope you declared them in.
Jun 29 14:17:33 portatil dhcpd: Wrote 0 deleted host decls to leases file.
Jun 29 14:17:33 portatil dhcpd: Wrote 0 new dynamic host decls to leases file.
Jun 29 14:17:33 portatil dhcpd: Wrote 0 leases to leases file.
Jun 29 14:17:33 portatil dhcpd: Listening on LPF/eth0/00:17:31:15:80:7e/192.168.1/24
Jun 29 14:17:33 portatil dhcpd: Sending on LPF/eth0/00:17:31:15:80:7e/192.168.1/24
El servei DHCP desa la informació de registre de les concessions que efectua en un fitxer de leasses. Això li permet seguir la pista de les adreces IP que ha concedit i ser coherent entre diverses arrancades del mateix servidor. Es pot observar aquest fitxer a /var/lib/dhcpd/dhcpd.leases:

[root@portatil ~]# ll /var/lib/dhcpd/dhcpd.leases
-rw-r--r-- 1 root root 473 29 jun 14:17 /var/lib/dhcpd/dhcpd.leases
 
[root@portatil ~]# cat /var/lib/dhcpd/dhcpd.leases
# All times in this file are in UTC (GMT), not your local timezone. This is
# not a bug, so please don't ask about it. There is no portable way to
# store leases in the local timezone, so please don't request this as a
# feature. If this is inconvenient or confusing to you, we sincerely
# apologize. Seriously, though - don't ask.
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-V3.0.5-RedHat
lease 192.168.1.254 {
starts 0 2008/06/29 16:03:41;
ends 1 2008/06/30 04:03:41;
binding state active;
next binding state free;
hardware ethernet 08:00:27:b2:8b:ec;
client-hostname "box";
}
 
lease 192.168.1.254 {
starts 0 2008/06/29 16:19:30;
ends 1 2008/06/30 04:19:30;
binding state active;
next binding state free;
hardware ethernet 08:00:27:b2:8b:ec;
client-hostname "box";
}
Sovint l’administrador vol comprovar que els ports que utilitza el protocol DHCP estan oberts. En GNU/Linux es pot fer una llista fàcilment dels serveis associats a cada port mitjançant el fitxer /etc/services. Algunes utilitats com nmap permeten detectar els ports oberts. Per exemple podem fer:

Llista dels ports que inclouen alguna referència DHCP:
[root@portatil ~]# cat /etc/services | grep DHCP
bootpc 68/tcp dhcpc # BOOTP client
bootpc 68/udp dhcpc
dhcpv6-client 546/tcp
dhcpv6-client 546/udp
dhcpv6-server 547/tcp
dhcpv6-server 547/udp
dhcp-failover 647/tcp # DHCP Failover
dhcp-failover 647/udp # DHCP Failover
dhcp-failover2 847/tcp # dhcp-failover 2
dhcp-failover2 847/udp # dhcp-failover 2
qip-qdhcp 2490/tcp # qip_qdhcp
qip-qdhcp 2490/udp # qip_qdhcp
Si ens hi fixem veurem que de fet el protocol DHCP és anomenat BOOTP. Podem fer la llista de les entrades que corresponen a aquest protocol:

[root@portatil ~]# cat /etc/services | grep bootp
bootps 67/tcp # BOOTP server
bootps 67/udp
bootpc 68/tcp dhcpc # BOOTP client
bootpc 68/udp dhcpc
nuts_bootp 4133/tcp # NUTS Bootp Server
nuts_bootp 4133/udp # NUTS Bootp Server
Es pot observar que el port usat pel client DHCP és el port 68 (bootpc) i el port usat pel servidor és el port 67 (bootps).
Configuració DHCP
Per configurar el servei DHCP primer cal saber observar i manipular la configuració de xarxa existent, i això consisteix a saber:

Observar/fer la llista de la configuració de xarxa actual.
Comprovar l’estat del servei de xarxa.
Activar/desactivar el servei de xarxa.
Monitorar el servei i el procés del servidor.
Exemples de configuració

En GNU/Linux és molt usual que el paquet que proporciona un servei inclogui un fitxer d’exemple de configuració. El servei DHCP incorpora el fitxer d’exemple dhcpd..conf i la pàgina de manual del mateix nom.
Les tasques principals per configurar un servidor DHCP són les següents:

Instal·lar el programari del servidor DHCP.
Activar/desactivar el servei de DHCP.
Observar/fer la llista de la configuració actual del servidor DHCP.
Modificar la configuració del servidor DHCP.
Monitorar els logs del servei DHCP i els fitxers de registre de les concessions (leases).
Per tant, abans d’endinsar-nos en la configuració del servei és molt útil observar una configuració ja existent. Un exemple de fitxer de configuració del servei DHCP és el que es mostra a continuació:

 

# a) opcions globals del servidor DHCP (usuals)
ddns-update-style interim;
ignore client-updates;
# b) definició de la xarxa a la qual s'ofereix el servei DHCP
subnet 192.168.0.0 netmask 255.255.255.0 {
# opcions genèriques per a tots els equips de la xarxa
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
option domain-name "domain.org";
option domain-name-servers 192.168.1.1;
# definició de l'interval d'ips dinàmiques a usar
# i dels temps de les concessions
range dynamic-bootp 192.168.0.128 192.168.0.254;
default-lease-time 21600;
max-lease-time 43200;
# c) Opcions d'equips individuals
# el servidor ns obté sempre una adreça fixa basada en MAC
host ns {
next-server marvin.redhat.com;
hardware ethernet 12:34:56:78:AB:CD;
fixed-address 207.175.42.254;
}
}
En aquest fitxer de configuració es pot veure que hi ha tres àmbits diferents de definició:

Opcions globals en el servidor DHCP. Són opcions que indiquen al servidor la seva manera d’actuar. També són opcions generals que cal aplicar a totes les concessions que es realitzin, independentment de la xarxa o equip que siguin.
Definicions i opcions de xarxa. Es defineixen tantes xarxes diferents com subxarxes ha d’atendre el servidor. Cada definició de subxarxa consta de la IP de la xarxa i la màscara corresponent. Entre claus s’indiquen totes les opcions específiques per a les concessions de les adreces IP corresponents a aquesta subxarxa. Una opció característica és indicar l’interval (o pool) d’adreces dinàmiques a usar, la porta d’enllaç predeterminada, el servidor de noms, etc.
Opcions d’equips individuals. Dins d’una subxarxa es poden definir opcions per a equips individuals. Cal identificar els equips per la seva adreça MAC i, entre claus, indicar les opcions que els són específiques. Això permet assignar adreces fixes dinàmicament (equivalent al protocol BOOTP) usant les opcions de maquinari Ethernet i fixed-address.
Les opcions globals de configuració DHCP es poden redefinir amb valors diferents dins d’un bloc de xarxa concret. Dins d’un equip també es poden definir opcions amb valors diferents als definits per la xarxa o globalment. Tal com passa en els llenguatges de programació preval el valor més intern, el de host sobre el de xarxa i el de xarxa per sobre del global.
Configuració bàsica
Per fer funcionar el servidor DHCP cal configurar-lo prèviament. Per poder arrancar li cal saber a quina xarxa donarà servei i quin és l’interval d’adreces IP que pot usar dinàmicament per a les concessions als clients.

El paquet DHCP conté un fitxer d’exemple al directori /user/share/doc/dhcp*/dhcpd.conf.sample. Aquest fitxer es pot copiar a /etc/dhcpd.conf i passarà a ser la configuració bàsica del servidor DHCP. Podem veure el seu contingut fent:

[root@portatil ~]# ll /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample
-rw-r--r-- 1 root root 852 12 nov 2007 /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample
[root@portatil ~]# cat /etc/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
#
#a) opcions globals
ddns-update-style interim;
ignore client-updates;
 
#b) opcions genèriques per a una subxarxa concreta
subnet 192.168.1.0 netmask 255.255.255.0 {
# --- default gateway
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option nis-domain "domain.org";
option domain-name "domain.org";
option domain-name-servers 192.168.1.1;
option time-offset -18000; # Eastern Standard Time
range dynamic-bootp 192.168.1.128 192.168.1.254;
default-lease-time 21600;
max-lease-time 43200;
 
#c) we want the nameserver to appear at a fixed address
host ns {
next-server marvin.redhat.com;
hardware ethernet 12:34:56:78:AB:CD;
fixed-address 207.175.42.254;
}
}
En la configuració per defecte es poden analitzar els diversos elements que es configuren:

Opcions globals: indiquen al servidor que ignori les actualitzacions dels clients i el tipus de DDNS a usar (actualitzacions dinàmiques de DNS).
Definició de subxarxa: cal definir tants blocs de subxarxa com subxarxes atengui el servidor DHCP.
Opcions genèriques de subxarxa: per a una subxarxa es poden indicar opcions genèriques per als equips d’aquesta subxarxa. Evidentment poden diferir de les opcions d’altres subxarxes.
Les principals opcions de xarxa a descriure són el router, la màscara de xarxa, el domini, etc.
Les principals opcions a descriure del servei DHCP són definir l’interval d’adreces IP dinàmiques a usar pel servidor i el temps màxim de concessió d’aquestes adreces IP.
Per tal que un host determinat tingui sempre la mateixa adreça IP es poden fer entrades individualitzades per a hosts concrets. Els hosts s’identifiquen per la seva adreça MAC.
A un host concret (descrit en una entrada host) se li poden aplicar opcions individualitzades, com per exemple definir el seu nom. Les opcions individuals prevalen sobre les genèriques.
Configuració avançada
El protocol DHCP permet configuracions d’una certa complexitat. Podeu consultar la documentació de DHCP i les pàgines de manual del dimoni dhcpd i del fitxer de configuració dhcpd.conf.

Les principals característiques que s’hi descriuen són l’agrupació d’entrades en grups i classes i la possibilitat que el DHCP es comuniqui amb el DNS (actualitzacions DDNS) per crear entrades DNS quan un equip rep una configuració DHCP.

Un exemple de configuració amb opcions més avançades:

ddns-update-style interim;
ignore client-updates;
 
subnet 192.168.1.0 netmask 255.255.255.0 {
# --- default gateway
 
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
 
option nis-domain "domain.org";
option domain-name "domain.org";
option domain-name-servers192.168.1.1;
option time-offset-18000;# Eastern Standard Time
 
range dynamic-bootp 192.168.1.128 192.168.1.254;
default-lease-time 21600;
max-lease-time 43200;
 
# we want the nameserver to appear at a fixed address
host ns {
next-server marvin.redhat.com;
hardware ethernet 12:34:56:78:AB:CD;
fixed-address 207.175.42.254;
}
 
group {
filename "Xncd19r";
next-server ncd-booter;
 
host ncd1 { hardware ethernet 0:c0:c3:49:2b:57; }
host ncd4 { hardware ethernet 0:c0:c3:80:fc:32; }
host ncd8 { hardware ethernet 0:c0:c3:22:46:81; }
}
}
 
subnet 10.0.0.0 netmask 255.255.255.0 {
option routers 10.0.0.254;
# Unknown clients get this pool.
pool {
option domain-name-servers bogus.example.com;
max-lease-time 300;
range 10.0.0.200 10.0.0.253;
allow unknown-clients;
}
 
# Known clients get this pool.
pool {
option domain-name-servers ns1.example.com, ns2.example.com;
max-lease-time 28800;
range 10.0.0.5 10.0.0.199;
deny unknown-clients;
}
}
Base de dades de concessions fetes pel servidor
El servidor desa en una base de dades local (de fet són fitxers de text) les concessions (leases) que realitza. D’aquesta manera en pot seguir la pista en tot moment. Generalment, les té a memòria (per permetre un accés més ràpid), però en manté una còpia a disc. Si, per exemple, el sistema o el servei es reinicia, pot saber quines són les concessions que encara estan actives (i per tant quines adreces IP no té disponibles).

Usualment el fitxer de concessions és a /var/lib/dhcpd. Podem veure’n el contingut fent:

[root@portatil ~]# cat /var/lib/dhcpd/dhcpd.leases
# All times in this file are in UTC (GMT), not your local timezone. This is
# not a bug, so please don't ask about it. There is no portable way to
# store leases in the local timezone, so please don't request this as a
# feature. If this is inconvenient or confusing to you, we sincerely
# apologize. Seriously, though - don't ask.
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-V3.0.5-RedHat
 
lease 192.168.1.254 {
starts 0 2008/06/29 16:03:41;
ends 1 2008/06/30 04:03:41;
binding state active;
next binding state free;
hardware ethernet 08:00:27:b2:8b:ec;
client-hostname "box";
}
lease 192.168.1.254 {
starts 0 2008/06/29 16:19:30;
ends 1 2008/06/30 04:19:30;
binding state active;
next binding state free;
hardware ethernet 08:00:27:b2:8b:ec;
client-hostname "box";
}
lease 192.168.1.253 {
starts 0 2008/06/29 16:27:16;
ends 0 2008/06/29 22:27:16;
binding state active;
next binding state free;
hardware ethernet 08:00:27:8e:72:de;
}
Opcions de configuració del servidor i àmbit d'aplicació
Les opcions de configuració DHCP són múltiples i comprenen molts àmbits. Algunes permeten compatibilitat amb sistemes antics, d’altres amb altres tipus de xarxes, etc. No és imaginable que un administrador de xarxes les conegui totes a fons. Normalment farà ús d’un conjunt reduït d’opcions que serà més que suficient per administrar la majoria de xarxes.

La configuració DHCP es pot definir tant al client com al servidor, tot i que usualment es farà en el servidor. Entenem com a tasca principal la de configurar un servidor per tal de proporcionar les opcions apropiades a cada subxarxa. De totes maneres, però, un client també pot disposar d’un fitxer de configuració on es defineixen quins són els seus requeriments i com ha de realitzar el diàleg amb el servidor. Per exemple es defineixen quines opcions ha de sol·licitar, valors per defecte a determinades opcions (per si el servidor no en proporciona un valor). El client també pot definir informació que proporcionarà al servidor per tal que aquest prengui decisions dinàmicament.

Podeu fer un repàs més extens de la configuració del servidor consultant la secció d’annexos del web d’aquest mòdul.
Caldrà, doncs, entendre quins són els àmbits (scope) de definició de sentències i opcions, com s’agrupen les subxarxes i els hosts, quines són les opcions globals, com es realitzen definicions condicionals i molts altres detalls.
Àmbit de definició
Els clients es poden agrupar en diversos àmbits per tal de definir les opcions que han de rebre. El mateix servidor DHCP pot actuar de manera diferent segons sigui l’àmbit de definició.

Alguns dels conceptes a tractar són:

Subnets.
Període de concessió.
Adreces fixes o reservades: identificació de host.
PXE: Protocol d’arrencada via xarxa.
Àmbit d’aplicació.
Pool.
Subnets
El servei DHCP permet fer assignació dinàmica d’adreces IP per diferents subxarxes sense que es requereixi un servidor específic per a cada subxarxa. Fins i tot el servei es pot oferir a xarxes “llunyanes”, és a dir, que han de creuar almenys un router per accedir al servidor. En aquest cas es parla del concepte DHCP Relaying.

Per oferir el servei a una subxarxa cal conèixer l’adreça de la xarxa i la seva màscara corresponent. Per cada subxarxa el servidor pot disposar d’un o més intervals d’adreces dinàmiques de les quals obtindrà l’adreça a concedir al client. Uns exemples bàsics poden ser:

# subxarxa amb un interval d'adreces dinàmiques:
subnet 239.252.197.0 netmask 255.255.255.0 {
range 239.252.197.10 239.252.197.250;
}
 
# subxarxa amb dos intervals d'adreces dinàmiques:
subnet 239.252.197.0 netmask 255.255.255.0 {
range 239.252.197.10 239.252.197.107;
range 239.252.197.113 239.252.197.250;
}
Període de concessió
Les concessions d’adreces s’efectuen per períodes de temps determinats. Un cop exhaurit aquest temps, cal procedir a renegociar la concessió (que es pot renovar o cancel·lar). De fet les concessions es poden efectuar per períodes des de zero segons a un temps infinit. El temps apropiat en cada cas dependrà del tipus de client i servei que s’ofereix; és diferent un client wireless a l’aeroport que l’estació de treball del supercap executiu de la corporació.

Des del punt de vista de la configuració del servidor es poden establir dos tipus de temps, el default-lease-time i el max-lease-time. El primer permet definir el temps màxim per defecte que es concedeix als clients quan aquests no han sol·licitat cap període de temps concret. El segon estableix el temps màxim de concessió en aquesta subxarxa. Podem veure un exemple d’aquestes opcions:

# el temps màxim d'una concessió són 7200 segons, a cap client se li pot concedir més temps. Si el client no ha demanat cap temps concret, se li assigna una concessió de 600 segons.
 
subnet 239.252.197.0 netmask 255.255.255.0 {
range 239.252.197.10 239.252.197.107;
default-lease-time 600;
max-lease-time 7200;
}
Els períodes de concessió es poden definir globalment per a totes les subxarxes a les quals es proporciona servei, però és més usual fer-ho per cada subxarxa quan aquestes tenen requeriments diferents.
Adreces reservades
A part de l’assignació dinàmica d’adreces d’interval el servidor DHCP també pot fer assignacions dinàmiques fixes. És a dir, assignar a un equip sempre la mateixa dreça IP. En aquest cas parlem d’adreça reservada. L’equip ‘consumeix’ aquesta adreça tant si està engegat com si està apagat. Per poder assignar a un host concret sempre la mateixa adreça cal identificar-lo de manera única i inequívoca. Això es pot fer mitjançant la seva adreça MAC. Un exemple pot ser:

host iocserver {
hardware ethernet 08:00:2b:4c:59:23;
fixed-address 239.252.197.9;
}
Es pot observar que l’opció hardware permet identificar el host iocserver a través de la seva adreça MAC.
PXE: protocol d'arrencada via xarxa
Molts sistemes i targetes de xarxa permeten arrencar clients de xarxa ‘tontos’. És a dir, equips que arranquen sense disposar de sistema operatiu i que el carreguen via xarxa. PXE és un protocol àmpliament utilitzar per a aquest fi. El client rep via DHCP el nom d’un fitxer que caldrà que descarregui via TFTP. Aquest fitxer acostuma a ser el sistema operatiu o el programari que ha de carregar per inicialitzar-se. L’opció DHCP que comunica el nom del fitxer a descarregar és l’opció filename.

host iocserver {
hardware ethernet 08:00:2b:4c:59:23;
fixed-address 239.252.197.9;
filename "/tftpboot/kernel_ioc.boot";
}
En aquest exemple s’indica el fitxer kernel_ioc.boot per descarregar per TFTP si s’utilitza un protocol d’arrencada via xarxa com el PXE.
Opcions generals
El servei DHCP proveeix el client no només de l’adreça IP, màscara i gateway, sinó de molts altres paràmetres de configuració de xarxa. Alguns d’aquests paràmetres són molt usuals (DNS, routers, etc) i d’altres molt específics (rars fins i tot).

Tots aquests paràmetres es passen al client en forma d’options. Les opcions poden ser d’àmbit general (per a totes les subxarxes), d’àmbit per a una subxarxa i d’àmbit concret d’un sol host. L’ordre de precedència és de l’àmbit més concret al més general. Un exemple seria:

Per saber més de les opcions específiques es pot consultar la pàgina del manual dhcp-options(5) en un sistema GNU/Linux.
subnet 239.252.197.0 netmask 255.255.255.0 {
range 239.252.197.10 239.252.197.250;
default-lease-time 600
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 239.252.197.255;
option routers 239.252.197.1;
option domain-name-servers 239.252.197.2, 239.252.197.3;
option domain-name "isc.org";
 
host iocserver {
hardware ethernet 08:00:2b:4c:59:23;
fixed-address 239.252.197.9;
filename "/tftpboot/kernel_ioc.boot";
option domain-name-servers 192.5.5.1;
option domain-name "vix.com";
}
}
En l’exemple anterior s’observa que es defineixen les opcions subnetmask, broadcast-address, routers, domain-name-servers i domain-name per a tots els equips de la subxarxa 239.252.197.0/24. Hi ha dues opcions, però, que es redefineixen amb valors diferents per al host iocserver. Són les opcions domain-name-servers i domain-name.
Àmbit d'aplicació: subnet
Les topologies de xarxa s’estructuren usualment en subxarxes, el mateix passa en la configuració del servidor DHCP. Usualment els clients s’agrupen en la subxarxa a la qual pertanyen. S’utilitza la sentència subnet per definir les opcions d’una subxarxa concreta. Si els clients de la subxarxa han de rebre adreces dinàmiques d’interval, cal com a mínim una sentència range.

 

De vegades convé agrupar subxarxes diferents en un sol bloc d’opcions de configuració. Això passa per exemple quan una sola xarxa física que es vol tractar de la mateixa manera tota ella està dividida en dues subxarxes lògiques. La sentència shared-network s’utilitza en aquestes ocasions.

Les sentències d’àmbit d’aplicació més usuals són subnet i host, que permeten identificar una subxarxa i un host concret respectivament.

Les subxarxes es poden agrupar en shared-network, els clients es poden agrupar usant la sentència group.

Les opcions es poden definir en funció de determinats requisits que compleixi el client mitjançant la sentència class i les declaracions condicionals.
Quan els clients han de rebre una adreça IP dinàmica fixa, és a dir, han de rebre sempre la mateixa IP reservada, cal especificar la sentència host. Si es vol que tots els clients siguin únicament equips identificats cal fer una sentència host per a cada equip.

A vegades es vol establir configuracions que afecten equips i xarxes que no tenen una agrupació en forma de subxarxa clara. En aquests casos es pot optar per utilitzar la sentència group. Amb aquesta sentència es poden fer agrupacions d’elements diversos als quals se’ls assignen opcions comunes.

Una altra situació que es pot produir és voler agrupar clients segons determinades condicions que acompleixi el client (no únicament segons la seva MAC). La sentència class permet agrupar opcions segons la informació que envia el mateix client. A més a més, es poden utilitzar declaracions condicionals, és a dir, segons es compleixi o no una determinada condició aplicar unes declaracions o unes altres.

El següent és un exemple de l’esquema bàsic d’un fitxer de configuració dhcp:

#exemple extret de la pàgina de configuració del dhcpd.conf(5)
global parameters...
option domain-name "ioc.org";
option domain-name-servers ns1.ioc.org, ns2.ioc.org;
max-lease-time 7200;
default-lease-time 600;
subnet 204.254.239.0 netmask 255.255.255.224 {
subnet-specific parameters...
option routers 204.254.239.1;
range 204.254.239.10 204.254.239.30;
}
subnet 204.254.239.32 netmask 255.255.255.224 {
subnet-specific parameters...
option routers 204.254.239.33;
range 204.254.239.42 204.254.239.62;
}
subnet 204.254.239.64 netmask 255.255.255.224 {
subnet-specific parameters...
option routers 204.254.239.65;
range 204.254.239.74 204.254.239.90;
host grouxo {
host-specific parameters...
hardware ethernet 08:00:2b:4c:59:23;
filename "/tftpboot/grouxo.img";
fixed-address 204.254.239.91;
}
}
group {
group-specific parameters...
option domain-name "marxbrothers.ioc.org";
max-lease-time 120;
host zappo.test.isc.org {
host-specific parameters...
}
host harpo.test.isc.org {
host-specific parameters...
}
}
En aquest exemple podem observar que:

es defineixen opcions globals per a totes les xarxes, com per exemple el nom del domini, els servidors de noms (DNS) i els temps de les concessions.
per a cada subxarxa es defineixen opcions específiques com poden ser per exemple l’interval d’adreces disponibles, el router de la subxarxa, etc. També es pot observar que en la subxarxa 204.254.239.64/27 es defineixen opcions particulars per al host grouxo. Concretament obté una adreça IP de l’interval fixa i un fitxer d’inicialització via TFTP.
finalment l’exemple mostra com es poden definir opcions per agrupacions amb la sentència group. Els hosts harpo i zappo estan agrupats i reben un nom de domini particular, diferent al definit en les opcions globals. També se’ls defineix un valor de temps màxim de concessió diferent al global.
Tot seguit es mostra un altre exemple d’estructura de configuració DHCP on s’agrupen hosts en grups d’afinitats:

#exemple extret de la pàgina de configuració del dhcpd.conf(5)
group {
filename "osOficines";
next-server ncd-booter;
host ncd1 { hardware ethernet 0:c0:c3:49:2b:57; }
host ncd4 { hardware ethernet 0:c0:c3:80:fc:32; }
host ncd8 { hardware ethernet 0:c0:c3:22:46:81; }
}
group {
filename "osProfessorat";
next-server ncd-booter;
host ncd2 { hardware ethernet 0:c0:c3:88:2d:81; }
host ncd3 { hardware ethernet 0:c0:c3:00:14:11; }
}
group {
filename "osAlumnes";
next-server alumni-booter;
host ncd1 { hardware ethernet 0:c0:c3:11:90:23; }
host ncd4 { hardware ethernet 0:c0:c3:91:a7:8; }
...output suprimt ...
host ncd80 { hardware ethernet 0:c0:c3:cc:a:8f; }
}
En aquest exemple s’han creat tres grups diferents segons si es tracta d’equips de les oficines, del professorat o dels alumnes. S’ha indicat individualment equip per equip mitjançant la sentència host. A cada grup se’ls assigna les opcions que els són comunes (en lloc de fer-ho repetidament dins de cada host). En aquest cas representa que els equips són terminals “ximples” que carreguen el sistema operatiu des de la xarxa. Cada grup carrega un sistema operatiu diferent. Oficines i professors el descarreguen del mateix servidor, mentre que els alumnes ho fan d’un altre anomenat alumni-booter.

Existeix un altre mecanisme per agrupar declaracions anomenat pool i que permet fer agrupacions d’adreces. Cada agrupació d’adreces o pool pot ser tractat de manera diferent. Es poden definir diferents pool dins d’una mateixa subxarxa (subnet). Possiblement, la millor manera d’entendre com funciona és mitjançant un exemple:

#exemple extret de la pàgina de configuració del dhcpd.conf(5)
subnet 10.0.0.0 netmask 255.255.255.0 {
option routers 10.0.0.254;
# Unknown clients get this pool.
pool {
option domain-name-servers noexisteixo.com;
max-lease-time 300;
range 10.0.0.200 10.0.0.253;
allow unknown-clients;
}
# Known clients get this pool.
pool {
option domain-name-servers ns1.example.com, ns2.example.com;
max-lease-time 28800;
range 10.0.0.5 10.0.0.199;
deny unknown-clients;
}
}
En aquest exemple la subxarxa 10.0.0.0/8 es divideix en dos pool d’adreces per ser tractats de manera diferent. En el primer s’assignen dinàmicament adreces IP de la 200 a la 253 i s’assigna també un servidor de noms inexistent. Seran clients d’aquest pool els equips que siguin no identificats (unknown-clients). En el segon pool s’accepten només clients coneguts, als quals s’assignen adreces IP de la 5 a la 199 i dos servidors de noms existents.

Polítiques d'accés

Per saber més de les polítiques d’accés es pot consultar la pàgina de manual del dhcpd.conf(5) en un sistema GNU/Linux.
D’aquest exemple podem observar que la sentència pool permet establir polítiques d’accés (permit lists) definint quins clients poden accedir al pool i quins no. El tractament de les polítiques d’accés queda fora de l’abast d’aquest llibre, però és molt intuïtiu. La clàusula allow indica els clients amb accés i la clàusula deny els clients que no podran accedir al pool.
Class
Una de les eines més potents per agrupar clients és la sentència class. Els clients es poden tractar de manera diferent segons a quina classe pertanyin. Per determinar la classe del client es poden usar les dades que el mateix client proporciona. S’utilitzen sentències condicionals i tractament d’expressions (conditional, match statement) que s’avaluen per determinar si el client pertany o no a una classe. Per exemple es pot crear una classe amb tots aquells clients que contenen l’identificador “IOC”:

Classes

Per saber més de les classes es pot consultar la pàgina de manual del dhcpd.conf(5) en un sistema GNU/Linux. Per saber com tractar i avaluar expressions es pot consultar el manual dhcp-eval(5) en un sistema GNU/Linux. Per saber més de les opcions específiques es pot consultar el manual dhcp-options(5) en un sistema GNU/Linux.
Les classes es poden subdividir en subclasses que corresponen a valors específics que satisfan l’expressió de la classe. El tractament de les classes, condicions i expressions queda fora de l’abast d’aquest material. Per conèixer bé les classes cal conèixer el tractament d’expressions i les opcions específiques del DHCP.
Sentències i opcions de configuració
El servei DHCP es pot configurar amb multitud de sentències que es poden repassar de l’RFC 2131 i de la pàgina de manual dhcpd.conf(5). Examinem tot seguit alguna d’aquestes sentències.
Declaracions
Include: include “filename”; Permet carregar el fitxer indicat i processar-lo com a fitxer de configuració. És una tècnica usual per dividir la configuració en mòduls.
Shared-network: shared-network name { [ parameters ] [ declarations ] } Permet agrupar diverses subxarxes (subnet) en una mateixa declaració. S’utilitza quan una mateixa xarxa física es compon de diverses subxarxes lògiques.
Subnet: subnet subnet-number netmask netmask { [ parameters ] [ declarations ] } Permet definir opcions per a una subxarxa concreta. És la sentència més usual en les definicions de configuració del servidor dhcp.
Range: range [ dynamic-bootp ] low-address [ high-address]; Indica l’interval d’adreces dinàmiques disponibles per assignar. El servidor DHCP extreu les adreces dinàmiques d’aquest interval d’adreces.
Host: host hostname { [ parameters ] [ declarations ] } Proporciona un àmbit de definició per a un equip concret. Les opcions que es defineixen dins d’una sentència host afecten únicament l’equip indicat. Es requereix una sentència host per poder fer assignacions dinàmiques fixes (assignar sempre la mateixa adreça IP basant-se en l’adreça MAC).
Group: group { [ parameters ] [ declarations ] } S’utilitza per agrupar declaracions de manera que les opcions definides afectin el grup d’elements que conté. Aquests poden ser shared-networks, subnets, hosts i fins i tot altres grups.
Paràmetres
Tot seguit es mostren alguns dels paràmetres que es poden definir en el servidor DHCP.

authoritative authoritative; not authoritative; Indica si les respostes del servidor DHCP són autoritatives o no. Si ho són el servidor revocarà les adreces IP que ell no ha concedit.
ddns-update-style ddns-update-style style; Pot ser ad-hoc o interim o none. Indica el tipus de dynamyc DNS que s’utilitza.
default-lease-time default-lease-time time; Indica el temps per defecte de les concessions. És el temps que es concedeix quan el client no requereix un període de temps concret.
fixed-address fixed-address address [, address … ]; Permet assignar una o més adreces IP a un client.
hardware hardware hardware-type hardware-address; Indica el tipus i el valor de l’adreça Mac d’un client. Aquest mecanisme és necessari per poder identificar un client de manera única, per exemple en una clàusula host.
max-lease-time max-lease-time time; Indica el temps màxim per a les concessions en segons.
min-lease-time min-lease-time time; Indica el temps mínim que han de durar les concessions.
next-server next-server server-name; Indica el nom o l’adreça IP del servidor TFTP del qual el client s’ha de descarregar el fitxer d’inicialització (o boot) indicat pel paràmetre filename. Si no s’indica s’utilitza el propi servidor DHCP.
Opcions de configuració
Els clients DHCP reben del servidor la configuració de xarxa. Usualment parlem de l’adreça IP i la màscara, però de fet poden rebre gran quantitat

de paràmetres de configuració de xarxa i informació sobre diversos serveis de xarxa disponibles. El client per la seva part pot sol·licitar paràmetres concrets al servidor. L’administrador de xarxa, quan configura el servei DHCP, no ha d’especificar totes les opcions possibles (de fet són moltíssimes), sinó només aquelles que siguin necessàries per a cada client. Algunes opcions prenen valors per defecte i no cal especificar-les, d’altres no poden ser alterades pel servidor.

En aquest apartat es farà la llista de la majoria de paràmetres que corresponen a opcions globals de configuració DHCP. Alguns paràmetres són indicats pel client, d’altres pel servidor i n’hi ha que són per defecte i no es poden modificar.

option bootfile-name bootfile-name text; Indica el nom del fitxer que el client s’ha de descarregar per tal d’iniciar el procés d’arrancada o boot. El fitxer es descarrega via TFTP del mateix servidor o de l’indicat amb l’opció next-server. Fa la mateixa funció que la sentència filename.
option dhcp-lease-time dhcp-lease-time uint32; Aquesta opció permet al client demanar al servidor la concessió per a un període concret de temps.
option dhcp-message-type dhcp-message-type uint8; Indica el tipus de missatge DHCP que s’està enviant, tant pel client com pel servidor. Els tipus possibles són:
DHCPDISCOVER
DHCPOFFER
DHCPREQUEST
DHCPDECLINE
DHCPACK
DHCPNAK
DHCPRELEASE
DHCPINFORM
option domain-name domain-name text; Indica el nom de domini que el client ha d’utilitzar per fer resolucions DNS.
option domain-name-servers domain-name-servers ip-address [, ip-address… ]; Especifica la llista de servidors de noms de domini que el client ha d’utilitzar.
option host-name host-name string; Especifica el nom del client.
option netbios-name-servers netbios-name-servers ip-address [, ip-address…]; L’opció NetBios name server (NBNS) especifica una llista de servidors RFC 1001/1002 NBNS name servers en ordre de preferència. És a dir, indica la llista de servidors NetBios a usar pel client.
option nis-servers nis-servers ip-address [, ip-address… ]; Especifica una llista de servidors NIS disponibles pel client.
option ntp-servers ntp-servers ip-address [, ip-address… ]; Indica una llista de servidors NTP disponibles pel client.
option routers routers ip-address [, ip-address… ]; Especifica una llista de routers disponibles pel client en la seva pròpia subxarxa.
option tftp-server-name tftp-server-name text; Indica el nom del servidor TFTP.
Expressions
Una de les grans potències que proporciona DHCP és poder configurar les opcions de xarxa en funció de qui i com és el client. És a dir, en funció de la informació que proporciona el client assignar-li una o altra configuració de xarxa. Fixeu-vos que no es tracta d’entrades host estàtiques per a cada client, sinó que un mateix client tindrà una o altra configuració segons la informació que proporcioni.

Avaluar expressions

Per obtenir més informació sobre expressions DHCP i mecanismes d’avaluació cal consultar la pàgina de manual dhcp.eval(5) en un sistema GNU/Linux.
Per poder fer això cal poder avaluar expressions i condicions basades en la informació del mateix client. Existeix, doncs, tot un llenguatge per escriure expressions i avaluar-les.

El mecanisme per definir expressions és:

paràmetre = expressió ;
Un exemple que mostra com definir el paràmetre ddns-hostname (que defineix el nom del client a usar en l’actualització dinàmica de DNS) usant part de l’adreça MAC del client:

ddns-hostname = binary-to-ascii (16, 8, "-", substring (hardware, 1, 6));
Es poden construir expressions similars a les dels llenguatges de programació. Per fer-ho es disposa d’estructures condicionals i de diversos tipus d’operadors. Anem a analitzar-ne uns quants:

Estructures condicionals (Conditional behaviour). Permeten realitzar definicions segons sigui el valor d’una opció (o d’una expressió). Utilitza les conegudes estructures if, elsif i else.
#Exemple de sentència condicional en el servidor
#Extret de la pàgina de manual dhcpd.eval(5)
if option dhcp-user-class = "accounting" {
max-lease-time 17600;
option domain-name "accounting.example.org";
option domain-name-servers ns1.accounting.example.org,
ns2.accounting.example.org;
} elsif option dhcp-user-class = "sales" {
max-lease-time 17600;
option domain-name "sales.example.org";
option domain-name-servers ns1.sales.example.org,
ns2.sales.example.org;
} elsif option dhcp-user-class = "engineering" {
max-lease-time 17600;
option domain-name "engineering.example.org";
option domain-name-servers ns1.engineering.example.org,
ns2.engineering.example.org;
} else {
max-lease-time 600;
option domain-name "misc.example.org";
option domain-name-servers ns1.misc.example.org,
ns2.misc.example.org;
}
En aquest exemple es defineixen les opcions max-lease-time, domain-name i domain-name-servers de manera diferent segons sigui el valor de l’opció dhcp-user-class enviat pel client.

Les definicions condicionals també es poden fer en la part client. L’exemple següent mostra que si el client no ha rebut el paràmetre domain-name, ell mateix autodefineix el valor del paràmetre domain-name-servers al loopback.
Exemple de sentència condicional en el servidor

 

#Extret de la pàgina de manual dhcpd.eval(5)
if not option domain-name = "example.org" {
prepend domain-name-servers 127.0.0.1;
}
Expressions booleanes (Boolean expressions). Igual que passa en els llenguatges de programació, permeten definir expressions utilitzant els operadors booleans clàssics: =, and, or, not, exists. També els operadors known i static.
Expressions de tractament de text (Data expressions). Són similars a les típiques funcions de tractament de cadenes dels llenguatges de programació. Corresponen a: substring, suffix, option, config-option, hardware, packet, concat, reverse, leased-address, binary-to-ascii,encode-int, pick-first-value i host-decl-name.
Expressions numèriques (Numeric expressions). Les expressions numèriques realitzen la seva avaluació retornant un enter. Són exemples d’aquesta categoria: extract-int, lease-time i client-state.
Monitoratge (Logging). Es permeten definir expressions que s’enregistraran en els fitxers de monitoratge del sistema. És molt útil si es treballa amb definicions condicionals i expressions perquè permet fer un seguiment (com un debug) de com s’ha avaluat l’expressió o la condició.
#Exemple de log
#log (priority, data-expr)
#Les prioritats poden ser: fatal, error, info, debug
log (info, concat(hardware, hostname)
Aquest exemple generarà una entrada en el fitxer de log mostrant l’adreça Mac del client i el seu nom de host.
Actualitzacions DNS dinàmiques (dynamic DNS updates). El servei DHCP pot interactuar amb el servei DNS de manera que les concessions DHCP s’actualitzin automàticament en la base de dades DNS. Aquesta funció la poden fer tant els clients com els servidors DHCP. Quan parlem d’actualitzacions dinàmiques del DNS estem parlant de DDNS (dynamic domain name system). Com cal fer aquestes actualitzacions i quina informació cal posar al DNS és el que es pot personalitzar amb aquestes opcions.
Per saber més de les actualitzacions dinàmiques de DNS consulteu l’RFC 2136.
Configuració dels paràmetres de xarxa del client
Els clients de xarxa o bé tenen una configuració estàtica on es defineix cada paràmetre en el client o bé reben la configuració via DHCP. El procés de configurar un client DHCP és tan senzill com activar aquesta última opció usant algun dels mètodes adients.

La configuració dels clients DHCP consisteix en el següent:

Observar la configuració de xarxa actual del client.
Configurar el client per rebre dinàmicament una adreça IP. Es tracta d’activar/desactivar la configuració de xarxa dinàmica o estàtica.
Sol·licitar/renegociar una nova IP al servidor DHCP.
Observar/fer la llista del fitxer de registre de les concessions client rebudes.
Activar/desactivar el servei de xarxa en el client.
Observar la configuració de xarxa actual
L’administrador ha de tenir la precaució d’observar quina és la configuració de xarxa actual abans d’establir-ne una de nova. Si cal ha de deixar anotada la configuració anterior per tal de poder restablir-la. La configuració de xarxa bàsica consisteix en l’adreça IP, la màscara de xarxa, la porta d’enllaç per defecte i el servidor DNS a utilitzar. També s’hi pot incloure el nom de l’equip, les rutes i multitud d’altres paràmetres.

Es pot fer la llista de la configuració de les interfícies ethernet i observar les adreces IP, l’estat de les interfícies (UP o DOWN) i les rutes definides fent:

Fer la llista de les adreces MAC i IP i les dades de les interfícies

[root@pc]# ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:17:31:15:80:7e brd ff:ff:ff:ff:ff:ff
inet 192.168.1.34/24 brd 192.168.1.255 scope global eth0
inet6 fe80::217:31ff:fe15:807e/64 scope link
valid_lft forever preferred_lft forever
3: sit0: <NOARP> mtu 1480 qdisc noop
link/sit 0.0.0.0 brd 0.0.0.0
Fer la llista de les rutes definides en el host:

[root@pc]# ip route show
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.34
169.254.0.0/16 dev eth0 scope link
default via 192.168.1.1 dev eth0
Si s’observen els fitxers de configuració de les interfícies de xarxa, es pot veure si els paràmetres de xarxa estan definits estàticament o dinàmicament. En la llista següent es pot veure que la interfície loopback es configura estàticament i la interfície eth0 es configura via DHCP:

[root@portatil ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
TYPE=Ethernet
 
[root@portatil ~]# cat /etc/sysconfig/network-scripts/ifcfg-lo
DEVICE=lo
IPADDR=127.0.0.1
NETMASK=255.0.0.0
NETWORK=127.0.0.0
# If you're having problems with gated making 127.0.0.0/8 a martian,
# you can change this to something else (255.255.255.255, for example)
BROADCAST=127.255.255.255
ONBOOT=yes
NAME=loopback
Un error usual és creure que el servei DHCP no funciona correctament quan de fet el que passa és que el client no té el servei de xarxa activat. Es pot comprovar l’estat del servei de xarxa fent:

[root@portatil ~]# service NetworkManager status
[root@portatil ~]# service network status
Dispositius configurats:
lo eth0
Dispositius actius actualment:
lo eth0
 
Activar i desactivar el servei de xarxa:
[root@pc]# /etc/init.d/network stop
S'està aturant la interficie eth0: [ FET ]
S'està aturant la interficie loopback: [ FET ]
 
[root@pc]# /etc/init.d/network start
S'està activant la interficie loopback: [ FET ]
S'està activant la interficie eth0:
S'està determinant la informació de la IP per a eth0... fet [FET]
Configurar el client com a client dinàmic
Tot equip client de xarxa necessita una configuració apropiada. Si aquesta configuració es defineix element per element en el mateix equip, s’anomena configuració estàtica. Si és així, no cal per res un servidor DHCP. És quan els clients reben la configuració de xarxa externament que parlem de configuració dinàmica i ens cal un servidor DHCP que la proporcioni.

La configuració del client es pot fer en mode text editant directament els fitxers de configuració de les interfícies de xarxa, utilitzant interfícies en mode text o utilitzant interfícies gràfiques (applets). Vegem cada un d’aquests mètodes.
Editar els fitxers de configuració
Es pot editar directament el fitxer de configuració de la interfície pertinent i establir l’opció BOOTPROTO al valor dhcp per tal d’activar el client DHCP. Si per exemple es configura la interfície eth0 seria un fitxer similar al següent:

[root@portatil ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
TYPE=Ethernet
Menús amb interfície de text
Un altre mecanisme per activar el client DHCP és utilitzar alguna utilitat de menús en entorn de text (varien segons el sistema i n’hi ha de disponibles per Internet).

Una eina força utilitzada és la utilitat setup que es pot observar en la figura.2, que mostra una configuració de client de xarxa estàtica i es pot veure que la casella que permet activar el client DHCP està desactivada.

 

Figura Configuració estàtica del client DHCP

 
Observeu que senzill que és el procediment per activar el client de xarxa DHCP. N’hi ha prou d’activar l’opció pertinent, tal com es mostra en la figura.3.

 

Figura Activació del client DHCP usant menús de text

 
Menús en mode gràfic
En mode gràfic el sistema també proporciona mecanismes per configurar les interfícies de xarxa i establir el mode d’activació a DHCP. En la figura.4 es pot observar que la configuració de la interfície eth0 té activada l’opció per rebre la configuració de xarxa via DHCP.

 

Figura Activació del client DHCP usant l’entorn gràfic

 
Demanar una nova adreça IP
El client DHCP pot alliberar l’adreça que utilitza quan ho creu pertinent. En fer-ho el servidor anota el fi de la concessió i si es tracta d’una adreça dinàmica d’interval aquesta torna a estar disponible per assignar-la a un altre client. Quan a un client se li està acabant el temps de la concessió ha de tornar a negociar una adreça amb el servidor. De totes maneres si el client vol, pot tornar a sol·licitar-ne una en un moment o altre.

El client pot alliberar una adreça (release) que està en ús un moment o altre, pot forçar-ho fent, per exemple:

[root@portatil ~]# dhclient -r
Internet Systems Consortium DHCP Client V3.0.5-RedHat
Copyright 2004-2006 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/
Listening on LPF/eth0/00:17:31:15:80:7e
Sending on LPF/eth0/00:17:31:15:80:7e
DHCPRELEASE on eth0 to 192.168.1.1 port 67
Per forçar el client a demanar una nova adreça per a la interfície ethernet eth0 es pot fer:

[root@portatil ~]# dhclient eth0
Internet Systems Consortium DHCP Client V3.0.5-RedHat
Copyright 2004-2006 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/
Listening on LPF/eth0/00:17:31:15:80:7e
Sending on LPF/eth0/00:17:31:15:80:7e
Sending on Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 5
DHCPOFFER from 192.168.1.1
DHCPREQUEST on eth0 to 255.255.255.255 port 67
DHCPACK from 192.168.1.1
bound to 192.168.1.34 -- renewal in 38975 seconds.
Observar el registre client de les concessions rebudes
El client DHCP porta un registre de les concessions rebudes, d’aquesta manera pot tornar a demanar una concessió abans que expiri l’actual. També pot servir per demanar al servidor preferentment una adreça IP concreta. Les concessions o leases del client es desen en un fitxer anomenat /var/lib/dhclient/dhclient.leases. Podem veure’n el contingut fent:

[root@pc]# cat /var/lib/dhclient/dhclient.leases
lease {
interface "eth0";
fixed-address 192.168.1.34;
option subnet-mask 255.255.255.0;
option routers 192.168.1.1;
option dhcp-lease-time 86400;
option dhcp-message-type 5;
option domain-name-servers 80.58.61.250,80.58.61.254;
option dhcp-server-identifier 192.168.1.1;
option domain-name "local.lan";
renew 3 2007/12/19 04:05:49;
rebind 3 2007/12/19 15:12:57;
expire 3 2007/12/19 18:12:57;
Comprovació del funcionament DHCP
La millor manera de comprovar el funcionament DHCP és simplement posant-lo en pràctica, és a dir, crear una xarxa amb diversos clients DHCP i un servidor que els atengui. Com es pot saber si funciona? Fàcil, mirant un a un cada client i comprovant que han rebut la configuració de xarxa correcta. El problema, però, és què fem si els clients no es configuren correctament.

Els passos més usuals a seguir per a la resolució de problemes són:

Comprovar que la xarxa està correctament connectada físicament, és a dir cables, connectors, interfícies, etc.
Mirar si existeix connectivitat entre els equips, per exemple usant una configuració estàtica. Això permetrà descartar que els problemes siguin deguts a altres causes. Si el DHCP no va és que no està configurat correctament.
Repassar la configuració del client i del servidor DHCP, especialment la del servidor. Es pot començar fent la configuració tan senzilla com sigui possible. Un cop funciona es pot anar avançant en la seva complexitat.
Examinar els fitxers de concessions, tant el del client com el del servidor, per detectar-hi anomalies.
Quan la comunicació client/servidor no funciona correctament i no sabem el perquè és molt útil monitorar el trànsit de xarxa mitjançant alguna eina d’anàlisi dels paquets que viatgen per la xarxa.
Centrem-nos, doncs, en la monitoratge del trànsit de xarxa per tal d’analitzar que el diàleg entre el client i el servidor és l’apropiat. Existeixen moltes eines al mercat (que podeu trobar per Internet) que fan aquesta funció. Un de les més recomanables és l’aplicació wireshark. Amb aquesta eina hem de poder observar l’intercanvi dels paquets DHCP Discover, DHCP Offer, DHCP Request i DHCP Ack que es produeix quan tot el procés DHCP funciona correctament. Si aquest intercanvi no es produeix és que existeix algun problema.

En l’apartat “El model funcional del protocol DHCP” podeu observar detalladament com és el diàleg entre el client i el servidor.
En l’apartat “Demanar una nova adreça IP” es pot observar com forçar el client a demanar una nova configuració.
En la figura.5 podeu observar una captura de trànsit DHCP feta amb Wireshark. La captura s’ha fet al servidor i el client s’ha forçat a demanar de nou una configuració de xarxa amb la utilitat dhclient.

 

Figura Captura d’un diàleg DHCP client/servidor

 
Podeu manipular vosaltres mateixos la captura del trànsit de xarxa DNS carregant el fitxer de captura del wireshark que es lliura com a material complementari. Aquest fitxer el trobareu en la secció “Annexos” del web del mòdul.
A continuació es pot observar la llista de text de les quatre trames capturades amb el wireshark que s’han exportat en format text. Això permet veure detalladament tot el diàleg DHCP.

No. Time Source Destination Protocol Info
1 0.000000 0.0.0.0 255.255.255.255 DHCP DHCP Discover -
Transaction ID 0x8a1327b2
 
Frame 1 (590 bytes on wire, 590 bytes captured)
Ethernet II, Src: CadmusCo_b2:8b:ec (08:00:27:b2:8b:ec), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Internet Protocol, Src: 0.0.0.0 (0.0.0.0), Dst: 255.255.255.255 (255.255.255.255)
User Datagram Protocol, Src Port: bootpc (68), Dst Port: bootps (67)
Bootstrap Protocol
Message type: Boot Request (1)
Hardware type: Ethernet
Hardware address length: 6
Hops: 0
Transaction ID: 0x8a1327b2
Seconds elapsed: 0
Bootp flags: 0x0000 (Unicast)
Client IP address: 0.0.0.0 (0.0.0.0)
Your (client) IP address: 0.0.0.0 (0.0.0.0)
Next server IP address: 0.0.0.0 (0.0.0.0)
Relay agent IP address: 0.0.0.0 (0.0.0.0)
Client MAC address: CadmusCo_b2:8b:ec (08:00:27:b2:8b:ec)
Server host name not given
Boot file name not given
Option: (t=53,l=1) DHCP Message Type = DHCP Discover
Option: (t=57,l=2) Maximum DHCP Message Size = 548
Option: (t=55,l=11) Parameter Request List
Option: (t=12,l=4) Host Name = "box"
Option: (t=51,l=4) IP Address Lease Time = 12 hours
End Option
Padding
 
No. Time Source Destination Protocol Info
2 0.000351 192.168.1.34 192.168.1.254 DHCP DHCP Offer -
Transaction ID 0x8a1327b2
 
Frame 2 (342 bytes on wire, 342 bytes captured)
Ethernet II, Src: AsustekC_15:80:7e (00:17:31:15:80:7e), Dst: CadmusCo_b2:8b:ec
(08:00:27:b2:8b:ec)
Internet Protocol, Src: 192.168.1.34 (192.168.1.34), Dst: 192.168.1.254 (192.168.1.254)
User Datagram Protocol, Src Port: bootps (67), Dst Port: bootpc (68)
Bootstrap Protocol
Message type: Boot Reply (2)
Hardware type: Ethernet
Hardware address length: 6
Hops: 0
Transaction ID: 0x8a1327b2
Seconds elapsed: 0
Bootp flags: 0x0000 (Unicast)
Client IP address: 0.0.0.0 (0.0.0.0)
Your (client) IP address: 192.168.1.254 (192.168.1.254)
Next server IP address: 0.0.0.0 (0.0.0.0)
Relay agent IP address: 0.0.0.0 (0.0.0.0)
Client MAC address: CadmusCo_b2:8b:ec (08:00:27:b2:8b:ec)
Server host name not given
Boot file name not given
Option: (t=53,l=1) DHCP Message Type = DHCP Offer
Option: (t=54,l=4) Server Identifier = 192.168.1.34
Option: (t=51,l=4) IP Address Lease Time = 12 hours
Option: (t=1,l=4) Subnet Mask = 255.255.255.0
Option: (t=3,l=4) Router = 192.168.1.1
Option: (t=6,l=4) Domain Name Server = 192.168.1.1
Option: (t=15,l=11) Domain Name = "domain.org"
End Option
Padding
 
No. Time Source Destination Protocol Info
3 0.009004 0.0.0.0 255.255.255.255 DHCP DHCP Request -
Transaction ID 0x8b1327b2
 
Frame 3 (590 bytes on wire, 590 bytes captured)
Ethernet II, Src: CadmusCo_b2:8b:ec (08:00:27:b2:8b:ec), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Internet Protocol, Src: 0.0.0.0 (0.0.0.0), Dst: 255.255.255.255 (255.255.255.255)
User Datagram Protocol, Src Port: bootpc (68), Dst Port: bootps (67)
Bootstrap Protocol
Message type: Boot Request (1)
Hardware type: Ethernet
Hardware address length: 6
Hops: 0
Transaction ID: 0x8b1327b2
Seconds elapsed: 0
Bootp flags: 0x0000 (Unicast)
Client IP address: 0.0.0.0 (0.0.0.0)
Your (client) IP address: 0.0.0.0 (0.0.0.0)
Next server IP address: 0.0.0.0 (0.0.0.0)
Relay agent IP address: 0.0.0.0 (0.0.0.0)
Client MAC address: CadmusCo_b2:8b:ec (08:00:27:b2:8b:ec)
Server host name not given
Boot file name not given
Option: (t=53,l=1) DHCP Message Type = DHCP Request
Option: (t=57,l=2) Maximum DHCP Message Size = 548
Option: (t=55,l=11) Parameter Request List
Option: (t=12,l=4) Host Name = "box"
Option: (t=51,l=4) IP Address Lease Time = 12 hours
Option: (t=54,l=4) Server Identifier = 192.168.1.34
Option: (t=50,l=4) Requested IP Address = 192.168.1.254
End Option
Padding
 
No. Time Source Destination Protocol Info
4 0.010712 192.168.1.1 255.255.255.255 DHCP DHCP NAK -
Transaction ID 0x8b1327b2
 
Frame 4 (342 bytes on wire, 342 bytes captured)
Ethernet II, Src: XaviTech_7b:ff:1d (00:01:38:7b:ff:1d), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Internet Protocol, Src: 192.168.1.1 (192.168.1.1), Dst: 255.255.255.255 (255.255.255.255)
User Datagram Protocol, Src Port: bootps (67), Dst Port: bootpc (68)
Bootstrap Protocol
Message type: Boot Reply (2)
Hardware type: Ethernet
Hardware address length: 6
Hops: 0
Transaction ID: 0x8b1327b2
Seconds elapsed: 0
Bootp flags: 0x8000 (Broadcast)
Client IP address: 0.0.0.0 (0.0.0.0)
Your (client) IP address: 0.0.0.0 (0.0.0.0)
Next server IP address: 192.168.1.1 (192.168.1.1)
Relay agent IP address: 0.0.0.0 (0.0.0.0)
Client MAC address: CadmusCo_b2:8b:ec (08:00:27:b2:8b:ec)
Server host name not given
Boot file name not given
Option: (t=53,l=1) DHCP Message Type = DHCP NAK
Option: (t=56,l=31) Message = "requested address not available"
End Option
Padding
Realitzar documentació de suport a l'usuari
Una de les facetes més ignorades en el camp de la informàtica és la confecció de manuals i documentació de suport. Com a clients molt sovint ens queixem que falta informació o que està mal redactada. Com a administradors de xarxa no trobem mai temps per anotar les coses. Mentre les tenim al cap no creiem necessari fer la documentació, quan no ho tenim al cap, ja ens és impossible fer-ho, i sovint, és just quan en faria falta haver-ho fet! Fem un repàs de la informació necessària que cal documentar, tant per a l’usuari com per a l’administrador.

Un altre exemple de captura DHCP es lliura com a material complementari. En aquesta captura hi ha dos servidors dhcp diferents en la xarxa i es poden observar paquets NACK. Aquest fitxer el trobareu en la secció “Annexos” del web del mòdul.
El client ha de saber:

Com contactar amb el servidor DHCP. Quin programari ha d’utilitzar i com l’ha de configurar per fer ús del servei.
Quina és la informació que s’obtindrà via DHCP. Cal saber visualitzar, consultar aquesta informació i saber què significa, per a què serveix.
Així doncs, la documentació de l’usuari descriurà el procés per activar el client DHCP, amb captures de pantalla que facilitin aquest procés. Cal també exemples de llista de concessions rebudes, on són i com es poden consultar aquestes concessions. La part més important és mostrar un exemple de configuració de xarxa rebuda on es detalli el significat de cada element i explicar a l’usuari com fer aquesta consulta.

Un exemple d’informació a proporcionar podria ser el següent:

L'usuari pot consultar la concessió de xarxa amb l'ordre:
C:\>ifconfig /all
Configuración IP de Windows
Nombre del host . . . . . . . . . : nombre-29b9943f
Sufijo DNS principal . . . . . . :
Tipo de nodo. . . . . . . . . . . : híbrido
Enrutamiento habilitado. . . . . .: No
Proxy WINS habilitado. . . . . : No
Lista de búsqueda de sufijo DNS: local.lan

Adaptador Ethernet Conexiones de red inalámbricas :
Estado de los medios. . . .: medios desconectados
Descripción. . . . . . . . . . . : Intel(R) PRO/Wireless 3945ABG Net Connection
Dirección física. . . . . . . . . : 00-31-02-44-9F-5A

Adaptador Ethernet Conexión de área local :
Sufijo de conexión específica DNS : local.lan
Descripción. . . . . . . . . . . : Realtek RTL8168/8111 PCI-E Gigabit Ether NIC
Dirección física. . . . . . . . . : 00-21-32-80-23-7D
DHCP habilitado. . . . . . . . . : No
Autoconfiguración habilitada. . . : Sí
Dirección IP. . . . . . . . . . . : 192.168.1.33
Máscara de subred . . . . . . . . : 255.255.255.0
Puerta de enlace predeterminada : 192.168.1.1
Servidor DHCP . . . . . . . . . . : 192.168.1.1
Servidores DNS . . . . . . . . . .: 80.58.61.250
80.58.61.254
Concesión obtenida . . . . . . . : jueves, 24 de septiembre de 2009 12:09:16
Concesión expira . . . . . . . . .: jueves, 24 de septiembre de 2009 13:09:16
Els principals valors de xarxa a destacar són: Adreça IP, màscara de xarxa, el router o porta d’enllaç predeterminada, el servidor dhcp amb el qual s’ha contactat, els servidors de noms DNS que s’utilitzen i quan expira la concessió.

Instal·lació de serveis de configuració dinàmica de sistemes

DHCP

DHCP és l’acrònim de dynamic host configuration protocol, en català, protocol de configuració dinàmica d’equips.

El servei DHCP permet la configuració d’adreces IP, màscares, passarel·les per defecte i moltes altres opcions de configuració de manera totalment dinàmica.

Què fa el DHCP?

Una forma planera d’entendre el DHCP és imaginar que els equips de client en arrencar fan un crit per la xarxa i pregunten “que hi ha algú?”, “qui sóc jo?”. El servidor de DHCP els contesta proporcionant-los tota la informació necessària perquè sàpiguen qui són i com han de configurar els seus paràmetres de xarxa.

Identificació dels equips de xarxa

L’administrador de xarxa té la tasca de configurar els equips que la componen. Això significa configurar els servidors, els equips client, concentradors, encaminadors, etc. Cada equip de la xarxa s’ha d’identificar amb l’adreça IP corresponent i la màscara de xarxa, i generalment disposarà d’un camí d’accés a Internet.

Tant els usuaris com els serveis requeriran l’accés a altres equips identificant-los pel nom de domini en lloc de fer-ho per l’adreça IP, que és més difícil de recordar. Fer això equip per equip resulta una feina feixuga i repetitiva si no es disposa de serveis de xarxa que la facilitin.

El servei DHCP

El servei DHCP proporciona un mecanisme de configuració centralitzat dels equips de la xarxa. En lloc de configurar un per un els equips de xarxa amb adreces i valors estàtics, un servidor DHCP anirà assignant als equips clients els valors que els corresponguin. Aquesta assignació es fa per un període de temps finit, passat el qual caldrà renovar-se.

Avantatges DHCP

El servei DHCP té diversos avantatges:

  • Evita errors i conflictes IP.
  • Centralitza l’administració.
  • Estalvia temps.
  • Simplifica l’administració.

Els principals avantatges d’utilitzar DHCP són: d’una banda, evitar conflictes d’adreces IP (adreces repetides i adreces errònies), ja que passar equip per equip a canviar la configuració és molt més pesat i propens a l’error que fer-ho editant un sol fitxer de configuració en el servidor DHCP; i, d’altra banda, poder fer l’administració centralitzada representa un estalvi de temps i de feina.

El servei DHCP simplifica l’administració de la configuració dels equips de xarxa fent-la centralitzada, dinàmica i amb concessions per períodes de temps finits.

La concessió dinàmica d’adreces IP i altres paràmetres de configuració de xarxa es realitza per a un període de temps determinat, que varia en funció de les necessitats del client i del servidor.

Exemples d'ús del servei DHCP

Els següents són alguns exemples d’ús del servei DHCP:

  • En una biblioteca que admet connexions Wi-Fi, els clients obtindran concessions per a un temps reduït, per exemple, minuts.
  • Un usuari d’Internet que rep al seu equip de casa una adreça IP dinàmica del seu proveïdor d’accés a Internet (ISP) tindrà una concessió que segurament serà per hores.
  • En la xarxa corporativa d’una empresa que s’ha configurat dinàmicament usant DHCP, els equips rebran concessions dinàmiques per períodes de temps molt llargs, per exemple, dies.

Configuració d'un equip de xarxa

Qualsevol equip que pertany a una xarxa requereix que es configuri amb uns paràmetres mínims, que són l’adreça IP, la màscara i la porta d’enllaç per defecte. L’adreça IP identifica l’equip de manera única, i la màscara permet determinar la xarxa o subxarxa en què es troba l’equip. Amb aquests dos paràmetres n’hi ha prou per tenir connectivitat en la xarxa. Si es vol disposar d’accés fora de la xarxa pròpia (per exemple, a Internet o a la resta de la xarxa corporativa) cal definir també la porta d’enllaç predeterminada. A part de la configuració bàsica, els equips poden necessitar (i de fet ho necessiten) més paràmetres de configuració com, per exemple: el nom del host, el servidor DNS, el fitxer d’iniciació a baixar, etc.

Tot equip de xarxa necessita disposar d’una adreça IP que l’identifica de manera única a la xarxa. Cal també una màscara per poder separar de l’adreça IP quina és la part d’adreça de xarxa i quina la part d’adreça de host. Finalment, és imprescindible disposar de l’adreça de la porta d’enllaç predeterminada o passarel·la per defecte (o gateway), per disposar d’accés a xarxes externes.

Exemple de configuració de xarxa d'un equip de casa:

La majoria d’usuaris disposen a casa d’un equip (o més) connectats a un router que proporciona l’accés a Internet. Aquest equip està configurat com a client DHCP i en iniciar-se rep la configuració de xarxa del router. Podeu comprovar a casa quina configuració teniu. Una configuració d’exemple podria ser:

Dirección IP. . . . . . . . . . . : 192.168.1.33
Máscara de subred . . . . . . . . : 255.255.255.0
Puerta de enlace predeterminada   : 192.168.1.1
Servidor DHCP . . . . . . . . . . : 192.168.1.1
Servidores DNS . . . . . . . . . .: 80.58.61.250
                                    80.58.61.254

L'inconvenient de la configuració estàtica

La configuració estàtica implica configurar els equips un a un. Fins i tot encara que es tingui accés remot als equips (per Telnet o SSH), com que cal modificar la configuració de xarxa no es pot fer assegut des de l’equip de l’administrador, sinó que cal anar equip per equip a modificar la configuració.

Aquest procés de configuració cal que es faci per a cada equip de la xarxa. Fer-lo manualment implica configurar equip per equip sense cometre errades en teclejar les adreces i les màscares. Qualsevol canvi en l’estructura de la xarxa, com per exemple redefinir les subxarxes o modificar algunes adreces IP, significa tornar a configurar manualment els equips implicats. És evident que tota aquesta feinada no és agradable per a l’administrador de xarxa (i és molt avorrida!). Tant si la xarxa corporativa consta de pocs equips com de molts, cal una solució que permeti automatitzar la configuració de xarxa de cada equip de manera centralitzada.

Les opcions de configuració de xarxa es poden assignar a cada equip estàticament o es poden configurar de manera dinàmica utilitzant DHCP.

Com a administradors de xarxa, la gestió centralitzada que ens proporciona DHCP ens permet modificar la xarxa afegint, eliminant i redefinint, equips amb un cost mínim.

Tipus d'assignacions d'adreces IP

Cada equip de xarxa té assignada una adreça IP que l’identifica de manera única dins la xarxa. La composició de l’adreça IP i la màscara determina la xarxa o subxarxa a la qual pertany. A més a més, es configuren altres paràmetres de xarxa com la porta d’enllaç predeterminada, servidors DNS, etc. Això es pot configurar manualment anant equip per equip i introduint aquesta informació.

Reconfiguració d'una xarxa

Imagineu la diversió de l’administrador d’una xarxa corporativa de 1.000 equips amb adreces estàtiques quan cal reconfigurar-la en un cap de setmana!

Quan l’adreça IP i els altres paràmetres necessaris de configuració de la xarxa es configuren equip per equip, manualment, es diu que tenen IP estàtica.

Quan la configuració de xarxa d’un equip no es fa manualment i localment en l’equip sinó que es rep per mitjà d’un servidor DHCP, es diu que l’equip utilitza una IP dinàmica. Per realitzar configuracions de xarxa dinàmicament caldran un o més servidors de DHCP (a manera de redundància) que proporcionaran la configuració als equips clients (els que cal configurar). Per tant, serà una estructura client-servidor. Les adreces IP dinàmiques que rep el client les podem classificar en dues categories: assignació dinàmica d’interval i assignació fixa.

El servidor DHCP disposa d’un interval d’adreces que pot assignar als clients que demanen una adreça IP. Quan el servidor assigna una adreça qualsevol de l’interval al client (a l’atzar) es tracta d’una assignació dinàmica d’interval. El client no sap quina adreça IP tindrà i no hi ha manera de predir quina adreça se li concedirà en una futura configuració. A cada nova assignació l’adreça IP pot ser diferent.

MAC

Cada interfície de xarxa s’identifica de manera única físicament per l’adreça MAC (media acces control, adreça d’accés al medi).

Una assignació fixa es produeix quan el servidor DHCP sempre assigna la mateixa adreça al client. Per assignar sempre la mateixa adreça IP al client

cal que el servidor pugui identificar inequívocament el client (per l’adreça MAC). El servidor disposa d’una taula amb les correspondències entre les adreces MAC i les adreces IP fixes.

Quan la configuració de xarxa d’un equip es rep per mitjà d’un servidor DHCP es diu que utilitza una adreça IP dinàmica. Aquesta adreça pot variar dins d’un interval d’adreces disponibles per al servidor DHCP o pot ser fixa.

Els avantatges de disposar d’una IP fixa són que la vostra identificació a Internet (la vostra adreça IP) no varia i tothom us pot identificar sempre per la mateixa IP. Podeu proporcionar serveis a altres equips, els clients us identifiquen sempre amb la mateixa adreça sense haver de recordar en cada moment quina adreça IP teniu avui (com passa en el cas d’una IP dinàmica).

DNS dinàmic

Hi ha serveis de DNS dinàmic (DDNS) que permeten assignar un nom de domini a equips amb adreça IP dinàmica.

El protocol DHCP i els seus components

El protocol DHCP ve descrit, com la majoria de protocols de xarxa, per un document oficial anomenat RFC. Al llarg dels anys ha sofert diverses evolucions per anar-se adaptant a les necessitats de cada moment. Tot protocol implica un diàleg entre els equips que hi intervenen, ens caldrà doncs analitzar quin és i com es produeix aquest diàleg. Finalment es descriurà el significat de termes tan usuals en DHCP com intervals, exclusions, concessions i reserves.

Què són els RFC?

Els Request for Comments (RFC) són memoràndums sobre noves investigacions, innovacions i metodologies relacionades amb les tecnologies d’Internet. Quan els publica l’IETF (Internet Engineering Task Force) defineixen a escala mundial els protocols i les seves revisions. És a dir, són les publicacions oficials que descriuen els protocols.

Per trobar especificacions dels protocols d’Internet, vegeu la secció “Més informació” del web d’aquest mòdul.

Evolució del protocol DHCP

El servei DHCP és un servei del tipus client-servidor que proporciona la configuració de xarxa als clients que ho sol·liciten. Proporciona els paràmetres bàsics de xarxa com l’adreça IP, la màscara de xarxa, la porta d’enllaç i també d’altres paràmetres necessaris per a una connexió en una xarxa IP. Es tracta d’un protocol de la capa d’aplicació del model TCP/IP.

El protocol DHCP està basat en l’arquitectura de serveis client-servidor i utilitza com a transport el protocol UDP de la pila de protocols TCP/ IP. El servidor DHCP es comunica amb els clients utilitzant paquets UDP, que rep en el seu port 67 i envia al port 68 del client.

L’RFC 951 és el document base que descriu el protocol BOOTP.

La configuració dinàmica d’equips de xarxa es va iniciar amb el protocol BOOTP (BOOT strap protocol, protocol d’arrencada). Un protocol més bàsic que principalment permetia definir l’adreça IP, la màscara de xarxa i la passarel·la per defecte per al client. El protocol BOOTP (RFC 951, any 1985) és un protocol pensat per proporcionar automàticament la IP a clients de xarxa en el procés d’arrencada. Originàriament s’utilitzava per a estacions de treball sense disc que obtenien la configuració de xarxa del protocol BOOTP i també obtenien el nom d’un fitxer d’arrencada que s’havia de baixar per mitjà del TFTP, que usualment era el sistema operatiu.

RFC de DHCP

Principals RFC dedicades a DHCP:

  • RFC 2131. Març 1997. DHCP dynamic host configuration protocol.
  • RFC 2132. DHCP options.
  • RFC 3396. Encoding long options.
  • RFC 4361. No especific client identifications for dhcpv4.
  • RFC 3315. DHCPv6 dinamic host configuration protocol Ipv6.

El BOOTP va donar pas al protocol DHCP, que n’és una evolució amb moltes més prestacions. El DHCP sorgeix l’octubre del 1993 a través de l’RFC 1531. Ràpidament evoluciona per mitjà de diverses RFC, com l’RFC 1541 el mateix any 1993, que serà substituïda per l’RFC 2131 el març del 1997. Aquest document és la base del protocol DHCP actual. A grans trets, el protocol es descriu en l’RFC 2131 per a xarxes Ipv4, el conjunt d’opcions de configuració de DHCP es descriuen en l’RFC 2132, i l’especificació de DHCP per a xarxes Ipv6 és en l’RFC 3315.

El model funcional del protocol DHCP

Ports 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.

Figura 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, 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).

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.

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.

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.

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. Recordeu que el client encara no disposa d’una adreça IP vàlida, en disposarà en rebre el DHCPACK.

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 utilitzi 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.

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.

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.

Macchange

L’ordre GNU permet (mascarade) emmascarar l’adreça MAC pròpia. Compte! No feu dolenteries.

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.

Atacs al funcionament de DHCP i conflictes d'adreces IP

vei. Consisteix a inundar de peticions un servidor per tal de saturar-lo i bloquejar-ne el funcionament. Un client pot realitzar innumerables peticions DHCP discovery fingint que són clients diferents (emmascarant la seva MAC) amb la intenció d’esgotar les adreces IP disponibles del servidor o simplement amb la intenció de sobrecarregar-lo amb tantes peticions que no doni a l’abast a atendre-les o que ho faci lentament.

Un altre tipus d’atac consisteix a falsejar la informació que s’envia al client. Recordem que el client fa una sol·licitud d’IP en forma de difusió (broadcast) i la seva petició pot ser atesa per un o més servidors DHCP. Un dels servidors DHCP pot ser un atacant que intentarà proporcionar informació de configuració falsa al client. Per exemple indicant un servidor DNS també maliciós. Aquest pot falsejar les identitats de les màquines de la xarxa i, quan el client s’adreça a la seva entitat bancària, el servidor DNS en realitat li ha proporcionat una IP d’una màquina que falseja la de l’entitat bancària. Perillós, oi?

Tipus d'atacs DNS

Clients no autoritzats: accés a servidors DNS per part de clients no autoritzats. Servidors no autoritzats: servidors DNS impostors que suplanten els vertaders servidors.

Per posar remei a la inseguretat en la comunicació client-servidor DHCP, el protocol permet utilitzar mecanismes d’autenticació i xifratge. Aquests mecanismes queden fora de l’abast d’aquesta explicació.

Conflictes amb les adreces IP

Un dels principals motius per utilitzar DHCP és simplificar el procés de configuració de xarxa i minimitzar els conflictes per encavalcament d’adreces IP. Per desgràcia, això no garanteix que no es puguin produir conflictes. Per exemple, ens podem trobar en situacions en què dues màquines diferents tinguin la mateixa IP per una simple mala configuració del servidor DHCP. Un altre cas típic és el d’un client que s’ha configurat ell mateix una IP estàtica quan en la xarxa ja hi havia un equip que utilitzava la mateixa adreça IP assignada pel servidor DHCP.

Un problema habitual per als administradors poc experimentats és definir una configuració de xarxa local al client (hostname, servidor DNS, porta d’enllaç a utilitzar, etc.), però demanar l’adreça IP dinàmicament. La configuració dinàmica no és solament la IP i la màscara, sinó que el servidor DHCP pot proporcionar altres paràmetres de xarxa que sobreescriuran els que el client tenia definits localment (aquest és l’objectiu de DHCP!).

La configuració rebuda per DHCP sobreescriu la configuració local del client.

Intervals, exclusions, concessions i reserves

Els clients DHCP obtenen del servidor una configuració de xarxa. Descrivim ara alguns dels termes que tenen lloc durant aquest procés, i que formen part de la configuració DHCP.

  • Interval: anomenen interval d’adreces IP el conjunt d’adreces dinàmiques que el servidor té disponibles per assignar als clients. Les adreces IP disponibles s’agrupen per oferir-se a les diverses subxarxes que atén el servidor. Una mateixa subxarxa pot disposar de diversos intervals. Segurament s’entendrà més fàcilment amb un exemple:
subnet 140.220.191.0 netmask 255.255.255.0 {
              range 140.220.191.150 140.220.191.249;
            }

  subnet 239.252.197.0 netmask 255.255.255.0 {
              range 239.252.197.10 239.252.197.107;
              range 239.252.197.113 239.252.197.250;
            }

En l’exemple anterior s’observa que la primera subxarxa disposa d’un interval de 100 adreces dinàmiques (de la 140.220.191.150 al 250). La segona subxarxa permet assignar dinàmicament dos intervals d’adreces no correlatius.

  • Exclusions: entenem per exclusions aquelles adreces IP que no s’ofereixen dinàmicament per part del servidor. És a dir, que no formen part de cap interval.
  • Concessions: l’assignació d’una adreça IP i la resta de paràmetres de xarxa a un client per part del servidor, és una concessió (o leasse). Els clients reben les concessions per períodes de temps finits, que en finalitzar, cal renegociar. Tant el client com el servidor s’anoten les concessions, el client la que rep i el servidor les que concedeix. Quan finalitza una concessió el servidor pot decidir revocar-la o ampliar-ne la concessió.

El client tothora pot decidir renunciar a la concessió. Si el client vol allargar la concessió inicia un diàleg DHCP abreujat amb el servidor que pot acabar amb una renovació o amb la pèrdua de la concessió (sempre pot tornar a començar el procés). Tant el servidor com el client normalment miren les concessions que s’han efectuat entre ells amb anterioritat per tal de, si és possible, repetir la mateixa assignació.

  • Reserves: anomenem reserves aquelles adreces IP que s’assignen via DHCP però de manera fixa. És a dir, són adreces que s’assignen dinàmicament però sempre i únicament a un host determinat. Fixeu-vos que tot i ser una adreça dinàmica només s’utilitza si el host associat en fa ús. Si el host està apagat l’adreça no es pot usar per a altres hosts, està reservada. Un exemple podria ser:
subnet 140.220.191.0 netmask 255.255.255.0 {
       host iocserver {
           hardware ethernet 08:00:2b:4c:59:23;
           fixed-address 140.220.191.1;
       }
      range 140.220.191.150 140.220.191.249;
       }

En aquest exemple es pot veure que l’adreça 140.220.191.1 és una adreça reservada exclusivament per al host iocserver, que s’identifica mitjançant la seva adreça MAC.

DHCP un servei client/servidor

Com acostuma a passar amb els serveis client/servidor, un equip pot realitzar les dues funcions al mateix temps.

El servei DHCP és un més dels serveis de xarxa que tenen l’estructura client /servidor. Els servidors DHCP són els equips que tenen en execució el programa servidor. És el programa encarregat d’atendre les peticions dels clients i oferir-los la configuració de xarxa, tot portant el registre de les IP que concedeix i el registre de totes les accions que realitza. Els clients DHCP són aquells equips que realitzen peticions per obtenir una configuració de xarxa a un servidor DHCP.

El client DHCP

Un equip client DHCP és un equip que sol·licita la IP i altres paràmetres de configuració de xarxa a un servidor DHCP en lloc de tenir-los definits localment en l’equip.

ISP

ISP: Internet service provider o proveïdor de servei/accés a Internet. Ho són per exemple les empreses Ono, Vodafone, Jazztel, etc.

Si connecteu el vostre equip informàtic a la xarxa Internet per mitjà d’un ISP (Internet service provider o proveïdor de servei/accés a Internet), segurament rebreu una IP dinàmica del vostre proveïdor. Quan es realitzava una trucada telefònica amb mòdem i usant el protocol PPP (point to point protocol, protocol punt a punt), el proveïdor proporcionava una adreça IP dinàmica. Si utilitzeu ADSL i un encaminador o router, segurament l’encaminador us proporciona una adreça IP dinàmica privada a l’ordinador de casa. Al mateix temps, l’encaminador obté una IP dinàmica pública del proveïdor. Aquestes adreces IP dinàmiques són fixes (sempre les mateixes) o dinàmiques d’interval (pot ser qualsevol IP del conjunt d’adreces IP que té disponibles per concedir el servidor DHCP).

IP pública / IP privada

La diferència entre una IP pública i una IP privada és que la pública és visible per a tots els equips d’Internet, mentre que la privada és visible només dins de la mateixa xarxa local.

El client DHCP ha de tenir en funcionament un dimoni (daemon) encarregat de la gestió de les tasques DHCP per part del client. El programa client realitza la part de negociació encarregada al client (DHCP discovery, request) i també porta un registre de les concessions (leases) rebudes. Aquest registre és el que utilitza el client per tornar a demanar la mateixa IP que tenia anteriorment. Un cop rebuda la concessió el programa client queda “adormit”, pendent de tornar-se a executar automàticament quan calgui renegociar la concessió. Sense intervenció de l’usuari, el programa client s’activa i segueix el procediment necessari per renegociar l’adreça IP cada cop que el temps de la concessió s’exhaureix.

Configuració client

Usualment les configuracions clients es poden fer de tres maneres diferents:

  • fitxer de text: editar directament els fitxers de configuració.
  • menús en mode text: usant algun programa de menús amb interfície de text.
  • aplicació gràfica: usant una aplicació de finestres en l’entorn gràfic.

Els programes client varien d’un sistema operatiu a un altre i la manera d’executar-los també. Generalment es disposa d’un client executable en mode text o ordres i d’una interfície gràfica (GUI, graphics user interface o interfície gràfica d’usuari) per a la configuració. No cal dir que els sistemes Windows tendeixen a la configuració gràfica usant finestres i a la configuració i execució interna d’amagat de l’usuari. Normalment, en els sistemes GNU/Linux, la configuració es fa usant fitxers de text o com a opcions en l’ordre d’execució. La interfície gràfica acostuma a ser un frontal (front-end) per cridar l’ordre. Segons sigui el sistema operatiu es pot consultar el fitxer de registre de les concessions rebudes pel client, el fitxer de leasses, més o menys detalladament.

Generalment el programa client es pot configurar per definir-ne el comportament en la comunicació amb el servidor: informació a demanar, informació a proporcionar al servidor, opcions per defecte, etc.

El servidor DHCP

L’administrador de xarxa és l’encarregat de pensar la ubicació del servidor o servidors DHCP en l’estructura corporativa. Com més complicada sigui la topologia de la xarxa, més difícil en serà la gestió. Una xarxa corporativa bàsica pot disposar d’un únic servidor DHCP que ofereix els seus serveis a tots els equips de la xarxa. Els clients poden estar en una mateixa subxarxa o en diverses subxarxes, però totes amb connectivitat amb el servidor DHCP. Aquest també pot ser l’esquema d’una xarxa privada a casa, on un encaminador (el de l’ISP, per exemple) proporciona el servei DHCP a tots els ordinadors de la casa.

Si la xarxa corporativa creix i passa a tenir subxarxes segmentades amb tallafocs les unes de les altres, la configuració del servidor DHCP es complica. Si es vol continuar amb un únic servidor per a tota la xarxa, caldrà que els tallafocs (firewalls) deixin passar els paquets DHCP entre les subxarxes i el servidor. Una altra opció és posar un servidor DHCP per a cada subxarxa o grups de subxarxes. Fent-ho així, l’administració de cada servidor és més senzilla però hi ha més servidors a administrar. Una xarxa amb una casuística completa és la que té diversos servidors DHCP per a diverses parts de la xarxa i tallafocs entre clients i servidors que han de permetre el pas de paquets DHCP.

Si el servidor DHCP és l’encarregat de donar adreces IP als clients, qui li proporciona una adreça IP a ell? O bé un altre servidor DHCP (i podríem tornar a fer la mateixa pregunta indefinidament) o bé l’administrador. Usualment, en una xarxa corporativa el servidor DHCP utilitza una IP estàtica definida per l’administrador. Això li permet estar sempre disponible per als clients amb la mateixa IP i no el fa dependre d’un altre servidor extern.

Hi ha diversos programes servidors DHCP: en mode text, en mode gràfic, en mode “màgic” (no es veu què fan) i en mode Unix (tot basat en fitxers de text). Cada administrador treballa amb les seves eines preferides. Les tasques bàsiques per aprendre a utilitzar un servidor DHCP són observar/fer una llista de la configuració actual, activar/aturar el servei, modificar la configuració, monitorar els logs (registre de successos del servei) i, evidentment, saber instal·lar i desinstal·lar l’aplicació servidor.

Els fitxers de logs (successos) recullen els esdeveniments que es volen monitorar.

Com la majoria de serveis de xarxa, el servei DHCP és un servei que s’executa en segon pla en forma de dimoni. El servidor DHCP sempre està engegat escoltant en el port 67 les peticions que rep dels clients. Quan rep una petició entrant, el programa executable del servidor DHCP la processa i posa en marxa tot el mecanisme DHCP pertinent per tornar a escoltar noves peticions. De fet, el servidor sempre escolta peticions i les processa simultàniament (segons la configuració).

Els fitxers del registre del servei, on s’anoten les concessions, permeten mantenir la informació encara que el servei s’aturi o que el servidor s’apagui. En tornar a engegar es llegiran de nou els fitxers de registres per tal de saber quines són les concessions que s’havien realitzat.

Els fitxers de concessions permeten mantenir la coherència de l’assignació d’adreces IP entre aturades del servei.

Instal·lació d'un servei DHCP

El servei de xarxa DHCP està estructurat en forma de servei client / servidor; per tant, caldrà disposar del programari apropiat per fer cada un d’aquests rols. El programari que fa la funció de client usualment ja està integrat en el sistema operatiu (la part que gestiona la xarxa). És a dir, per disposar de la part client del servei DHCP normalment no cal instal·lar res, ja forma part del servei de xarxa.

Així doncs, quan parlem d’instal·lar un servei DHCP fem referència al procés d’instal·lació i configuració del programari del servidor DHCP. Evidentment també caldrà configurar els clients adequadament per fer ús d’aquest servei.

La instal·lació del programari que proporciona el servei DHCP es fa de manera molt similar (per no dir idèntica) al programari d’altres serveis de xarxa com els serveis DNS, HTTP, FTP, etc. Es tracta d’instal·lar el programari de l’aplicació servidor i fer-ne la configuració apropiada. Senzill oi?

Per fer això cal plantejar-se els passos següents:

  1. Quin programari proporciona aquest servei? Quines característiques té? Com es pot adquirir?
  2. Obtenir l’aplicació que proporciona el servei DHCP.
  3. Observar l’estat de la xarxa actual. Està el servei ja en funcionament? Existeix ja una configuració DHCP activa?
  4. Instal·lar l’aplicació servidor.
  5. Comprovar que la instal·lació s’ha efectuat correctament.
  6. Configurar el servei en el servidor i activar els clients perquè l’utilitzin.
  7. Comprovar que el servei funciona correctament.

Aplicacions servidor DHCP

Sempre que l’administrador vol posar en funcionament un nou servei de xarxa cal que primerament analitzi quines aplicacions hi ha al mercat que ofereixen aquest servei. És feina seva estudiar les característiques de les diverses aplicacions, com per exemple: avaluar-ne l’eficiència, el cost, el que en diuen els altres… La manera més fàcil de fer això és navegar per Internet, consultar les revistes especialitzades o demanar consell a un dels gurus informàtics coneguts.

Usualment l’administrador s’informa a través del seu cercador preferit, per exemple Google, i de webs com la Viquipèdia. Podeu cercar DHCP o DHCP server al Google i a la wiki (en anglès).

Usualment, però, l’administrador acaba utilitzant l’aplicació servidor DHCP que li proporciona el mateix sistema operatiu. Si utilitzeu el sistema operatiu Windows l’empresa Microsoft disposa d’una aplicació pròpia, però també en podeu trobar d’altres a Internet. Igualment si utilitzeu GNU/Linux segurament la mateixa distribució ja proporciona un servidor DHCP. De totes maneres en podeu obtenir d’altres també a Internet.

Instal·lar l'aplicació servidor

Tot seguit es descriurà el procés per instal·lar el servei DHCP en un entorn GNU/Linux. Un cop feta la instal·lació cal observar què s’ha instal·lat, quins programes executables, on són els fitxers de configuració, els de monitoratge, etc.

Els usuaris GNU/Linux poden buscar fàcilment per Internet quins paquets del client i del servidor dhcp usant eines com yum, apt-get o wget, a part dels repositoris de programari usuals o del mateix Google.

Llista de paquets rpm que contenen exactament el text dhcp:

  1. [root@portatil ~]# yum list dhcp
  2. fedora 100% |===================================================| 2.3 kB 00:00
  3. Installed Packages
  4. dhcp.i386 12:3.0.5-42.fc7 installed

Llista de paquets que contenen la cadena dhcp:

  1. [root@portatil ~]# yum list dhcp*
  2. Installed Packages
  3. dhcp.i386 12:3.0.5-42.fc7 installed
  4. dhcpv6_client.i386 0.10-44.fc7 installed
  5. Available Packages
  6. dhcp-devel.i386 12:3.0.5-42.fc7 updates
  7. dhcp-forwarder.i386 0.7-12.fc7 fedora
  8. dhcp-forwarder-sysv.i386 0.7-12.fc7 fedora
  9. dhcp-static.i386 12:3.0.5-42.fc7 updates
  10. dhcpv6.i386 0.10-44.fc7 updates

Instal·lar el paquet dhcp:

  1. # yum install dhcp

Fer la llista dels paquets dhcp instal·lats. Si el sistema ja els té instal·lats o volem comprovar-ho podem consultar els paquets instal·lats:

[root@portatil ~]# rpm -qa | grep dhcp 
libdhcp6client-0.10-44.fc7 
libdhcp4client-3.0.5-42.fc7 
dhcp-3.0.5-42.fc7 
dhcpv6_client-0.10-44.fc7 
libdhcp-1.24-6.fc7

Obtenir informació del paquet del servei dhcp instal·lat:

  1. [root@portatil ~]# rpm -qi dhcp
  2. Name : dhcp Relocations: (not relocatable)
  3. Version : 3.0.5 Vendor: Fedora Project
  4. Release : 42.fc7 Build Date: dl 12 nov 2007 17:37:56 CET
  5. Install Date: dc 23 gen 2008 19:14:18 CET Build Host: xenbuilder4.fedora.phx.redhat.com
  6. Group : System Environment/Daemons Source RPM: dhcp-3.0.5-42.fc7.src.rpm
  7. Size : 2162920 License: ISC
  8. Signature : DSA/SHA1, dl 14 gen 2008 19:35:22 CET, Key ID b44269d04f2a6fd2
  9. Packager : Fedora Project
  10. URL : http://isc.org/products/DHCP/
  11. Summary : DHCP (Dynamic Host Configuration Protocol) server and relay agent
  12. Description :
  13. El DHCP (protocol de configuració dinàmica de màquines) és un protocol
  14. que permet a dispositius individuals d'una xarxa IP obtenir la seva
  15. informació de configuració de xarxa (adreça IP, màscara de subxarxa,
  16. adreça de difusió, etc) d'un servidor DHCP. El propòsit del DHCP és
  17. fer més senzilla l'administració d'una xarxa gran. El paquet dhcp
  18. inclou el servei DHCP i l'agent de repetició de l'ISC.
  19. Per usar DHCP a la vostra xarxa, instal·leu un servei DHCP (o agent
  20. de repetició) i als clients executeu un dimoni client DHCP. El paquet
  21. dhcp proporciona servei DHCP i l'agent de repetició de l'ISC.

Observar els components del programari instal·lat

Sovint passa que els usuaris instal·len programes als ordinadors però no saben quins fitxers han instal·lat ni on són. Un administrador curiós ha de fer un repàs a tot allò que s’ha afegit de nou al sistema.

Fer la llista dels components del paquet dhcp:

  1. [root@portatil ~]# rpm -ql dhcp
  2. /etc/dhcpd.conf
  3. /etc/openldap/schema/dhcp.schema
  4. /etc/rc.d/init.d/dhcpd
  5. /etc/rc.d/init.d/dhcrelay
  6. /etc/sysconfig/dhcpd
  7. /etc/sysconfig/dhcrelay
  8. /usr/bin/omshell
  9. /usr/sbin/dhcpd
  10. /usr/sbin/dhcrelay
  11. /usr/share/doc/dhcp-3.0.5
  12. ... output suprimit ....
  13. /usr/share/doc/dhcp-3.0.5/rfc951.txt
  14. /usr/share/man/man1/omshell.1.gz
  15. ... output suprimit ...
  16. /usr/share/man/man8/dhcrelay.8.gz
  17. /var/lib/dhcpd
  18. /var/lib/dhcpd/dhcpd.leases

En funció del directori on s’ubiquen els fitxers podem intuir si són executables, de configuració o de documentació. També podem mirar de filtrar la sortida en cada cas:

Fitxers de configuració (usualment en el directori /etc):

  1. [root@portatil ~]# rpm -qc dhcp
  2. /etc/dhcpd.conf
  3. /etc/openldap/schema/dhcp.schema
  4. /etc/sysconfig/dhcpd
  5. /etc/sysconfig/dhcrelay
  6. /var/lib/dhcpd/dhcpd.leases
  7.  
  8. [root@portatil ~]# rpm -ql dhcp | grep etc
  9. /etc/dhcpd.conf
  10. /etc/openldap/schema/dhcp.schema
  11. /etc/rc.d/init.d/dhcpd
  12. /etc/rc.d/init.d/dhcrelay
  13. /etc/sysconfig/dhcpd
  14. /etc/sysconfig/dhcrelay

Fitxers de documentació:

  1. [root@portatil ~]# rpm -qd dhcp
  2. /usr/share/doc/dhcp-3.0.5/IANA-arp-parameters
  3. /usr/share/doc/dhcp-3.0.5/README
  4. /usr/share/doc/dhcp-3.0.5/README.ldap
  5. /usr/share/doc/dhcp-3.0.5/RELNOTES
  6. /usr/share/doc/dhcp-3.0.5/__fedora_contrib/3.0b1-lease-convert
  7. /usr/share/doc/dhcp-3.0.5/__fedora_contrib/dhcp.spec
  8. /usr/share/doc/dhcp-3.0.5/__fedora_contrib/dhcpd-conf-to-ldap
  9. /usr/share/doc/dhcp-3.0.5/__fedora_contrib/ms2isc/Registry.perlmodule
  10. /usr/share/doc/dhcp-3.0.5/__fedora_contrib/ms2isc/ms2isc.pl
  11. /usr/share/doc/dhcp-3.0.5/__fedora_contrib/ms2isc/readme.txt
  12. /usr/share/doc/dhcp-3.0.5/__fedora_contrib/sethostname.sh
  13. /usr/share/doc/dhcp-3.0.5/__fedora_contrib/solaris.init
  14. /usr/share/doc/dhcp-3.0.5/api+protocol
  15. /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample
  16. /usr/share/doc/dhcp-3.0.5/draft-ietf-dhc-authentication-14.txt
  17. /usr/share/doc/dhcp-3.0.5/draft-ietf-dhc-dhcp-dns-12.txt
  18. /usr/share/doc/dhcp-3.0.5/draft-ietf-dhc-failover-07.txt
  19. /usr/share/doc/dhcp-3.0.5/draft-ietf-dhc-ldap-schema-01.txt
  20. /usr/share/doc/dhcp-3.0.5/rfc1542.txt
  21. /usr/share/doc/dhcp-3.0.5/rfc2131.txt
  22. /usr/share/doc/dhcp-3.0.5/rfc2132.txt
  23. /usr/share/doc/dhcp-3.0.5/rfc2485.txt
  24. /usr/share/doc/dhcp-3.0.5/rfc2489.txt
  25. /usr/share/doc/dhcp-3.0.5/rfc951.txt
  26. /usr/share/man/man1/omshell.1.gz
  27. /usr/share/man/man5/dhcp-eval.5.gz
  28. /usr/share/man/man5/dhcp-options.5.gz
  29. /usr/share/man/man5/dhcpd.conf.5.gz
  30. /usr/share/man/man5/dhcpd.leases.5.gz
  31. /usr/share/man/man8/dhcpd.8.gz
  32. /usr/share/man/man8/dhcrelay.8.gz

Podem mirar de filtrar quins són els executables tenint en compte que usualment estaran en un directori de nom bin o sbin:

Arxius executables

En GNU/Linux els fitxers executables per l’administrador es troben usualment a i a . Els executables d’usuari normalment són a i .

  1. [root@portatil ~]# rpm -ql dhcp | grep bin
  2. /usr/bin/omshell /sbin
  3. /usr/sbin/dhcpd /usr/sbin
  4. /bin
  5. /usr/sbin/dhcrelay /usr/bin

En resum:

  • Els fitxers de documentació es troben generalment a: /usr/share/doc i a /usr/share/man.
  • Els fitxers de configuració es troben a: /etc, i a /etc/sysconfig.
  • El dimoni del servei es troba a: /usr/sbin/dhcpd.
  • El fitxer de configuració del dimoni del servei és: /etc/dhcpd.conf.
  • El fitxer de govern del servei és: /etc/rc.d/init.d/dhcpd.

Activar/desactivar el servei i nivells d'arrancada

Un cop feta la instal·lació física de l’aplicació servidor DHCP (els fitxers) cal posar-lo en marxa, engegar-lo, o comprovar que ja ho està.

Serveis de xarxa: stand alone o xinetd

En la majoria de serveis de xarxa el servidor pot funcionar com un servei per si mateix (stand alone) o pot estar configurat per funcionar dins d’un superservei de xarxa com per exemple inetd i xinetd. Si funciona en mode de servei propi és el servidor qui escolta les connexions entrants i les atén. Si s’executa dins del superservei de xarxa, aquest és qui detecta les connexions entrants i activa el dimoni del servei per tal que les atengui, un cop ateses el dimoni del servei acaba i torna a ser el superservidor de xarxa qui es queda escoltant.

En un primer moment molts serveis funcionaven en mode stand alone, però això es va mostrar poc eficient a nivell de recursos. Fixeu-vos que si es vol oferir n serveis de xarxa, cal tenir engegats els n servidors corresponents. Aquests ocupen memòria i CPU, tot i que no atenguin cap client. Estan engegats només “per si” un client els demana.

Un model més eficient és engegar un únic procés que fa la tasca de superservidor de xarxa (inetd o xinetd) i només quan es rep una petició d’un client, s’executa el servei apropiat.

Usualment els serveis que funcionen en mode xinetd disposen de fitxers de configuració lligats al xinetd. Els serveis que actuen indivudualment disposen dels fitxers de configuració propis al etc rc.dinit.d/.

Molt sovint és decisió de l’administrador configurar en quin mode de funcionament vol que treballi el servei. Per exemple el servei de pàgines web (httpd), el servei ssh i molts d’altres, funcionen individualment. Serveis més bàsics com telnet, finger, tftp, etc funcionen usualment dins del xinetd.

Primerament cal saber si el servidor instal·lat funciona en mode stand-alone o dins del superdimoni de xarxa xinetd o initd. Si existeixen fitxers de configuració dins del directori /etc/xinetd.d/<nom-servei> es tracta d’un servei dins del xinetd. Si existeixen fitxers de configuració dins del directori /etc/rc.d/init.d/<nom-servei> es tracta d’un servei stand-alone. Podem fer:

  1. [root@portatil ~]# rpm -ql dhcp | grep /etc
  2. /etc/dhcpd.conf
  3. /etc/openldap/schema/dhcp.schema
  4. /etc/rc.d/init.d/dhcpd
  5. /etc/rc.d/init.d/dhcrelay
  6. /etc/sysconfig/dhcpd
  7. /etc/sysconfig/dhcrelay

Com podem observar es tracta d’un servei stand-alone. També es pot consultar el tipus de servei amb l’ordre chkconfig i observar si surt en la llista d’un tipus o de l’altre:

  1. [root@portatil ~]# chkconfig --list | grep dhcpd
  2. dhcpd 0:apagat 1:apagat 2:apagat 3:apagat 4:apagat 5:apagat 6:apagat

Per facilitar buscar els serveis “stand-alone” podem fer:

  1. [root@portatil ~]# chkconfig --list dhcpd
  2. dhcpd 0:apagat 1:apagat 2:apagat 3:apagat 4:apagat 5:apagat 6:apagat

L’estat del servei pot ser en execució (running) o aturat (stopped). Es pot consultar l’estat amb l’opció status de l’ordre service o del mateix executable del servei:

  1. Es pot saber l'estat del servei amb l'opció status de les ordres:
  2. [root@portatil ~]# service dhcp status
  3. dhcp està aturat
  4. [root@portatil ~]# /etc/rc.d/init.d/dhcpd status
  5. dhcp està aturat

La gestió de l’estat d’un servei normalment inclou les opcions start, stop, status, restart i reload. Aquestes són les més usuals, però cada servei pot definir les que cregui oportunes. Aquests són exemples de gestió de l’estat del servei DHCP:

Es pot arrancar el servei amb l’opció start de les ordres:

  1. [root@portatil ~]# service dhcpd start
  2. S'està iniciant el servei dhcpd: [ FET ]
  3. [root@portatil ~]# /etc/rc.d/init.d/dhcpd start
  4. S'està iniciant el servei dhcpd: [ FET ]

Es pot aturar el servei amb l’opció stop de les ordres:

  1. [root@portatil ~]# service dhcpd stop
  2. S'està aturant el dhcpd: [ FET ]
  3. [root@portatil ~]# /etc/rc.d/init.d/dhcpd stop
  4. S'està aturant el servei dhcpd: [ FET ]

Es pot iniciar de nou el servei (recarregar) amb l’opció reload o restart de les ordres:

  1. [root@portatil ~]# /etc/rc.d/init.d/dhcpd restart
  2. S'està aturant el servei dhcpd: [Incorrecte]
  3. S'està iniciant el servei dhcpd: [ FET ]
  4. [root@portatil ~]# service dhcpd reload
  5. S'està aturant el servei dhcpd: [ FET ]
  6. S'està iniciant el servei dhcpd: [ FET ]

Per saber les opcions possibles d’un servei es pot fer el truc:

  1. [root@portatil ~]# service dhcpd patapum
  2. Forma d'ús: /etc/init.d/dhcpd {start|stop|restart|condrestart|status}
  3. [root@portatil ~]# /etc/rc.d/init.d/dhcpd pimpam
  4. Forma d'ús: /etc/rc.d/init.d/dhcpd {start|stop|restart|condrestart|status}

Que un servei del sistema estigui engegat no significa que en arrancar de nou el sistema torni a estar engegat. Cal comprovar que sigui així o assegurar-se de definir-ho correctament. Els serveis (usualment dimonis executables) es poden configurar per arrancar automàticament en determinats nivells d’execució. Les màquines GNU/Linux tenen 7 nivells d’execució com es pot veure del fitxer /etc/inittab:

  1. [root@portatil ~]# head -20 /etc/inittab
  2. ... output suprimit ...
  3. # Default runlevel. The runlevels used by RHS are:
  4. # 0 - halt (Do NOT set initdefault to this)
  5. # 1 - Single user mode
  6. # 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
  7. # 3 - Full multiuser mode
  8. # 4 - unused
  9. # 5 - X11
  10. # 6 - reboot (Do NOT set initdefault to this)
  11. # ... output suprimit ...

Per configurar a quins nivells es vol que s’executi un servei s’utilitza l’ordre chkconfig, que permet activar/desactivar el servei pels nivells indicats. L’exemple següent mostra l’ús d’aquesta ordre, dóna la llista de l’estat actual del servei DHCP en tots els nivells i el configura per executar-se en els nivells 3, 4 i 5:

  1. [root@portatil ~]# chkconfig --help
  2. chkconfig versió 1.3.34 - Copyright (C) 1997-2000 Red Hat, Inc.
  3. Aquest programari es pot distribuir lliurement d'acord amb els termes de la Llicència
  4. Pública General GNU.
  5. forma d'ús: chkconfig --list [nom]
  6. chkconfig --add <nom>
  7. chkconfig --del <nom>
  8. chkconfig --override <nom>
  9. chkconfig [--level <nivells>] <nom> <on|off|reset|resetpriorities>
  10. [root@portatil ~]# chkconfig --list dhcpd
  11. dhcpd 0:apagat 1:apagat 2:apagat 3:apagat 4:apagat 5:apagat 6:apagat
  12. [root@portatil ~]# chkconfig --level 345 dhcpd on
  13. [root@portatil ~]# chkconfig --list | grep dhcpd
  14. dhcpd 0:apagat 1:apagat 2:apagat 3:engegat 4:engegat 5:engegat 6:apagat

Fixeu-vos que definir els nivells d’execució no significa que el servei estigui ara mateix engegat. Significa que quan arranqui el sistema de nou s’engegarà en els nivells corresponents. Podem ara estar al nivell 5 i tenir el servei aturat perquè encara no l’hem engegat. Per exemple:

  1. [root@portatil ~]# runlevel
  2. N 5
  3. [root@portatil ~]# service dhcpd status
  4. dhcpd està aturat
  5. [root@portatil ~]# service dhcpd start
  6. S'està iniciant el servei dhcpd [ FET ]

Comprovació del funcionament bàsic

Comprovar que el servidor DHCP està en funcionament és un procés ben senzill, n’hi ha prou de comprovar que el servei està engegat. Això no vol dir, en cap cas, que el servei estigui funcionant correctament. Potser el servidor està engegat però no està correctament configurat. De fet, la configuració és la part realment important de l’administració d’un servei, i també del servei DHCP.

A part de comprovar l’estat del servei (amb l’opció status), l’administrador pot assegurar-se que el dimoni del servei està en execució buscant el seu PID (process identifier o indicador de número de procés). Una altra activitat a fer és monitorar el registre d’activitats del servei (els logs). Tot el trànsit DHCP és trànsit de xarxa TCP/IP; per tant també es pot observar l’estat dels ports i analitzar el trànsit que s’hi produeix.

Comprovació DHCP

L’administrador pot verificar el funcionament del servidor DHCP observant:

  • l’estat del servei (on, off)
  • el PID del servei (ha d’estar running).
  • el registre de logs.
  • monitorar el trànsit de xarxa amb una eina tipus wireshark.
  • l’estat dels ports.

Tot procés en el sistema té un identificador de procés. El PID dels serveis usualment es desen en el sistema de fitxers (al directori /var/run) en forma de fitxer que conté un valor numèric (en text) corresponent al PID del procés. Amb el servei en marxa sempre es pot observar el PID del servidor amb:

  1. [root@portatil ~]# ps ax | grep dhcp
  2. 3610 ? Ss 0:00 /usr/sbin/dhcpd
  3. [root@portatil ~]# service dhcpd status
  4. dhcpd (pid 3610) s'està executant...
  5. [root@portatil ~]# ll /var/run/dhcpd.pid
  6. -rw-r--r-- 1 root root 5 29 jun 14:17 /var/run/dhcpd.pid
  7. [root@portatil ~]# cat /var/run/dhcpd.pid
  8. 3610

Un cop iniciat el servei es crea un fitxer de bloqueig o lock amb el nom del servei per evitar iniciar-ne una altra instància. Els fitxers de lock usualment es troben a /var/lock i són un simple fitxer de text buit on la seva pròpia existència ja marca que el servei està en marxa. En parar el servei el fitxer s’elimina. Podem observar això fent:

  1. [root@portatil ~]# cat /var/lock/subsys/dhcpd
  2. [root@portatil ~]# ll /var/lock/subsys/dhcpd
  3. -rw-r--r-- 1 root root 0 1 jun 18:26 /var/lock/subsys/dhhcpd

Tots els serveis del sistema normalment es monitoren anotant en fitxers de text un registre de totes les accions que realitzen, són els fitxers coneguts com a fitxers de log. Tant es pot utilitzar un fitxer genèric pel sistema com un fitxer independent per a un servei determinat. El servidor DHCP utilitza el fitxer de monitoratge estàndard /var/log/messages. En aquest fitxer s’enregistra cada cop que el servei s’engega i s’atura.

  1. [root@portatil ~]# cat /var/log/messages | grep dhcp
  2. Jun 29 14:16:53 portatil yum: Installed: dhcp - 12:3.0.5-42.fc7.i386
  3. Jun 29 14:17:33 portatil dhcpd: Internet Systems Consortium DHCP Server V3.0.5-RedHat
  4. Jun 29 14:17:33 portatil dhcpd: Copyright 2004-2006 Internet Systems Consortium.
  5. Jun 29 14:17:33 portatil dhcpd: All rights reserved.
  6. Jun 29 14:17:33 portatil dhcpd: For info, please visit http://www.isc.org/sw/dhcp/
  7. Jun 29 14:17:33 portatil dhcpd: WARNING: Host declarations are global. They are not limited
  8. to the scope you declared them in.
  9. Jun 29 14:17:33 portatil dhcpd: Wrote 0 deleted host decls to leases file.
  10. Jun 29 14:17:33 portatil dhcpd: Wrote 0 new dynamic host decls to leases file.
  11. Jun 29 14:17:33 portatil dhcpd: Wrote 0 leases to leases file.
  12. Jun 29 14:17:33 portatil dhcpd: Listening on LPF/eth0/00:17:31:15:80:7e/192.168.1/24
  13. Jun 29 14:17:33 portatil dhcpd: Sending on LPF/eth0/00:17:31:15:80:7e/192.168.1/24

El servei DHCP desa la informació de registre de les concessions que efectua en un fitxer de leasses. Això li permet seguir la pista de les adreces IP que ha concedit i ser coherent entre diverses arrancades del mateix servidor. Es pot observar aquest fitxer a /var/lib/dhcpd/dhcpd.leases:

  1. [root@portatil ~]# ll /var/lib/dhcpd/dhcpd.leases
  2. -rw-r--r-- 1 root root 473 29 jun 14:17 /var/lib/dhcpd/dhcpd.leases
  3.  
  4. [root@portatil ~]# cat /var/lib/dhcpd/dhcpd.leases
  5. # All times in this file are in UTC (GMT), not your local timezone. This is
  6. # not a bug, so please don't ask about it. There is no portable way to
  7. # store leases in the local timezone, so please don't request this as a
  8. # feature. If this is inconvenient or confusing to you, we sincerely
  9. # apologize. Seriously, though - don't ask.
  10. # The format of this file is documented in the dhcpd.leases(5) manual page.
  11. # This lease file was written by isc-dhcp-V3.0.5-RedHat
  12. lease 192.168.1.254 {
  13. starts 0 2008/06/29 16:03:41;
  14. ends 1 2008/06/30 04:03:41;
  15. binding state active;
  16. next binding state free;
  17. hardware ethernet 08:00:27:b2:8b:ec;
  18. client-hostname "box";
  19. }
  20.  
  21. lease 192.168.1.254 {
  22. starts 0 2008/06/29 16:19:30;
  23. ends 1 2008/06/30 04:19:30;
  24. binding state active;
  25. next binding state free;
  26. hardware ethernet 08:00:27:b2:8b:ec;
  27. client-hostname "box";
  28. }

Sovint l’administrador vol comprovar que els ports que utilitza el protocol DHCP estan oberts. En GNU/Linux es pot fer una llista fàcilment dels serveis associats a cada port mitjançant el fitxer /etc/services. Algunes utilitats com nmap permeten detectar els ports oberts. Per exemple podem fer:

  1. Llista dels ports que inclouen alguna referència DHCP:
  2. [root@portatil ~]# cat /etc/services | grep DHCP
  3. bootpc 68/tcp dhcpc # BOOTP client
  4. bootpc 68/udp dhcpc
  5. dhcpv6-client 546/tcp
  6. dhcpv6-client 546/udp
  7. dhcpv6-server 547/tcp
  8. dhcpv6-server 547/udp
  9. dhcp-failover 647/tcp # DHCP Failover
  10. dhcp-failover 647/udp # DHCP Failover
  11. dhcp-failover2 847/tcp # dhcp-failover 2
  12. dhcp-failover2 847/udp # dhcp-failover 2
  13. qip-qdhcp 2490/tcp # qip_qdhcp
  14. qip-qdhcp 2490/udp # qip_qdhcp

Si ens hi fixem veurem que de fet el protocol DHCP és anomenat BOOTP. Podem fer la llista de les entrades que corresponen a aquest protocol:

  1. [root@portatil ~]# cat /etc/services | grep bootp
  2. bootps 67/tcp # BOOTP server
  3. bootps 67/udp
  4. bootpc 68/tcp dhcpc # BOOTP client
  5. bootpc 68/udp dhcpc
  6. nuts_bootp 4133/tcp # NUTS Bootp Server
  7. nuts_bootp 4133/udp # NUTS Bootp Server

Es pot observar que el port usat pel client DHCP és el port 68 (bootpc) i el port usat pel servidor és el port 67 (bootps).

Configuració DHCP

Per configurar el servei DHCP primer cal saber observar i manipular la configuració de xarxa existent, i això consisteix a saber:

  • Observar/fer la llista de la configuració de xarxa actual.
  • Comprovar l’estat del servei de xarxa.
  • Activar/desactivar el servei de xarxa.
  • Monitorar el servei i el procés del servidor.

Exemples de configuració

En GNU/Linux és molt usual que el paquet que proporciona un servei inclogui un fitxer d’exemple de configuració. El servei DHCP incorpora el fitxer d’exemple dhcpd..conf i la pàgina de manual del mateix nom.

Les tasques principals per configurar un servidor DHCP són les següents:

  • Instal·lar el programari del servidor DHCP.
  • Activar/desactivar el servei de DHCP.
  • Observar/fer la llista de la configuració actual del servidor DHCP.
  • Modificar la configuració del servidor DHCP.
  • Monitorar els logs del servei DHCP i els fitxers de registre de les concessions (leases).

Per tant, abans d’endinsar-nos en la configuració del servei és molt útil observar una configuració ja existent. Un exemple de fitxer de configuració del servei DHCP és el que es mostra a continuació:

  1. # a) opcions globals del servidor DHCP (usuals)
  2. ddns-update-style interim;
  3. ignore client-updates;
  4. # b) definició de la xarxa a la qual s'ofereix el servei DHCP
  5. subnet 192.168.0.0 netmask 255.255.255.0 {
  6. # opcions genèriques per a tots els equips de la xarxa
  7. option routers 192.168.0.1;
  8. option subnet-mask 255.255.255.0;
  9. option domain-name "domain.org";
  10. option domain-name-servers 192.168.1.1;
  11. # definició de l'interval d'ips dinàmiques a usar
  12. # i dels temps de les concessions
  13. range dynamic-bootp 192.168.0.128 192.168.0.254;
  14. default-lease-time 21600;
  15. max-lease-time 43200;
  16. # c) Opcions d'equips individuals
  17. # el servidor ns obté sempre una adreça fixa basada en MAC
  18. host ns {
  19. next-server marvin.redhat.com;
  20. hardware ethernet 12:34:56:78:AB:CD;
  21. fixed-address 207.175.42.254;
  22. }
  23. }

En aquest fitxer de configuració es pot veure que hi ha tres àmbits diferents de definició:

  1. Opcions globals en el servidor DHCP. Són opcions que indiquen al servidor la seva manera d’actuar. També són opcions generals que cal aplicar a totes les concessions que es realitzin, independentment de la xarxa o equip que siguin.
  2. Definicions i opcions de xarxa. Es defineixen tantes xarxes diferents com subxarxes ha d’atendre el servidor. Cada definició de subxarxa consta de la IP de la xarxa i la màscara corresponent. Entre claus s’indiquen totes les opcions específiques per a les concessions de les adreces IP corresponents a aquesta subxarxa. Una opció característica és indicar l’interval (o pool) d’adreces dinàmiques a usar, la porta d’enllaç predeterminada, el servidor de noms, etc.
  3. Opcions d’equips individuals. Dins d’una subxarxa es poden definir opcions per a equips individuals. Cal identificar els equips per la seva adreça MAC i, entre claus, indicar les opcions que els són específiques. Això permet assignar adreces fixes dinàmicament (equivalent al protocol BOOTP) usant les opcions de maquinari Ethernet i fixed-address.

Les opcions globals de configuració DHCP es poden redefinir amb valors diferents dins d’un bloc de xarxa concret. Dins d’un equip també es poden definir opcions amb valors diferents als definits per la xarxa o globalment. Tal com passa en els llenguatges de programació preval el valor més intern, el de host sobre el de xarxa i el de xarxa per sobre del global.

Configuració bàsica

Per fer funcionar el servidor DHCP cal configurar-lo prèviament. Per poder arrancar li cal saber a quina xarxa donarà servei i quin és l’interval d’adreces IP que pot usar dinàmicament per a les concessions als clients.

El paquet DHCP conté un fitxer d’exemple al directori /user/share/doc/dhcp*/dhcpd.conf.sample. Aquest fitxer es pot copiar a /etc/dhcpd.conf i passarà a ser la configuració bàsica del servidor DHCP. Podem veure el seu contingut fent:

  1. [root@portatil ~]# ll /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample
  2. -rw-r--r-- 1 root root 852 12 nov 2007 /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample
  3. [root@portatil ~]# cat /etc/dhcpd.conf
  4. #
  5. # DHCP Server Configuration file.
  6. # see /usr/share/doc/dhcp*/dhcpd.conf.sample
  7. #
  8. #a) opcions globals
  9. ddns-update-style interim;
  10. ignore client-updates;
  11.  
  12. #b) opcions genèriques per a una subxarxa concreta
  13. subnet 192.168.1.0 netmask 255.255.255.0 {
  14. # --- default gateway
  15. option routers 192.168.1.1;
  16. option subnet-mask 255.255.255.0;
  17. option nis-domain "domain.org";
  18. option domain-name "domain.org";
  19. option domain-name-servers 192.168.1.1;
  20. option time-offset -18000; # Eastern Standard Time
  21. range dynamic-bootp 192.168.1.128 192.168.1.254;
  22. default-lease-time 21600;
  23. max-lease-time 43200;
  24.  
  25. #c) we want the nameserver to appear at a fixed address
  26. host ns {
  27. next-server marvin.redhat.com;
  28. hardware ethernet 12:34:56:78:AB:CD;
  29. fixed-address 207.175.42.254;
  30. }
  31. }

En la configuració per defecte es poden analitzar els diversos elements que es configuren:

  • Opcions globals: indiquen al servidor que ignori les actualitzacions dels clients i el tipus de DDNS a usar (actualitzacions dinàmiques de DNS).
  • Definició de subxarxa: cal definir tants blocs de subxarxa com subxarxes atengui el servidor DHCP.
  • Opcions genèriques de subxarxa: per a una subxarxa es poden indicar opcions genèriques per als equips d’aquesta subxarxa. Evidentment poden diferir de les opcions d’altres subxarxes.
  • Les principals opcions de xarxa a descriure són el router, la màscara de xarxa, el domini, etc.
  • Les principals opcions a descriure del servei DHCP són definir l’interval d’adreces IP dinàmiques a usar pel servidor i el temps màxim de concessió d’aquestes adreces IP.
  • Per tal que un host determinat tingui sempre la mateixa adreça IP es poden fer entrades individualitzades per a hosts concrets. Els hosts s’identifiquen per la seva adreça MAC.
  • A un host concret (descrit en una entrada host) se li poden aplicar opcions individualitzades, com per exemple definir el seu nom. Les opcions individuals prevalen sobre les genèriques.

Configuració avançada

El protocol DHCP permet configuracions d’una certa complexitat. Podeu consultar la documentació de DHCP i les pàgines de manual del dimoni dhcpd i del fitxer de configuració dhcpd.conf.

Les principals característiques que s’hi descriuen són l’agrupació d’entrades en grups i classes i la possibilitat que el DHCP es comuniqui amb el DNS (actualitzacions DDNS) per crear entrades DNS quan un equip rep una configuració DHCP.

Un exemple de configuració amb opcions més avançades:

  1. ddns-update-style interim;
  2. ignore client-updates;
  3.  
  4. subnet 192.168.1.0 netmask 255.255.255.0 {
  5. # --- default gateway
  6.  
  7. option routers 192.168.1.1;
  8. option subnet-mask 255.255.255.0;
  9.  
  10. option nis-domain "domain.org";
  11. option domain-name "domain.org";
  12. option domain-name-servers192.168.1.1;
  13. option time-offset-18000;# Eastern Standard Time
  14.  
  15. range dynamic-bootp 192.168.1.128 192.168.1.254;
  16. default-lease-time 21600;
  17. max-lease-time 43200;
  18.  
  19. # we want the nameserver to appear at a fixed address
  20. host ns {
  21. next-server marvin.redhat.com;
  22. hardware ethernet 12:34:56:78:AB:CD;
  23. fixed-address 207.175.42.254;
  24. }
  25.  
  26. group {
  27. filename "Xncd19r";
  28. next-server ncd-booter;
  29.  
  30. host ncd1 { hardware ethernet 0:c0:c3:49:2b:57; }
  31. host ncd4 { hardware ethernet 0:c0:c3:80:fc:32; }
  32. host ncd8 { hardware ethernet 0:c0:c3:22:46:81; }
  33. }
  34. }
  35.  
  36. subnet 10.0.0.0 netmask 255.255.255.0 {
  37. option routers 10.0.0.254;
  38. # Unknown clients get this pool.
  39. pool {
  40. option domain-name-servers bogus.example.com;
  41. max-lease-time 300;
  42. range 10.0.0.200 10.0.0.253;
  43. allow unknown-clients;
  44. }
  45.  
  46. # Known clients get this pool.
  47. pool {
  48. option domain-name-servers ns1.example.com, ns2.example.com;
  49. max-lease-time 28800;
  50. range 10.0.0.5 10.0.0.199;
  51. deny unknown-clients;
  52. }
  53. }

Base de dades de concessions fetes pel servidor

El servidor desa en una base de dades local (de fet són fitxers de text) les concessions (leases) que realitza. D’aquesta manera en pot seguir la pista en tot moment. Generalment, les té a memòria (per permetre un accés més ràpid), però en manté una còpia a disc. Si, per exemple, el sistema o el servei es reinicia, pot saber quines són les concessions que encara estan actives (i per tant quines adreces IP no té disponibles).

Usualment el fitxer de concessions és a /var/lib/dhcpd. Podem veure’n el contingut fent:

  1. [root@portatil ~]# cat /var/lib/dhcpd/dhcpd.leases
  2. # All times in this file are in UTC (GMT), not your local timezone. This is
  3. # not a bug, so please don't ask about it. There is no portable way to
  4. # store leases in the local timezone, so please don't request this as a
  5. # feature. If this is inconvenient or confusing to you, we sincerely
  6. # apologize. Seriously, though - don't ask.
  7. # The format of this file is documented in the dhcpd.leases(5) manual page.
  8. # This lease file was written by isc-dhcp-V3.0.5-RedHat
  9.  
  10. lease 192.168.1.254 {
  11. starts 0 2008/06/29 16:03:41;
  12. ends 1 2008/06/30 04:03:41;
  13. binding state active;
  14. next binding state free;
  15. hardware ethernet 08:00:27:b2:8b:ec;
  16. client-hostname "box";
  17. }
  18. lease 192.168.1.254 {
  19. starts 0 2008/06/29 16:19:30;
  20. ends 1 2008/06/30 04:19:30;
  21. binding state active;
  22. next binding state free;
  23. hardware ethernet 08:00:27:b2:8b:ec;
  24. client-hostname "box";
  25. }
  26. lease 192.168.1.253 {
  27. starts 0 2008/06/29 16:27:16;
  28. ends 0 2008/06/29 22:27:16;
  29. binding state active;
  30. next binding state free;
  31. hardware ethernet 08:00:27:8e:72:de;
  32. }

Opcions de configuració del servidor i àmbit d'aplicació

Les opcions de configuració DHCP són múltiples i comprenen molts àmbits. Algunes permeten compatibilitat amb sistemes antics, d’altres amb altres tipus de xarxes, etc. No és imaginable que un administrador de xarxes les conegui totes a fons. Normalment farà ús d’un conjunt reduït d’opcions que serà més que suficient per administrar la majoria de xarxes.

La configuració DHCP es pot definir tant al client com al servidor, tot i que usualment es farà en el servidor. Entenem com a tasca principal la de configurar un servidor per tal de proporcionar les opcions apropiades a cada subxarxa. De totes maneres, però, un client també pot disposar d’un fitxer de configuració on es defineixen quins són els seus requeriments i com ha de realitzar el diàleg amb el servidor. Per exemple es defineixen quines opcions ha de sol·licitar, valors per defecte a determinades opcions (per si el servidor no en proporciona un valor). El client també pot definir informació que proporcionarà al servidor per tal que aquest prengui decisions dinàmicament.

Podeu fer un repàs més extens de la configuració del servidor consultant la secció d’annexos del web d’aquest mòdul.

Caldrà, doncs, entendre quins són els àmbits (scope) de definició de sentències i opcions, com s’agrupen les subxarxes i els hosts, quines són les opcions globals, com es realitzen definicions condicionals i molts altres detalls.

Àmbit de definició

Els clients es poden agrupar en diversos àmbits per tal de definir les opcions que han de rebre. El mateix servidor DHCP pot actuar de manera diferent segons sigui l’àmbit de definició.

Alguns dels conceptes a tractar són:

  • Subnets.
  • Període de concessió.
  • Adreces fixes o reservades: identificació de host.
  • PXE: Protocol d’arrencada via xarxa.
  • Àmbit d’aplicació.
  • Pool.

Subnets

El servei DHCP permet fer assignació dinàmica d’adreces IP per diferents subxarxes sense que es requereixi un servidor específic per a cada subxarxa. Fins i tot el servei es pot oferir a xarxes “llunyanes”, és a dir, que han de creuar almenys un router per accedir al servidor. En aquest cas es parla del concepte DHCP Relaying.

Per oferir el servei a una subxarxa cal conèixer l’adreça de la xarxa i la seva màscara corresponent. Per cada subxarxa el servidor pot disposar d’un o més intervals d’adreces dinàmiques de les quals obtindrà l’adreça a concedir al client. Uns exemples bàsics poden ser:

  1. # subxarxa amb un interval d'adreces dinàmiques:
  2. subnet 239.252.197.0 netmask 255.255.255.0 {
  3. range 239.252.197.10 239.252.197.250;
  4. }
  5.  
  6. # subxarxa amb dos intervals d'adreces dinàmiques:
  7. subnet 239.252.197.0 netmask 255.255.255.0 {
  8. range 239.252.197.10 239.252.197.107;
  9. range 239.252.197.113 239.252.197.250;
  10. }

Període de concessió

Les concessions d’adreces s’efectuen per períodes de temps determinats. Un cop exhaurit aquest temps, cal procedir a renegociar la concessió (que es pot renovar o cancel·lar). De fet les concessions es poden efectuar per períodes des de zero segons a un temps infinit. El temps apropiat en cada cas dependrà del tipus de client i servei que s’ofereix; és diferent un client wireless a l’aeroport que l’estació de treball del supercap executiu de la corporació.

Des del punt de vista de la configuració del servidor es poden establir dos tipus de temps, el default-lease-time i el max-lease-time. El primer permet definir el temps màxim per defecte que es concedeix als clients quan aquests no han sol·licitat cap període de temps concret. El segon estableix el temps màxim de concessió en aquesta subxarxa. Podem veure un exemple d’aquestes opcions:

  1. # el temps màxim d'una concessió són 7200 segons, a cap client se li pot concedir més temps. Si el client no ha demanat cap temps concret, se li assigna una concessió de 600 segons.
  2.  
  3. subnet 239.252.197.0 netmask 255.255.255.0 {
  4. range 239.252.197.10 239.252.197.107;
  5. default-lease-time 600;
  6. max-lease-time 7200;
  7. }

Els períodes de concessió es poden definir globalment per a totes les subxarxes a les quals es proporciona servei, però és més usual fer-ho per cada subxarxa quan aquestes tenen requeriments diferents.

Adreces reservades

A part de l’assignació dinàmica d’adreces d’interval el servidor DHCP també pot fer assignacions dinàmiques fixes. És a dir, assignar a un equip sempre la mateixa dreça IP. En aquest cas parlem d’adreça reservada. L’equip ‘consumeix’ aquesta adreça tant si està engegat com si està apagat. Per poder assignar a un host concret sempre la mateixa adreça cal identificar-lo de manera única i inequívoca. Això es pot fer mitjançant la seva adreça MAC. Un exemple pot ser:

  1. host iocserver {
  2. hardware ethernet 08:00:2b:4c:59:23;
  3. fixed-address 239.252.197.9;
  4. }

Es pot observar que l’opció hardware permet identificar el host iocserver a través de la seva adreça MAC.

PXE: protocol d'arrencada via xarxa

Molts sistemes i targetes de xarxa permeten arrencar clients de xarxa ‘tontos’. És a dir, equips que arranquen sense disposar de sistema operatiu i que el carreguen via xarxa. PXE és un protocol àmpliament utilitzar per a aquest fi. El client rep via DHCP el nom d’un fitxer que caldrà que descarregui via TFTP. Aquest fitxer acostuma a ser el sistema operatiu o el programari que ha de carregar per inicialitzar-se. L’opció DHCP que comunica el nom del fitxer a descarregar és l’opció filename.

  1. host iocserver {
  2. hardware ethernet 08:00:2b:4c:59:23;
  3. fixed-address 239.252.197.9;
  4. filename "/tftpboot/kernel_ioc.boot";
  5. }

En aquest exemple s’indica el fitxer kernel_ioc.boot per descarregar per TFTP si s’utilitza un protocol d’arrencada via xarxa com el PXE.

Opcions generals

El servei DHCP proveeix el client no només de l’adreça IP, màscara i gateway, sinó de molts altres paràmetres de configuració de xarxa. Alguns d’aquests paràmetres són molt usuals (DNS, routers, etc) i d’altres molt específics (rars fins i tot).

Tots aquests paràmetres es passen al client en forma d’options. Les opcions poden ser d’àmbit general (per a totes les subxarxes), d’àmbit per a una subxarxa i d’àmbit concret d’un sol host. L’ordre de precedència és de l’àmbit més concret al més general. Un exemple seria:

Per saber més de les opcions específiques es pot consultar la pàgina del manual dhcp-options(5) en un sistema GNU/Linux.

  1. subnet 239.252.197.0 netmask 255.255.255.0 {
  2. range 239.252.197.10 239.252.197.250;
  3. default-lease-time 600
  4. max-lease-time 7200;
  5. option subnet-mask 255.255.255.0;
  6. option broadcast-address 239.252.197.255;
  7. option routers 239.252.197.1;
  8. option domain-name-servers 239.252.197.2, 239.252.197.3;
  9. option domain-name "isc.org";
  10.  
  11. host iocserver {
  12. hardware ethernet 08:00:2b:4c:59:23;
  13. fixed-address 239.252.197.9;
  14. filename "/tftpboot/kernel_ioc.boot";
  15. option domain-name-servers 192.5.5.1;
  16. option domain-name "vix.com";
  17. }
  18. }

En l’exemple anterior s’observa que es defineixen les opcions subnetmask, broadcast-address, routers, domain-name-servers i domain-name per a tots els equips de la subxarxa 239.252.197.0/24. Hi ha dues opcions, però, que es redefineixen amb valors diferents per al host iocserver. Són les opcions domain-name-servers i domain-name.

Àmbit d'aplicació: subnet

Les topologies de xarxa s’estructuren usualment en subxarxes, el mateix passa en la configuració del servidor DHCP. Usualment els clients s’agrupen en la subxarxa a la qual pertanyen. S’utilitza la sentència subnet per definir les opcions d’una subxarxa concreta. Si els clients de la subxarxa han de rebre adreces dinàmiques d’interval, cal com a mínim una sentència range.

De vegades convé agrupar subxarxes diferents en un sol bloc d’opcions de configuració. Això passa per exemple quan una sola xarxa física que es vol tractar de la mateixa manera tota ella està dividida en dues subxarxes lògiques. La sentència shared-network s’utilitza en aquestes ocasions.

Les sentències d’àmbit d’aplicació més usuals són subnet i host, que permeten identificar una subxarxa i un host concret respectivament.

Les subxarxes es poden agrupar en shared-network, els clients es poden agrupar usant la sentència group.

Les opcions es poden definir en funció de determinats requisits que compleixi el client mitjançant la sentència class i les declaracions condicionals.

Quan els clients han de rebre una adreça IP dinàmica fixa, és a dir, han de rebre sempre la mateixa IP reservada, cal especificar la sentència host. Si es vol que tots els clients siguin únicament equips identificats cal fer una sentència host per a cada equip.

A vegades es vol establir configuracions que afecten equips i xarxes que no tenen una agrupació en forma de subxarxa clara. En aquests casos es pot optar per utilitzar la sentència group. Amb aquesta sentència es poden fer agrupacions d’elements diversos als quals se’ls assignen opcions comunes.

Una altra situació que es pot produir és voler agrupar clients segons determinades condicions que acompleixi el client (no únicament segons la seva MAC). La sentència class permet agrupar opcions segons la informació que envia el mateix client. A més a més, es poden utilitzar declaracions condicionals, és a dir, segons es compleixi o no una determinada condició aplicar unes declaracions o unes altres.

El següent és un exemple de l’esquema bàsic d’un fitxer de configuració dhcp:

  1. #exemple extret de la pàgina de configuració del dhcpd.conf(5)
  2. global parameters...
  3. option domain-name "ioc.org";
  4. option domain-name-servers ns1.ioc.org, ns2.ioc.org;
  5. max-lease-time 7200;
  6. default-lease-time 600;
  7. subnet 204.254.239.0 netmask 255.255.255.224 {
  8. subnet-specific parameters...
  9. option routers 204.254.239.1;
  10. range 204.254.239.10 204.254.239.30;
  11. }
  12. subnet 204.254.239.32 netmask 255.255.255.224 {
  13. subnet-specific parameters...
  14. option routers 204.254.239.33;
  15. range 204.254.239.42 204.254.239.62;
  16. }
  17. subnet 204.254.239.64 netmask 255.255.255.224 {
  18. subnet-specific parameters...
  19. option routers 204.254.239.65;
  20. range 204.254.239.74 204.254.239.90;
  21. host grouxo {
  22. host-specific parameters...
  23. hardware ethernet 08:00:2b:4c:59:23;
  24. filename "/tftpboot/grouxo.img";
  25. fixed-address 204.254.239.91;
  26. }
  27. }
  28. group {
  29. group-specific parameters...
  30. option domain-name "marxbrothers.ioc.org";
  31. max-lease-time 120;
  32. host zappo.test.isc.org {
  33. host-specific parameters...
  34. }
  35. host harpo.test.isc.org {
  36. host-specific parameters...
  37. }
  38. }

En aquest exemple podem observar que:

  • es defineixen opcions globals per a totes les xarxes, com per exemple el nom del domini, els servidors de noms (DNS) i els temps de les concessions.
  • per a cada subxarxa es defineixen opcions específiques com poden ser per exemple l’interval d’adreces disponibles, el router de la subxarxa, etc. També es pot observar que en la subxarxa 204.254.239.64/27 es defineixen opcions particulars per al host grouxo. Concretament obté una adreça IP de l’interval fixa i un fitxer d’inicialització via TFTP.
  • finalment l’exemple mostra com es poden definir opcions per agrupacions amb la sentència group. Els hosts harpo i zappo estan agrupats i reben un nom de domini particular, diferent al definit en les opcions globals. També se’ls defineix un valor de temps màxim de concessió diferent al global.

Tot seguit es mostra un altre exemple d’estructura de configuració DHCP on s’agrupen hosts en grups d’afinitats:

  1. #exemple extret de la pàgina de configuració del dhcpd.conf(5)
  2. group {
  3. filename "osOficines";
  4. next-server ncd-booter;
  5. host ncd1 { hardware ethernet 0:c0:c3:49:2b:57; }
  6. host ncd4 { hardware ethernet 0:c0:c3:80:fc:32; }
  7. host ncd8 { hardware ethernet 0:c0:c3:22:46:81; }
  8. }
  9. group {
  10. filename "osProfessorat";
  11. next-server ncd-booter;
  12. host ncd2 { hardware ethernet 0:c0:c3:88:2d:81; }
  13. host ncd3 { hardware ethernet 0:c0:c3:00:14:11; }
  14. }
  15. group {
  16. filename "osAlumnes";
  17. next-server alumni-booter;
  18. host ncd1 { hardware ethernet 0:c0:c3:11:90:23; }
  19. host ncd4 { hardware ethernet 0:c0:c3:91:a7:8; }
  20. ...output suprimt ...
  21. host ncd80 { hardware ethernet 0:c0:c3:cc:a:8f; }
  22. }

En aquest exemple s’han creat tres grups diferents segons si es tracta d’equips de les oficines, del professorat o dels alumnes. S’ha indicat individualment equip per equip mitjançant la sentència host. A cada grup se’ls assigna les opcions que els són comunes (en lloc de fer-ho repetidament dins de cada host). En aquest cas representa que els equips són terminals “ximples” que carreguen el sistema operatiu des de la xarxa. Cada grup carrega un sistema operatiu diferent. Oficines i professors el descarreguen del mateix servidor, mentre que els alumnes ho fan d’un altre anomenat alumni-booter.

Existeix un altre mecanisme per agrupar declaracions anomenat pool i que permet fer agrupacions d’adreces. Cada agrupació d’adreces o pool pot ser tractat de manera diferent. Es poden definir diferents pool dins d’una mateixa subxarxa (subnet). Possiblement, la millor manera d’entendre com funciona és mitjançant un exemple:

  1. #exemple extret de la pàgina de configuració del dhcpd.conf(5)
  2. subnet 10.0.0.0 netmask 255.255.255.0 {
  3. option routers 10.0.0.254;
  4. # Unknown clients get this pool.
  5. pool {
  6. option domain-name-servers noexisteixo.com;
  7. max-lease-time 300;
  8. range 10.0.0.200 10.0.0.253;
  9. allow unknown-clients;
  10. }
  11. # Known clients get this pool.
  12. pool {
  13. option domain-name-servers ns1.example.com, ns2.example.com;
  14. max-lease-time 28800;
  15. range 10.0.0.5 10.0.0.199;
  16. deny unknown-clients;
  17. }
  18. }

En aquest exemple la subxarxa 10.0.0.0/8 es divideix en dos pool d’adreces per ser tractats de manera diferent. En el primer s’assignen dinàmicament adreces IP de la 200 a la 253 i s’assigna també un servidor de noms inexistent. Seran clients d’aquest pool els equips que siguin no identificats (unknown-clients). En el segon pool s’accepten només clients coneguts, als quals s’assignen adreces IP de la 5 a la 199 i dos servidors de noms existents.

Polítiques d'accés

Per saber més de les polítiques d’accés es pot consultar la pàgina de manual del dhcpd.conf(5) en un sistema GNU/Linux.

D’aquest exemple podem observar que la sentència pool permet establir polítiques d’accés (permit lists) definint quins clients poden accedir al pool i quins no. El tractament de les polítiques d’accés queda fora de l’abast d’aquest llibre, però és molt intuïtiu. La clàusula allow indica els clients amb accés i la clàusula deny els clients que no podran accedir al pool.

Class

Una de les eines més potents per agrupar clients és la sentència class. Els clients es poden tractar de manera diferent segons a quina classe pertanyin. Per determinar la classe del client es poden usar les dades que el mateix client proporciona. S’utilitzen sentències condicionals i tractament d’expressions (conditional, match statement) que s’avaluen per determinar si el client pertany o no a una classe. Per exemple es pot crear una classe amb tots aquells clients que contenen l’identificador “IOC”:

Classes

Per saber més de les classes es pot consultar la pàgina de manual del dhcpd.conf(5) en un sistema GNU/Linux. Per saber com tractar i avaluar expressions es pot consultar el manual dhcp-eval(5) en un sistema GNU/Linux. Per saber més de les opcions específiques es pot consultar el manual dhcp-options(5) en un sistema GNU/Linux.

Les classes es poden subdividir en subclasses que corresponen a valors específics que satisfan l’expressió de la classe. El tractament de les classes, condicions i expressions queda fora de l’abast d’aquest material. Per conèixer bé les classes cal conèixer el tractament d’expressions i les opcions específiques del DHCP.

Sentències i opcions de configuració

El servei DHCP es pot configurar amb multitud de sentències que es poden repassar de l’RFC 2131 i de la pàgina de manual dhcpd.conf(5). Examinem tot seguit alguna d’aquestes sentències.

Declaracions

  • Include: include “filename”; Permet carregar el fitxer indicat i processar-lo com a fitxer de configuració. És una tècnica usual per dividir la configuració en mòduls.
  • Shared-network: shared-network name { [ parameters ] [ declarations ] } Permet agrupar diverses subxarxes (subnet) en una mateixa declaració. S’utilitza quan una mateixa xarxa física es compon de diverses subxarxes lògiques.
  • Subnet: subnet subnet-number netmask netmask { [ parameters ] [ declarations ] } Permet definir opcions per a una subxarxa concreta. És la sentència més usual en les definicions de configuració del servidor dhcp.
  • Range: range [ dynamic-bootp ] low-address [ high-address]; Indica l’interval d’adreces dinàmiques disponibles per assignar. El servidor DHCP extreu les adreces dinàmiques d’aquest interval d’adreces.
  • Host: host hostname { [ parameters ] [ declarations ] } Proporciona un àmbit de definició per a un equip concret. Les opcions que es defineixen dins d’una sentència host afecten únicament l’equip indicat. Es requereix una sentència host per poder fer assignacions dinàmiques fixes (assignar sempre la mateixa adreça IP basant-se en l’adreça MAC).
  • Group: group { [ parameters ] [ declarations ] } S’utilitza per agrupar declaracions de manera que les opcions definides afectin el grup d’elements que conté. Aquests poden ser shared-networks, subnets, hosts i fins i tot altres grups.

Paràmetres

Tot seguit es mostren alguns dels paràmetres que es poden definir en el servidor DHCP.

  • authoritative authoritative; not authoritative; Indica si les respostes del servidor DHCP són autoritatives o no. Si ho són el servidor revocarà les adreces IP que ell no ha concedit.
  • ddns-update-style ddns-update-style style; Pot ser ad-hoc o interim o none. Indica el tipus de dynamyc DNS que s’utilitza.
  • default-lease-time default-lease-time time; Indica el temps per defecte de les concessions. És el temps que es concedeix quan el client no requereix un període de temps concret.
  • fixed-address fixed-address address [, address … ]; Permet assignar una o més adreces IP a un client.
  • hardware hardware hardware-type hardware-address; Indica el tipus i el valor de l’adreça Mac d’un client. Aquest mecanisme és necessari per poder identificar un client de manera única, per exemple en una clàusula host.
  • max-lease-time max-lease-time time; Indica el temps màxim per a les concessions en segons.
  • min-lease-time min-lease-time time; Indica el temps mínim que han de durar les concessions.
  • next-server next-server server-name; Indica el nom o l’adreça IP del servidor TFTP del qual el client s’ha de descarregar el fitxer d’inicialització (o boot) indicat pel paràmetre filename. Si no s’indica s’utilitza el propi servidor DHCP.

Opcions de configuració

Els clients DHCP reben del servidor la configuració de xarxa. Usualment parlem de l’adreça IP i la màscara, però de fet poden rebre gran quantitat

de paràmetres de configuració de xarxa i informació sobre diversos serveis de xarxa disponibles. El client per la seva part pot sol·licitar paràmetres concrets al servidor. L’administrador de xarxa, quan configura el servei DHCP, no ha d’especificar totes les opcions possibles (de fet són moltíssimes), sinó només aquelles que siguin necessàries per a cada client. Algunes opcions prenen valors per defecte i no cal especificar-les, d’altres no poden ser alterades pel servidor.

En aquest apartat es farà la llista de la majoria de paràmetres que corresponen a opcions globals de configuració DHCP. Alguns paràmetres són indicats pel client, d’altres pel servidor i n’hi ha que són per defecte i no es poden modificar.

  • option bootfile-name bootfile-name text; Indica el nom del fitxer que el client s’ha de descarregar per tal d’iniciar el procés d’arrancada o boot. El fitxer es descarrega via TFTP del mateix servidor o de l’indicat amb l’opció next-server. Fa la mateixa funció que la sentència filename.
  • option dhcp-lease-time dhcp-lease-time uint32; Aquesta opció permet al client demanar al servidor la concessió per a un període concret de temps.
  • option dhcp-message-type dhcp-message-type uint8; Indica el tipus de missatge DHCP que s’està enviant, tant pel client com pel servidor. Els tipus possibles són:
    • DHCPDISCOVER
    • DHCPOFFER
    • DHCPREQUEST
    • DHCPDECLINE
    • DHCPACK
    • DHCPNAK
    • DHCPRELEASE
    • DHCPINFORM
  • option domain-name domain-name text; Indica el nom de domini que el client ha d’utilitzar per fer resolucions DNS.
  • option domain-name-servers domain-name-servers ip-address [, ip-address… ]; Especifica la llista de servidors de noms de domini que el client ha d’utilitzar.
  • option host-name host-name string; Especifica el nom del client.
  • option netbios-name-servers netbios-name-servers ip-address [, ip-address…]; L’opció NetBios name server (NBNS) especifica una llista de servidors RFC 1001/1002 NBNS name servers en ordre de preferència. És a dir, indica la llista de servidors NetBios a usar pel client.
  • option nis-servers nis-servers ip-address [, ip-address… ]; Especifica una llista de servidors NIS disponibles pel client.
  • option ntp-servers ntp-servers ip-address [, ip-address… ]; Indica una llista de servidors NTP disponibles pel client.
  • option routers routers ip-address [, ip-address… ]; Especifica una llista de routers disponibles pel client en la seva pròpia subxarxa.
  • option tftp-server-name tftp-server-name text; Indica el nom del servidor TFTP.

Expressions

Una de les grans potències que proporciona DHCP és poder configurar les opcions de xarxa en funció de qui i com és el client. És a dir, en funció de la informació que proporciona el client assignar-li una o altra configuració de xarxa. Fixeu-vos que no es tracta d’entrades host estàtiques per a cada client, sinó que un mateix client tindrà una o altra configuració segons la informació que proporcioni.

Avaluar expressions

Per obtenir més informació sobre expressions DHCP i mecanismes d’avaluació cal consultar la pàgina de manual dhcp.eval(5) en un sistema GNU/Linux.

Per poder fer això cal poder avaluar expressions i condicions basades en la informació del mateix client. Existeix, doncs, tot un llenguatge per escriure expressions i avaluar-les.

El mecanisme per definir expressions és:

paràmetre = expressió ;

Un exemple que mostra com definir el paràmetre ddns-hostname (que defineix el nom del client a usar en l’actualització dinàmica de DNS) usant part de l’adreça MAC del client:

  1. ddns-hostname = binary-to-ascii (16, 8, "-", substring (hardware, 1, 6));

Es poden construir expressions similars a les dels llenguatges de programació. Per fer-ho es disposa d’estructures condicionals i de diversos tipus d’operadors. Anem a analitzar-ne uns quants:

  • Estructures condicionals (Conditional behaviour). Permeten realitzar definicions segons sigui el valor d’una opció (o d’una expressió). Utilitza les conegudes estructures if, elsif i else.
  1. #Exemple de sentència condicional en el servidor
  2. #Extret de la pàgina de manual dhcpd.eval(5)
  3. if option dhcp-user-class = "accounting" {
  4. max-lease-time 17600;
  5. option domain-name "accounting.example.org";
  6. option domain-name-servers ns1.accounting.example.org,
  7. ns2.accounting.example.org;
  8. } elsif option dhcp-user-class = "sales" {
  9. max-lease-time 17600;
  10. option domain-name "sales.example.org";
  11. option domain-name-servers ns1.sales.example.org,
  12. ns2.sales.example.org;
  13. } elsif option dhcp-user-class = "engineering" {
  14. max-lease-time 17600;
  15. option domain-name "engineering.example.org";
  16. option domain-name-servers ns1.engineering.example.org,
  17. ns2.engineering.example.org;
  18. } else {
  19. max-lease-time 600;
  20. option domain-name "misc.example.org";
  21. option domain-name-servers ns1.misc.example.org,
  22. ns2.misc.example.org;
  23. }

En aquest exemple es defineixen les opcions max-lease-time, domain-name i domain-name-servers de manera diferent segons sigui el valor de l’opció dhcp-user-class enviat pel client.

Les definicions condicionals també es poden fer en la part client. L’exemple següent mostra que si el client no ha rebut el paràmetre domain-name, ell mateix autodefineix el valor del paràmetre domain-name-servers al loopback.

Exemple de sentència condicional en el servidor

  1. #Extret de la pàgina de manual dhcpd.eval(5)
  2. if not option domain-name = "example.org" {
  3. prepend domain-name-servers 127.0.0.1;
  4. }
  • Expressions booleanes (Boolean expressions). Igual que passa en els llenguatges de programació, permeten definir expressions utilitzant els operadors booleans clàssics: =, and, or, not, exists. També els operadors known i static.
  • Expressions de tractament de text (Data expressions). Són similars a les típiques funcions de tractament de cadenes dels llenguatges de programació. Corresponen a: substring, suffix, option, config-option, hardware, packet, concat, reverse, leased-address, binary-to-ascii,encode-int, pick-first-value i host-decl-name.
  • Expressions numèriques (Numeric expressions). Les expressions numèriques realitzen la seva avaluació retornant un enter. Són exemples d’aquesta categoria: extract-int, lease-time i client-state.
  • Monitoratge (Logging). Es permeten definir expressions que s’enregistraran en els fitxers de monitoratge del sistema. És molt útil si es treballa amb definicions condicionals i expressions perquè permet fer un seguiment (com un debug) de com s’ha avaluat l’expressió o la condició.
  1. #Exemple de log
  2. #log (priority, data-expr)
  3. #Les prioritats poden ser: fatal, error, info, debug
  4. log (info, concat(hardware, hostname)

Aquest exemple generarà una entrada en el fitxer de log mostrant l’adreça Mac del client i el seu nom de host.

  • Actualitzacions DNS dinàmiques (dynamic DNS updates). El servei DHCP pot interactuar amb el servei DNS de manera que les concessions DHCP s’actualitzin automàticament en la base de dades DNS. Aquesta funció la poden fer tant els clients com els servidors DHCP. Quan parlem d’actualitzacions dinàmiques del DNS estem parlant de DDNS (dynamic domain name system). Com cal fer aquestes actualitzacions i quina informació cal posar al DNS és el que es pot personalitzar amb aquestes opcions.

Per saber més de les actualitzacions dinàmiques de DNS consulteu l’RFC 2136.

Configuració dels paràmetres de xarxa del client

Els clients de xarxa o bé tenen una configuració estàtica on es defineix cada paràmetre en el client o bé reben la configuració via DHCP. El procés de configurar un client DHCP és tan senzill com activar aquesta última opció usant algun dels mètodes adients.

La configuració dels clients DHCP consisteix en el següent:

  • Observar la configuració de xarxa actual del client.
  • Configurar el client per rebre dinàmicament una adreça IP. Es tracta d’activar/desactivar la configuració de xarxa dinàmica o estàtica.
  • Sol·licitar/renegociar una nova IP al servidor DHCP.
  • Observar/fer la llista del fitxer de registre de les concessions client rebudes.
  • Activar/desactivar el servei de xarxa en el client.

Observar la configuració de xarxa actual

L’administrador ha de tenir la precaució d’observar quina és la configuració de xarxa actual abans d’establir-ne una de nova. Si cal ha de deixar anotada la configuració anterior per tal de poder restablir-la. La configuració de xarxa bàsica consisteix en l’adreça IP, la màscara de xarxa, la porta d’enllaç per defecte i el servidor DNS a utilitzar. També s’hi pot incloure el nom de l’equip, les rutes i multitud d’altres paràmetres.

Es pot fer la llista de la configuració de les interfícies ethernet i observar les adreces IP, l’estat de les interfícies (UP o DOWN) i les rutes definides fent:

Fer la llista de les adreces MAC i IP i les dades de les interfícies

  1. [root@pc]# ip address show
  2. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
  3. link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  4. inet 127.0.0.1/8 scope host lo
  5. inet6 ::1/128 scope host
  6. valid_lft forever preferred_lft forever
  7. 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
  8. link/ether 00:17:31:15:80:7e brd ff:ff:ff:ff:ff:ff
  9. inet 192.168.1.34/24 brd 192.168.1.255 scope global eth0
  10. inet6 fe80::217:31ff:fe15:807e/64 scope link
  11. valid_lft forever preferred_lft forever
  12. 3: sit0: <NOARP> mtu 1480 qdisc noop
  13. link/sit 0.0.0.0 brd 0.0.0.0

Fer la llista de les rutes definides en el host:

  1. [root@pc]# ip route show
  2. 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.34
  3. 169.254.0.0/16 dev eth0 scope link
  4. default via 192.168.1.1 dev eth0

Si s’observen els fitxers de configuració de les interfícies de xarxa, es pot veure si els paràmetres de xarxa estan definits estàticament o dinàmicament. En la llista següent es pot veure que la interfície loopback es configura estàticament i la interfície eth0 es configura via DHCP:

  1. [root@portatil ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
  2. DEVICE=eth0
  3. ONBOOT=yes
  4. BOOTPROTO=dhcp
  5. TYPE=Ethernet
  6.  
  7. [root@portatil ~]# cat /etc/sysconfig/network-scripts/ifcfg-lo
  8. DEVICE=lo
  9. IPADDR=127.0.0.1
  10. NETMASK=255.0.0.0
  11. NETWORK=127.0.0.0
  12. # If you're having problems with gated making 127.0.0.0/8 a martian,
  13. # you can change this to something else (255.255.255.255, for example)
  14. BROADCAST=127.255.255.255
  15. ONBOOT=yes
  16. NAME=loopback

Un error usual és creure que el servei DHCP no funciona correctament quan de fet el que passa és que el client no té el servei de xarxa activat. Es pot comprovar l’estat del servei de xarxa fent:

  1. [root@portatil ~]# service NetworkManager status
  2. [root@portatil ~]# service network status
  3. Dispositius configurats:
  4. lo eth0
  5. Dispositius actius actualment:
  6. lo eth0
  7.  
  8. Activar i desactivar el servei de xarxa:
  9. [root@pc]# /etc/init.d/network stop
  10. S'està aturant la interficie eth0: [ FET ]
  11. S'està aturant la interficie loopback: [ FET ]
  12.  
  13. [root@pc]# /etc/init.d/network start
  14. S'està activant la interficie loopback: [ FET ]
  15. S'està activant la interficie eth0:
  16. S'està determinant la informació de la IP per a eth0... fet [FET]

Configurar el client com a client dinàmic

Tot equip client de xarxa necessita una configuració apropiada. Si aquesta configuració es defineix element per element en el mateix equip, s’anomena configuració estàtica. Si és així, no cal per res un servidor DHCP. És quan els clients reben la configuració de xarxa externament que parlem de configuració dinàmica i ens cal un servidor DHCP que la proporcioni.

La configuració del client es pot fer en mode text editant directament els fitxers de configuració de les interfícies de xarxa, utilitzant interfícies en mode text o utilitzant interfícies gràfiques (applets). Vegem cada un d’aquests mètodes.

Editar els fitxers de configuració

Es pot editar directament el fitxer de configuració de la interfície pertinent i establir l’opció BOOTPROTO al valor dhcp per tal d’activar el client DHCP. Si per exemple es configura la interfície eth0 seria un fitxer similar al següent:

  1. [root@portatil ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
  2. DEVICE=eth0
  3. ONBOOT=yes
  4. BOOTPROTO=dhcp
  5. TYPE=Ethernet

Menús amb interfície de text

Un altre mecanisme per activar el client DHCP és utilitzar alguna utilitat de menús en entorn de text (varien segons el sistema i n’hi ha de disponibles per Internet).

Una eina força utilitzada és la utilitat setup que es pot observar en la figura.2, que mostra una configuració de client de xarxa estàtica i es pot veure que la casella que permet activar el client DHCP està desactivada.

Figura Configuració estàtica del client DHCP

Observeu que senzill que és el procediment per activar el client de xarxa DHCP. N’hi ha prou d’activar l’opció pertinent, tal com es mostra en la figura.3.

Figura Activació del client DHCP usant menús de text

Menús en mode gràfic

En mode gràfic el sistema també proporciona mecanismes per configurar les interfícies de xarxa i establir el mode d’activació a DHCP. En la figura.4 es pot observar que la configuració de la interfície eth0 té activada l’opció per rebre la configuració de xarxa via DHCP.

Figura Activació del client DHCP usant l’entorn gràfic

Demanar una nova adreça IP

El client DHCP pot alliberar l’adreça que utilitza quan ho creu pertinent. En fer-ho el servidor anota el fi de la concessió i si es tracta d’una adreça dinàmica d’interval aquesta torna a estar disponible per assignar-la a un altre client. Quan a un client se li està acabant el temps de la concessió ha de tornar a negociar una adreça amb el servidor. De totes maneres si el client vol, pot tornar a sol·licitar-ne una en un moment o altre.

El client pot alliberar una adreça (release) que està en ús un moment o altre, pot forçar-ho fent, per exemple:

  1. [root@portatil ~]# dhclient -r
  2. Internet Systems Consortium DHCP Client V3.0.5-RedHat
  3. Copyright 2004-2006 Internet Systems Consortium.
  4. All rights reserved.
  5. For info, please visit http://www.isc.org/sw/dhcp/
  6. Listening on LPF/eth0/00:17:31:15:80:7e
  7. Sending on LPF/eth0/00:17:31:15:80:7e
  8. DHCPRELEASE on eth0 to 192.168.1.1 port 67

Per forçar el client a demanar una nova adreça per a la interfície ethernet eth0 es pot fer:

  1. [root@portatil ~]# dhclient eth0
  2. Internet Systems Consortium DHCP Client V3.0.5-RedHat
  3. Copyright 2004-2006 Internet Systems Consortium.
  4. All rights reserved.
  5. For info, please visit http://www.isc.org/sw/dhcp/
  6. Listening on LPF/eth0/00:17:31:15:80:7e
  7. Sending on LPF/eth0/00:17:31:15:80:7e
  8. Sending on Socket/fallback
  9. DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 5
  10. DHCPOFFER from 192.168.1.1
  11. DHCPREQUEST on eth0 to 255.255.255.255 port 67
  12. DHCPACK from 192.168.1.1
  13. bound to 192.168.1.34 -- renewal in 38975 seconds.

Observar el registre client de les concessions rebudes

El client DHCP porta un registre de les concessions rebudes, d’aquesta manera pot tornar a demanar una concessió abans que expiri l’actual. També pot servir per demanar al servidor preferentment una adreça IP concreta. Les concessions o leases del client es desen en un fitxer anomenat /var/lib/dhclient/dhclient.leases. Podem veure’n el contingut fent:

  1. [root@pc]# cat /var/lib/dhclient/dhclient.leases
  2. lease {
  3. interface "eth0";
  4. fixed-address 192.168.1.34;
  5. option subnet-mask 255.255.255.0;
  6. option routers 192.168.1.1;
  7. option dhcp-lease-time 86400;
  8. option dhcp-message-type 5;
  9. option domain-name-servers 80.58.61.250,80.58.61.254;
  10. option dhcp-server-identifier 192.168.1.1;
  11. option domain-name "local.lan";
  12. renew 3 2007/12/19 04:05:49;
  13. rebind 3 2007/12/19 15:12:57;
  14. expire 3 2007/12/19 18:12:57;

Comprovació del funcionament DHCP

La millor manera de comprovar el funcionament DHCP és simplement posant-lo en pràctica, és a dir, crear una xarxa amb diversos clients DHCP i un servidor que els atengui. Com es pot saber si funciona? Fàcil, mirant un a un cada client i comprovant que han rebut la configuració de xarxa correcta. El problema, però, és què fem si els clients no es configuren correctament.

Els passos més usuals a seguir per a la resolució de problemes són:

  • Comprovar que la xarxa està correctament connectada físicament, és a dir cables, connectors, interfícies, etc.
  • Mirar si existeix connectivitat entre els equips, per exemple usant una configuració estàtica. Això permetrà descartar que els problemes siguin deguts a altres causes. Si el DHCP no va és que no està configurat correctament.
  • Repassar la configuració del client i del servidor DHCP, especialment la del servidor. Es pot començar fent la configuració tan senzilla com sigui possible. Un cop funciona es pot anar avançant en la seva complexitat.
  • Examinar els fitxers de concessions, tant el del client com el del servidor, per detectar-hi anomalies.
  • Quan la comunicació client/servidor no funciona correctament i no sabem el perquè és molt útil monitorar el trànsit de xarxa mitjançant alguna eina d’anàlisi dels paquets que viatgen per la xarxa.

Centrem-nos, doncs, en la monitoratge del trànsit de xarxa per tal d’analitzar que el diàleg entre el client i el servidor és l’apropiat. Existeixen moltes eines al mercat (que podeu trobar per Internet) que fan aquesta funció. Un de les més recomanables és l’aplicació wireshark. Amb aquesta eina hem de poder observar l’intercanvi dels paquets DHCP Discover, DHCP Offer, DHCP Request i DHCP Ack que es produeix quan tot el procés DHCP funciona correctament. Si aquest intercanvi no es produeix és que existeix algun problema.

En l’apartat “El model funcional del protocol DHCP” podeu observar detalladament com és el diàleg entre el client i el servidor.

En l’apartat “Demanar una nova adreça IP” es pot observar com forçar el client a demanar una nova configuració.

En la figura.5 podeu observar una captura de trànsit DHCP feta amb Wireshark. La captura s’ha fet al servidor i el client s’ha forçat a demanar de nou una configuració de xarxa amb la utilitat dhclient.

Figura Captura d’un diàleg DHCP client/servidor

Podeu manipular vosaltres mateixos la captura del trànsit de xarxa DNS carregant el fitxer de captura del wireshark que es lliura com a material complementari. Aquest fitxer el trobareu en la secció “Annexos” del web del mòdul.

A continuació es pot observar la llista de text de les quatre trames capturades amb el wireshark que s’han exportat en format text. Això permet veure detalladament tot el diàleg DHCP.

  1. No. Time Source Destination Protocol Info
  2. 1 0.000000 0.0.0.0 255.255.255.255 DHCP DHCP Discover -
  3. Transaction ID 0x8a1327b2
  4.  
  5. Frame 1 (590 bytes on wire, 590 bytes captured)
  6. Ethernet II, Src: CadmusCo_b2:8b:ec (08:00:27:b2:8b:ec), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
  7. Internet Protocol, Src: 0.0.0.0 (0.0.0.0), Dst: 255.255.255.255 (255.255.255.255)
  8. User Datagram Protocol, Src Port: bootpc (68), Dst Port: bootps (67)
  9. Bootstrap Protocol
  10. Message type: Boot Request (1)
  11. Hardware type: Ethernet
  12. Hardware address length: 6
  13. Hops: 0
  14. Transaction ID: 0x8a1327b2
  15. Seconds elapsed: 0
  16. Bootp flags: 0x0000 (Unicast)
  17. Client IP address: 0.0.0.0 (0.0.0.0)
  18. Your (client) IP address: 0.0.0.0 (0.0.0.0)
  19. Next server IP address: 0.0.0.0 (0.0.0.0)
  20. Relay agent IP address: 0.0.0.0 (0.0.0.0)
  21. Client MAC address: CadmusCo_b2:8b:ec (08:00:27:b2:8b:ec)
  22. Server host name not given
  23. Boot file name not given
  24. Option: (t=53,l=1) DHCP Message Type = DHCP Discover
  25. Option: (t=57,l=2) Maximum DHCP Message Size = 548
  26. Option: (t=55,l=11) Parameter Request List
  27. Option: (t=12,l=4) Host Name = "box"
  28. Option: (t=51,l=4) IP Address Lease Time = 12 hours
  29. End Option
  30. Padding
  31.  
  32. No. Time Source Destination Protocol Info
  33. 2 0.000351 192.168.1.34 192.168.1.254 DHCP DHCP Offer -
  34. Transaction ID 0x8a1327b2
  35.  
  36. Frame 2 (342 bytes on wire, 342 bytes captured)
  37. Ethernet II, Src: AsustekC_15:80:7e (00:17:31:15:80:7e), Dst: CadmusCo_b2:8b:ec
  38. (08:00:27:b2:8b:ec)
  39. Internet Protocol, Src: 192.168.1.34 (192.168.1.34), Dst: 192.168.1.254 (192.168.1.254)
  40. User Datagram Protocol, Src Port: bootps (67), Dst Port: bootpc (68)
  41. Bootstrap Protocol
  42. Message type: Boot Reply (2)
  43. Hardware type: Ethernet
  44. Hardware address length: 6
  45. Hops: 0
  46. Transaction ID: 0x8a1327b2
  47. Seconds elapsed: 0
  48. Bootp flags: 0x0000 (Unicast)
  49. Client IP address: 0.0.0.0 (0.0.0.0)
  50. Your (client) IP address: 192.168.1.254 (192.168.1.254)
  51. Next server IP address: 0.0.0.0 (0.0.0.0)
  52. Relay agent IP address: 0.0.0.0 (0.0.0.0)
  53. Client MAC address: CadmusCo_b2:8b:ec (08:00:27:b2:8b:ec)
  54. Server host name not given
  55. Boot file name not given
  56. Option: (t=53,l=1) DHCP Message Type = DHCP Offer
  57. Option: (t=54,l=4) Server Identifier = 192.168.1.34
  58. Option: (t=51,l=4) IP Address Lease Time = 12 hours
  59. Option: (t=1,l=4) Subnet Mask = 255.255.255.0
  60. Option: (t=3,l=4) Router = 192.168.1.1
  61. Option: (t=6,l=4) Domain Name Server = 192.168.1.1
  62. Option: (t=15,l=11) Domain Name = "domain.org"
  63. End Option
  64. Padding
  65.  
  66. No. Time Source Destination Protocol Info
  67. 3 0.009004 0.0.0.0 255.255.255.255 DHCP DHCP Request -
  68. Transaction ID 0x8b1327b2
  69.  
  70. Frame 3 (590 bytes on wire, 590 bytes captured)
  71. Ethernet II, Src: CadmusCo_b2:8b:ec (08:00:27:b2:8b:ec), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
  72. Internet Protocol, Src: 0.0.0.0 (0.0.0.0), Dst: 255.255.255.255 (255.255.255.255)
  73. User Datagram Protocol, Src Port: bootpc (68), Dst Port: bootps (67)
  74. Bootstrap Protocol
  75. Message type: Boot Request (1)
  76. Hardware type: Ethernet
  77. Hardware address length: 6
  78. Hops: 0
  79. Transaction ID: 0x8b1327b2
  80. Seconds elapsed: 0
  81. Bootp flags: 0x0000 (Unicast)
  82. Client IP address: 0.0.0.0 (0.0.0.0)
  83. Your (client) IP address: 0.0.0.0 (0.0.0.0)
  84. Next server IP address: 0.0.0.0 (0.0.0.0)
  85. Relay agent IP address: 0.0.0.0 (0.0.0.0)
  86. Client MAC address: CadmusCo_b2:8b:ec (08:00:27:b2:8b:ec)
  87. Server host name not given
  88. Boot file name not given
  89. Option: (t=53,l=1) DHCP Message Type = DHCP Request
  90. Option: (t=57,l=2) Maximum DHCP Message Size = 548
  91. Option: (t=55,l=11) Parameter Request List
  92. Option: (t=12,l=4) Host Name = "box"
  93. Option: (t=51,l=4) IP Address Lease Time = 12 hours
  94. Option: (t=54,l=4) Server Identifier = 192.168.1.34
  95. Option: (t=50,l=4) Requested IP Address = 192.168.1.254
  96. End Option
  97. Padding
  98.  
  99. No. Time Source Destination Protocol Info
  100. 4 0.010712 192.168.1.1 255.255.255.255 DHCP DHCP NAK -
  101. Transaction ID 0x8b1327b2
  102.  
  103. Frame 4 (342 bytes on wire, 342 bytes captured)
  104. Ethernet II, Src: XaviTech_7b:ff:1d (00:01:38:7b:ff:1d), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
  105. Internet Protocol, Src: 192.168.1.1 (192.168.1.1), Dst: 255.255.255.255 (255.255.255.255)
  106. User Datagram Protocol, Src Port: bootps (67), Dst Port: bootpc (68)
  107. Bootstrap Protocol
  108. Message type: Boot Reply (2)
  109. Hardware type: Ethernet
  110. Hardware address length: 6
  111. Hops: 0
  112. Transaction ID: 0x8b1327b2
  113. Seconds elapsed: 0
  114. Bootp flags: 0x8000 (Broadcast)
  115. Client IP address: 0.0.0.0 (0.0.0.0)
  116. Your (client) IP address: 0.0.0.0 (0.0.0.0)
  117. Next server IP address: 192.168.1.1 (192.168.1.1)
  118. Relay agent IP address: 0.0.0.0 (0.0.0.0)
  119. Client MAC address: CadmusCo_b2:8b:ec (08:00:27:b2:8b:ec)
  120. Server host name not given
  121. Boot file name not given
  122. Option: (t=53,l=1) DHCP Message Type = DHCP NAK
  123. Option: (t=56,l=31) Message = "requested address not available"
  124. End Option
  125. Padding

Realitzar documentació de suport a l'usuari

Una de les facetes més ignorades en el camp de la informàtica és la confecció de manuals i documentació de suport. Com a clients molt sovint ens queixem que falta informació o que està mal redactada. Com a administradors de xarxa no trobem mai temps per anotar les coses. Mentre les tenim al cap no creiem necessari fer la documentació, quan no ho tenim al cap, ja ens és impossible fer-ho, i sovint, és just quan en faria falta haver-ho fet! Fem un repàs de la informació necessària que cal documentar, tant per a l’usuari com per a l’administrador.

Un altre exemple de captura DHCP es lliura com a material complementari. En aquesta captura hi ha dos servidors dhcp diferents en la xarxa i es poden observar paquets NACK. Aquest fitxer el trobareu en la secció “Annexos” del web del mòdul.

El client ha de saber:

  • Com contactar amb el servidor DHCP. Quin programari ha d’utilitzar i com l’ha de configurar per fer ús del servei.
  • Quina és la informació que s’obtindrà via DHCP. Cal saber visualitzar, consultar aquesta informació i saber què significa, per a què serveix.

Així doncs, la documentació de l’usuari descriurà el procés per activar el client DHCP, amb captures de pantalla que facilitin aquest procés. Cal també exemples de llista de concessions rebudes, on són i com es poden consultar aquestes concessions. La part més important és mostrar un exemple de configuració de xarxa rebuda on es detalli el significat de cada element i explicar a l’usuari com fer aquesta consulta.

Un exemple d’informació a proporcionar podria ser el següent:

L'usuari pot consultar la concessió de xarxa amb l'ordre:
C:\>ifconfig /all
Configuración IP de Windows
        Nombre del host . . . . . . . . . : nombre-29b9943f
        Sufijo DNS principal  . . . . . . : 
        Tipo de nodo. . . . . . . . . . . : híbrido
        Enrutamiento habilitado. . . . . .: No
        Proxy WINS habilitado. . . . .    : No
        Lista de búsqueda de sufijo DNS:    local.lan

Adaptador Ethernet Conexiones de red inalámbricas          :
        Estado de los medios. . . .: medios desconectados
        Descripción. . . . . . . . . . .  : Intel(R) PRO/Wireless 3945ABG Net Connection
        Dirección física. . . . . . . . . : 00-31-02-44-9F-5A

Adaptador Ethernet Conexión de área local          :
        Sufijo de conexión específica DNS : local.lan
        Descripción. . . . . . . . . . .  : Realtek RTL8168/8111 PCI-E Gigabit Ether NIC
        Dirección física. . . . . . . . . : 00-21-32-80-23-7D
        DHCP habilitado. . . . . . . . .  : No
        Autoconfiguración habilitada. . . : Sí
        Dirección IP. . . . . . . . . . . : 192.168.1.33
        Máscara de subred . . . . . . . . : 255.255.255.0
        Puerta de enlace predeterminada   : 192.168.1.1
        Servidor DHCP . . . . . . . . . . : 192.168.1.1
        Servidores DNS . . . . . . . . . .: 80.58.61.250
                                            80.58.61.254
        Concesión obtenida . . . . . . .  : jueves, 24 de septiembre de 2009 12:09:16
        Concesión expira . . . . . . . . .: jueves, 24 de septiembre de 2009 13:09:16

Els principals valors de xarxa a destacar són: Adreça IP, màscara de xarxa, el router o porta d’enllaç predeterminada, el servidor dhcp amb el qual s’ha contactat, els servidors de noms DNS que s’utilitzen i quan expira la concessió.

Instal·lació de serveis de configuració dinàmica de sistemes

DHCP

DHCP és l’acrònim de dynamic host configuration protocol, en català, protocol de configuració dinàmica d’equips.

El servei DHCP permet la configuració d’adreces IP, màscares, passarel·les per defecte i moltes altres opcions de configuració de manera totalment dinàmica.

Què fa el DHCP?

Una forma planera d’entendre el DHCP és imaginar que els equips de client en arrencar fan un crit per la xarxa i pregunten “que hi ha algú?”, “qui sóc jo?”. El servidor de DHCP els contesta proporcionant-los tota la informació necessària perquè sàpiguen qui són i com han de configurar els seus paràmetres de xarxa.

Identificació dels equips de xarxa

L’administrador de xarxa té la tasca de configurar els equips que la componen. Això significa configurar els servidors, els equips client, concentradors, encaminadors, etc. Cada equip de la xarxa s’ha d’identificar amb l’adreça IP corresponent i la màscara de xarxa, i generalment disposarà d’un camí d’accés a Internet.

Tant els usuaris com els serveis requeriran l’accés a altres equips identificant-los pel nom de domini en lloc de fer-ho per l’adreça IP, que és més difícil de recordar. Fer això equip per equip resulta una feina feixuga i repetitiva si no es disposa de serveis de xarxa que la facilitin.

El servei DHCP

El servei DHCP proporciona un mecanisme de configuració centralitzat dels equips de la xarxa. En lloc de configurar un per un els equips de xarxa amb adreces i valors estàtics, un servidor DHCP anirà assignant als equips clients els valors que els corresponguin. Aquesta assignació es fa per un període de temps finit, passat el qual caldrà renovar-se.

Avantatges DHCP

El servei DHCP té diversos avantatges:

  • Evita errors i conflictes IP.
  • Centralitza l’administració.
  • Estalvia temps.
  • Simplifica l’administració.

Els principals avantatges d’utilitzar DHCP són: d’una banda, evitar conflictes d’adreces IP (adreces repetides i adreces errònies), ja que passar equip per equip a canviar la configuració és molt més pesat i propens a l’error que fer-ho editant un sol fitxer de configuració en el servidor DHCP; i, d’altra banda, poder fer l’administració centralitzada representa un estalvi de temps i de feina.

El servei DHCP simplifica l’administració de la configuració dels equips de xarxa fent-la centralitzada, dinàmica i amb concessions per períodes de temps finits.

La concessió dinàmica d’adreces IP i altres paràmetres de configuració de xarxa es realitza per a un període de temps determinat, que varia en funció de les necessitats del client i del servidor.

Exemples d'ús del servei DHCP

Els següents són alguns exemples d’ús del servei DHCP:

  • En una biblioteca que admet connexions Wi-Fi, els clients obtindran concessions per a un temps reduït, per exemple, minuts.
  • Un usuari d’Internet que rep al seu equip de casa una adreça IP dinàmica del seu proveïdor d’accés a Internet (ISP) tindrà una concessió que segurament serà per hores.
  • En la xarxa corporativa d’una empresa que s’ha configurat dinàmicament usant DHCP, els equips rebran concessions dinàmiques per períodes de temps molt llargs, per exemple, dies.

Configuració d'un equip de xarxa

Qualsevol equip que pertany a una xarxa requereix que es configuri amb uns paràmetres mínims, que són l’adreça IP, la màscara i la porta d’enllaç per defecte. L’adreça IP identifica l’equip de manera única, i la màscara permet determinar la xarxa o subxarxa en què es troba l’equip. Amb aquests dos paràmetres n’hi ha prou per tenir connectivitat en la xarxa. Si es vol disposar d’accés fora de la xarxa pròpia (per exemple, a Internet o a la resta de la xarxa corporativa) cal definir també la porta d’enllaç predeterminada. A part de la configuració bàsica, els equips poden necessitar (i de fet ho necessiten) més paràmetres de configuració com, per exemple: el nom del host, el servidor DNS, el fitxer d’iniciació a baixar, etc.

Tot equip de xarxa necessita disposar d’una adreça IP que l’identifica de manera única a la xarxa. Cal també una màscara per poder separar de l’adreça IP quina és la part d’adreça de xarxa i quina la part d’adreça de host. Finalment, és imprescindible disposar de l’adreça de la porta d’enllaç predeterminada o passarel·la per defecte (o gateway), per disposar d’accés a xarxes externes.

Exemple de configuració de xarxa d'un equip de casa:

La majoria d’usuaris disposen a casa d’un equip (o més) connectats a un router que proporciona l’accés a Internet. Aquest equip està configurat com a client DHCP i en iniciar-se rep la configuració de xarxa del router. Podeu comprovar a casa quina configuració teniu. Una configuració d’exemple podria ser:

Dirección IP. . . . . . . . . . . : 192.168.1.33
Máscara de subred . . . . . . . . : 255.255.255.0
Puerta de enlace predeterminada   : 192.168.1.1
Servidor DHCP . . . . . . . . . . : 192.168.1.1
Servidores DNS . . . . . . . . . .: 80.58.61.250
                                    80.58.61.254

L'inconvenient de la configuració estàtica

La configuració estàtica implica configurar els equips un a un. Fins i tot encara que es tingui accés remot als equips (per Telnet o SSH), com que cal modificar la configuració de xarxa no es pot fer assegut des de l’equip de l’administrador, sinó que cal anar equip per equip a modificar la configuració.

Aquest procés de configuració cal que es faci per a cada equip de la xarxa. Fer-lo manualment implica configurar equip per equip sense cometre errades en teclejar les adreces i les màscares. Qualsevol canvi en l’estructura de la xarxa, com per exemple redefinir les subxarxes o modificar algunes adreces IP, significa tornar a configurar manualment els equips implicats. És evident que tota aquesta feinada no és agradable per a l’administrador de xarxa (i és molt avorrida!). Tant si la xarxa corporativa consta de pocs equips com de molts, cal una solució que permeti automatitzar la configuració de xarxa de cada equip de manera centralitzada.

Les opcions de configuració de xarxa es poden assignar a cada equip estàticament o es poden configurar de manera dinàmica utilitzant DHCP.

Com a administradors de xarxa, la gestió centralitzada que ens proporciona DHCP ens permet modificar la xarxa afegint, eliminant i redefinint, equips amb un cost mínim.

Tipus d'assignacions d'adreces IP

Cada equip de xarxa té assignada una adreça IP que l’identifica de manera única dins la xarxa. La composició de l’adreça IP i la màscara determina la xarxa o subxarxa a la qual pertany. A més a més, es configuren altres paràmetres de xarxa com la porta d’enllaç predeterminada, servidors DNS, etc. Això es pot configurar manualment anant equip per equip i introduint aquesta informació.

Reconfiguració d'una xarxa

Imagineu la diversió de l’administrador d’una xarxa corporativa de 1.000 equips amb adreces estàtiques quan cal reconfigurar-la en un cap de setmana!

Quan l’adreça IP i els altres paràmetres necessaris de configuració de la xarxa es configuren equip per equip, manualment, es diu que tenen IP estàtica.

Quan la configuració de xarxa d’un equip no es fa manualment i localment en l’equip sinó que es rep per mitjà d’un servidor DHCP, es diu que l’equip utilitza una IP dinàmica. Per realitzar configuracions de xarxa dinàmicament caldran un o més servidors de DHCP (a manera de redundància) que proporcionaran la configuració als equips clients (els que cal configurar). Per tant, serà una estructura client-servidor. Les adreces IP dinàmiques que rep el client les podem classificar en dues categories: assignació dinàmica d’interval i assignació fixa.

El servidor DHCP disposa d’un interval d’adreces que pot assignar als clients que demanen una adreça IP. Quan el servidor assigna una adreça qualsevol de l’interval al client (a l’atzar) es tracta d’una assignació dinàmica d’interval. El client no sap quina adreça IP tindrà i no hi ha manera de predir quina adreça se li concedirà en una futura configuració. A cada nova assignació l’adreça IP pot ser diferent.

MAC

Cada interfície de xarxa s’identifica de manera única físicament per l’adreça MAC (media acces control, adreça d’accés al medi).

Una assignació fixa es produeix quan el servidor DHCP sempre assigna la mateixa adreça al client. Per assignar sempre la mateixa adreça IP al client

cal que el servidor pugui identificar inequívocament el client (per l’adreça MAC). El servidor disposa d’una taula amb les correspondències entre les adreces MAC i les adreces IP fixes.

Quan la configuració de xarxa d’un equip es rep per mitjà d’un servidor DHCP es diu que utilitza una adreça IP dinàmica. Aquesta adreça pot variar dins d’un interval d’adreces disponibles per al servidor DHCP o pot ser fixa.

Els avantatges de disposar d’una IP fixa són que la vostra identificació a Internet (la vostra adreça IP) no varia i tothom us pot identificar sempre per la mateixa IP. Podeu proporcionar serveis a altres equips, els clients us identifiquen sempre amb la mateixa adreça sense haver de recordar en cada moment quina adreça IP teniu avui (com passa en el cas d’una IP dinàmica).

DNS dinàmic

Hi ha serveis de DNS dinàmic (DDNS) que permeten assignar un nom de domini a equips amb adreça IP dinàmica.

El protocol DHCP i els seus components

El protocol DHCP ve descrit, com la majoria de protocols de xarxa, per un document oficial anomenat RFC. Al llarg dels anys ha sofert diverses evolucions per anar-se adaptant a les necessitats de cada moment. Tot protocol implica un diàleg entre els equips que hi intervenen, ens caldrà doncs analitzar quin és i com es produeix aquest diàleg. Finalment es descriurà el significat de termes tan usuals en DHCP com intervals, exclusions, concessions i reserves.

Què són els RFC?

Els Request for Comments (RFC) són memoràndums sobre noves investigacions, innovacions i metodologies relacionades amb les tecnologies d’Internet. Quan els publica l’IETF (Internet Engineering Task Force) defineixen a escala mundial els protocols i les seves revisions. És a dir, són les publicacions oficials que descriuen els protocols.

Per trobar especificacions dels protocols d’Internet, vegeu la secció “Més informació” del web d’aquest mòdul.

Evolució del protocol DHCP

El servei DHCP és un servei del tipus client-servidor que proporciona la configuració de xarxa als clients que ho sol·liciten. Proporciona els paràmetres bàsics de xarxa com l’adreça IP, la màscara de xarxa, la porta d’enllaç i també d’altres paràmetres necessaris per a una connexió en una xarxa IP. Es tracta d’un protocol de la capa d’aplicació del model TCP/IP.

El protocol DHCP està basat en l’arquitectura de serveis client-servidor i utilitza com a transport el protocol UDP de la pila de protocols TCP/ IP. El servidor DHCP es comunica amb els clients utilitzant paquets UDP, que rep en el seu port 67 i envia al port 68 del client.

L’RFC 951 és el document base que descriu el protocol BOOTP.

La configuració dinàmica d’equips de xarxa es va iniciar amb el protocol BOOTP (BOOT strap protocol, protocol d’arrencada). Un protocol més bàsic que principalment permetia definir l’adreça IP, la màscara de xarxa i la passarel·la per defecte per al client. El protocol BOOTP (RFC 951, any 1985) és un protocol pensat per proporcionar automàticament la IP a clients de xarxa en el procés d’arrencada. Originàriament s’utilitzava per a estacions de treball sense disc que obtenien la configuració de xarxa del protocol BOOTP i també obtenien el nom d’un fitxer d’arrencada que s’havia de baixar per mitjà del TFTP, que usualment era el sistema operatiu.

RFC de DHCP

Principals RFC dedicades a DHCP:

  • RFC 2131. Març 1997. DHCP dynamic host configuration protocol.
  • RFC 2132. DHCP options.
  • RFC 3396. Encoding long options.
  • RFC 4361. No especific client identifications for dhcpv4.
  • RFC 3315. DHCPv6 dinamic host configuration protocol Ipv6.

El BOOTP va donar pas al protocol DHCP, que n’és una evolució amb moltes més prestacions. El DHCP sorgeix l’octubre del 1993 a través de l’RFC 1531. Ràpidament evoluciona per mitjà de diverses RFC, com l’RFC 1541 el mateix any 1993, que serà substituïda per l’RFC 2131 el març del 1997. Aquest document és la base del protocol DHCP actual. A grans trets, el protocol es descriu en l’RFC 2131 per a xarxes Ipv4, el conjunt d’opcions de configuració de DHCP es descriuen en l’RFC 2132, i l’especificació de DHCP per a xarxes Ipv6 és en l’RFC 3315.

El model funcional del protocol DHCP

Ports 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.

Figura 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, 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).

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.

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.

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.

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. Recordeu que el client encara no disposa d’una adreça IP vàlida, en disposarà en rebre el DHCPACK.

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 utilitzi 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.

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.

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.

Macchange

L’ordre GNU permet (mascarade) emmascarar l’adreça MAC pròpia. Compte! No feu dolenteries.

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.

Atacs al funcionament de DHCP i conflictes d'adreces IP

vei. Consisteix a inundar de peticions un servidor per tal de saturar-lo i bloquejar-ne el funcionament. Un client pot realitzar innumerables peticions DHCP discovery fingint que són clients diferents (emmascarant la seva MAC) amb la intenció d’esgotar les adreces IP disponibles del servidor o simplement amb la intenció de sobrecarregar-lo amb tantes peticions que no doni a l’abast a atendre-les o que ho faci lentament.

Un altre tipus d’atac consisteix a falsejar la informació que s’envia al client. Recordem que el client fa una sol·licitud d’IP en forma de difusió (broadcast) i la seva petició pot ser atesa per un o més servidors DHCP. Un dels servidors DHCP pot ser un atacant que intentarà proporcionar informació de configuració falsa al client. Per exemple indicant un servidor DNS també maliciós. Aquest pot falsejar les identitats de les màquines de la xarxa i, quan el client s’adreça a la seva entitat bancària, el servidor DNS en realitat li ha proporcionat una IP d’una màquina que falseja la de l’entitat bancària. Perillós, oi?

Tipus d'atacs DNS

Clients no autoritzats: accés a servidors DNS per part de clients no autoritzats. Servidors no autoritzats: servidors DNS impostors que suplanten els vertaders servidors.

Per posar remei a la inseguretat en la comunicació client-servidor DHCP, el protocol permet utilitzar mecanismes d’autenticació i xifratge. Aquests mecanismes queden fora de l’abast d’aquesta explicació.

Conflictes amb les adreces IP

Un dels principals motius per utilitzar DHCP és simplificar el procés de configuració de xarxa i minimitzar els conflictes per encavalcament d’adreces IP. Per desgràcia, això no garanteix que no es puguin produir conflictes. Per exemple, ens podem trobar en situacions en què dues màquines diferents tinguin la mateixa IP per una simple mala configuració del servidor DHCP. Un altre cas típic és el d’un client que s’ha configurat ell mateix una IP estàtica quan en la xarxa ja hi havia un equip que utilitzava la mateixa adreça IP assignada pel servidor DHCP.

Un problema habitual per als administradors poc experimentats és definir una configuració de xarxa local al client (hostname, servidor DNS, porta d’enllaç a utilitzar, etc.), però demanar l’adreça IP dinàmicament. La configuració dinàmica no és solament la IP i la màscara, sinó que el servidor DHCP pot proporcionar altres paràmetres de xarxa que sobreescriuran els que el client tenia definits localment (aquest és l’objectiu de DHCP!).

La configuració rebuda per DHCP sobreescriu la configuració local del client.

Intervals, exclusions, concessions i reserves

Els clients DHCP obtenen del servidor una configuració de xarxa. Descrivim ara alguns dels termes que tenen lloc durant aquest procés, i que formen part de la configuració DHCP.

  • Interval: anomenen interval d’adreces IP el conjunt d’adreces dinàmiques que el servidor té disponibles per assignar als clients. Les adreces IP disponibles s’agrupen per oferir-se a les diverses subxarxes que atén el servidor. Una mateixa subxarxa pot disposar de diversos intervals. Segurament s’entendrà més fàcilment amb un exemple:
subnet 140.220.191.0 netmask 255.255.255.0 {
              range 140.220.191.150 140.220.191.249;
            }

  subnet 239.252.197.0 netmask 255.255.255.0 {
              range 239.252.197.10 239.252.197.107;
              range 239.252.197.113 239.252.197.250;
            }

En l’exemple anterior s’observa que la primera subxarxa disposa d’un interval de 100 adreces dinàmiques (de la 140.220.191.150 al 250). La segona subxarxa permet assignar dinàmicament dos intervals d’adreces no correlatius.

  • Exclusions: entenem per exclusions aquelles adreces IP que no s’ofereixen dinàmicament per part del servidor. És a dir, que no formen part de cap interval.
  • Concessions: l’assignació d’una adreça IP i la resta de paràmetres de xarxa a un client per part del servidor, és una concessió (o leasse). Els clients reben les concessions per períodes de temps finits, que en finalitzar, cal renegociar. Tant el client com el servidor s’anoten les concessions, el client la que rep i el servidor les que concedeix. Quan finalitza una concessió el servidor pot decidir revocar-la o ampliar-ne la concessió.

El client tothora pot decidir renunciar a la concessió. Si el client vol allargar la concessió inicia un diàleg DHCP abreujat amb el servidor que pot acabar amb una renovació o amb la pèrdua de la concessió (sempre pot tornar a començar el procés). Tant el servidor com el client normalment miren les concessions que s’han efectuat entre ells amb anterioritat per tal de, si és possible, repetir la mateixa assignació.

  • Reserves: anomenem reserves aquelles adreces IP que s’assignen via DHCP però de manera fixa. És a dir, són adreces que s’assignen dinàmicament però sempre i únicament a un host determinat. Fixeu-vos que tot i ser una adreça dinàmica només s’utilitza si el host associat en fa ús. Si el host està apagat l’adreça no es pot usar per a altres hosts, està reservada. Un exemple podria ser:
subnet 140.220.191.0 netmask 255.255.255.0 {
       host iocserver {
           hardware ethernet 08:00:2b:4c:59:23;
           fixed-address 140.220.191.1;
       }
      range 140.220.191.150 140.220.191.249;
       }

En aquest exemple es pot veure que l’adreça 140.220.191.1 és una adreça reservada exclusivament per al host iocserver, que s’identifica mitjançant la seva adreça MAC.

DHCP un servei client/servidor

Com acostuma a passar amb els serveis client/servidor, un equip pot realitzar les dues funcions al mateix temps.

El servei DHCP és un més dels serveis de xarxa que tenen l’estructura client /servidor. Els servidors DHCP són els equips que tenen en execució el programa servidor. És el programa encarregat d’atendre les peticions dels clients i oferir-los la configuració de xarxa, tot portant el registre de les IP que concedeix i el registre de totes les accions que realitza. Els clients DHCP són aquells equips que realitzen peticions per obtenir una configuració de xarxa a un servidor DHCP.

El client DHCP

Un equip client DHCP és un equip que sol·licita la IP i altres paràmetres de configuració de xarxa a un servidor DHCP en lloc de tenir-los definits localment en l’equip.

ISP

ISP: Internet service provider o proveïdor de servei/accés a Internet. Ho són per exemple les empreses Ono, Vodafone, Jazztel, etc.

Si connecteu el vostre equip informàtic a la xarxa Internet per mitjà d’un ISP (Internet service provider o proveïdor de servei/accés a Internet), segurament rebreu una IP dinàmica del vostre proveïdor. Quan es realitzava una trucada telefònica amb mòdem i usant el protocol PPP (point to point protocol, protocol punt a punt), el proveïdor proporcionava una adreça IP dinàmica. Si utilitzeu ADSL i un encaminador o router, segurament l’encaminador us proporciona una adreça IP dinàmica privada a l’ordinador de casa. Al mateix temps, l’encaminador obté una IP dinàmica pública del proveïdor. Aquestes adreces IP dinàmiques són fixes (sempre les mateixes) o dinàmiques d’interval (pot ser qualsevol IP del conjunt d’adreces IP que té disponibles per concedir el servidor DHCP).

IP pública / IP privada

La diferència entre una IP pública i una IP privada és que la pública és visible per a tots els equips d’Internet, mentre que la privada és visible només dins de la mateixa xarxa local.

El client DHCP ha de tenir en funcionament un dimoni (daemon) encarregat de la gestió de les tasques DHCP per part del client. El programa client realitza la part de negociació encarregada al client (DHCP discovery, request) i també porta un registre de les concessions (leases) rebudes. Aquest registre és el que utilitza el client per tornar a demanar la mateixa IP que tenia anteriorment. Un cop rebuda la concessió el programa client queda “adormit”, pendent de tornar-se a executar automàticament quan calgui renegociar la concessió. Sense intervenció de l’usuari, el programa client s’activa i segueix el procediment necessari per renegociar l’adreça IP cada cop que el temps de la concessió s’exhaureix.

Configuració client

Usualment les configuracions clients es poden fer de tres maneres diferents:

  • fitxer de text: editar directament els fitxers de configuració.
  • menús en mode text: usant algun programa de menús amb interfície de text.
  • aplicació gràfica: usant una aplicació de finestres en l’entorn gràfic.

Els programes client varien d’un sistema operatiu a un altre i la manera d’executar-los també. Generalment es disposa d’un client executable en mode text o ordres i d’una interfície gràfica (GUI, graphics user interface o interfície gràfica d’usuari) per a la configuració. No cal dir que els sistemes Windows tendeixen a la configuració gràfica usant finestres i a la configuració i execució interna d’amagat de l’usuari. Normalment, en els sistemes GNU/Linux, la configuració es fa usant fitxers de text o com a opcions en l’ordre d’execució. La interfície gràfica acostuma a ser un frontal (front-end) per cridar l’ordre. Segons sigui el sistema operatiu es pot consultar el fitxer de registre de les concessions rebudes pel client, el fitxer de leasses, més o menys detalladament.

Generalment el programa client es pot configurar per definir-ne el comportament en la comunicació amb el servidor: informació a demanar, informació a proporcionar al servidor, opcions per defecte, etc.

El servidor DHCP

L’administrador de xarxa és l’encarregat de pensar la ubicació del servidor o servidors DHCP en l’estructura corporativa. Com més complicada sigui la topologia de la xarxa, més difícil en serà la gestió. Una xarxa corporativa bàsica pot disposar d’un únic servidor DHCP que ofereix els seus serveis a tots els equips de la xarxa. Els clients poden estar en una mateixa subxarxa o en diverses subxarxes, però totes amb connectivitat amb el servidor DHCP. Aquest també pot ser l’esquema d’una xarxa privada a casa, on un encaminador (el de l’ISP, per exemple) proporciona el servei DHCP a tots els ordinadors de la casa.

Si la xarxa corporativa creix i passa a tenir subxarxes segmentades amb tallafocs les unes de les altres, la configuració del servidor DHCP es complica. Si es vol continuar amb un únic servidor per a tota la xarxa, caldrà que els tallafocs (firewalls) deixin passar els paquets DHCP entre les subxarxes i el servidor. Una altra opció és posar un servidor DHCP per a cada subxarxa o grups de subxarxes. Fent-ho així, l’administració de cada servidor és més senzilla però hi ha més servidors a administrar. Una xarxa amb una casuística completa és la que té diversos servidors DHCP per a diverses parts de la xarxa i tallafocs entre clients i servidors que han de permetre el pas de paquets DHCP.

Si el servidor DHCP és l’encarregat de donar adreces IP als clients, qui li proporciona una adreça IP a ell? O bé un altre servidor DHCP (i podríem tornar a fer la mateixa pregunta indefinidament) o bé l’administrador. Usualment, en una xarxa corporativa el servidor DHCP utilitza una IP estàtica definida per l’administrador. Això li permet estar sempre disponible per als clients amb la mateixa IP i no el fa dependre d’un altre servidor extern.

Hi ha diversos programes servidors DHCP: en mode text, en mode gràfic, en mode “màgic” (no es veu què fan) i en mode Unix (tot basat en fitxers de text). Cada administrador treballa amb les seves eines preferides. Les tasques bàsiques per aprendre a utilitzar un servidor DHCP són observar/fer una llista de la configuració actual, activar/aturar el servei, modificar la configuració, monitorar els logs (registre de successos del servei) i, evidentment, saber instal·lar i desinstal·lar l’aplicació servidor.

Els fitxers de logs (successos) recullen els esdeveniments que es volen monitorar.

Com la majoria de serveis de xarxa, el servei DHCP és un servei que s’executa en segon pla en forma de dimoni. El servidor DHCP sempre està engegat escoltant en el port 67 les peticions que rep dels clients. Quan rep una petició entrant, el programa executable del servidor DHCP la processa i posa en marxa tot el mecanisme DHCP pertinent per tornar a escoltar noves peticions. De fet, el servidor sempre escolta peticions i les processa simultàniament (segons la configuració).

Els fitxers del registre del servei, on s’anoten les concessions, permeten mantenir la informació encara que el servei s’aturi o que el servidor s’apagui. En tornar a engegar es llegiran de nou els fitxers de registres per tal de saber quines són les concessions que s’havien realitzat.

Els fitxers de concessions permeten mantenir la coherència de l’assignació d’adreces IP entre aturades del servei.

Instal·lació d'un servei DHCP

El servei de xarxa DHCP està estructurat en forma de servei client / servidor; per tant, caldrà disposar del programari apropiat per fer cada un d’aquests rols. El programari que fa la funció de client usualment ja està integrat en el sistema operatiu (la part que gestiona la xarxa). És a dir, per disposar de la part client del servei DHCP normalment no cal instal·lar res, ja forma part del servei de xarxa.

Així doncs, quan parlem d’instal·lar un servei DHCP fem referència al procés d’instal·lació i configuració del programari del servidor DHCP. Evidentment també caldrà configurar els clients adequadament per fer ús d’aquest servei.

La instal·lació del programari que proporciona el servei DHCP es fa de manera molt similar (per no dir idèntica) al programari d’altres serveis de xarxa com els serveis DNS, HTTP, FTP, etc. Es tracta d’instal·lar el programari de l’aplicació servidor i fer-ne la configuració apropiada. Senzill oi?

Per fer això cal plantejar-se els passos següents:

  1. Quin programari proporciona aquest servei? Quines característiques té? Com es pot adquirir?
  2. Obtenir l’aplicació que proporciona el servei DHCP.
  3. Observar l’estat de la xarxa actual. Està el servei ja en funcionament? Existeix ja una configuració DHCP activa?
  4. Instal·lar l’aplicació servidor.
  5. Comprovar que la instal·lació s’ha efectuat correctament.
  6. Configurar el servei en el servidor i activar els clients perquè l’utilitzin.
  7. Comprovar que el servei funciona correctament.

Aplicacions servidor DHCP

Sempre que l’administrador vol posar en funcionament un nou servei de xarxa cal que primerament analitzi quines aplicacions hi ha al mercat que ofereixen aquest servei. És feina seva estudiar les característiques de les diverses aplicacions, com per exemple: avaluar-ne l’eficiència, el cost, el que en diuen els altres… La manera més fàcil de fer això és navegar per Internet, consultar les revistes especialitzades o demanar consell a un dels gurus informàtics coneguts.

Usualment l’administrador s’informa a través del seu cercador preferit, per exemple Google, i de webs com la Viquipèdia. Podeu cercar DHCP o DHCP server al Google i a la wiki (en anglès).

Usualment, però, l’administrador acaba utilitzant l’aplicació servidor DHCP que li proporciona el mateix sistema operatiu. Si utilitzeu el sistema operatiu Windows l’empresa Microsoft disposa d’una aplicació pròpia, però també en podeu trobar d’altres a Internet. Igualment si utilitzeu GNU/Linux segurament la mateixa distribució ja proporciona un servidor DHCP. De totes maneres en podeu obtenir d’altres també a Internet.

Instal·lar l'aplicació servidor

Tot seguit es descriurà el procés per instal·lar el servei DHCP en un entorn GNU/Linux. Un cop feta la instal·lació cal observar què s’ha instal·lat, quins programes executables, on són els fitxers de configuració, els de monitoratge, etc.

Els usuaris GNU/Linux poden buscar fàcilment per Internet quins paquets del client i del servidor dhcp usant eines com yum, apt-get o wget, a part dels repositoris de programari usuals o del mateix Google.

Llista de paquets rpm que contenen exactament el text dhcp:

  1. [root@portatil ~]# yum list dhcp
  2. fedora 100% |===================================================| 2.3 kB 00:00
  3. Installed Packages
  4. dhcp.i386 12:3.0.5-42.fc7 installed

Llista de paquets que contenen la cadena dhcp:

  1. [root@portatil ~]# yum list dhcp*
  2. Installed Packages
  3. dhcp.i386 12:3.0.5-42.fc7 installed
  4. dhcpv6_client.i386 0.10-44.fc7 installed
  5. Available Packages
  6. dhcp-devel.i386 12:3.0.5-42.fc7 updates
  7. dhcp-forwarder.i386 0.7-12.fc7 fedora
  8. dhcp-forwarder-sysv.i386 0.7-12.fc7 fedora
  9. dhcp-static.i386 12:3.0.5-42.fc7 updates
  10. dhcpv6.i386 0.10-44.fc7 updates

Instal·lar el paquet dhcp:

  1. # yum install dhcp

Fer la llista dels paquets dhcp instal·lats. Si el sistema ja els té instal·lats o volem comprovar-ho podem consultar els paquets instal·lats:

[root@portatil ~]# rpm -qa | grep dhcp 
libdhcp6client-0.10-44.fc7 
libdhcp4client-3.0.5-42.fc7 
dhcp-3.0.5-42.fc7 
dhcpv6_client-0.10-44.fc7 
libdhcp-1.24-6.fc7

Obtenir informació del paquet del servei dhcp instal·lat:

  1. [root@portatil ~]# rpm -qi dhcp
  2. Name : dhcp Relocations: (not relocatable)
  3. Version : 3.0.5 Vendor: Fedora Project
  4. Release : 42.fc7 Build Date: dl 12 nov 2007 17:37:56 CET
  5. Install Date: dc 23 gen 2008 19:14:18 CET Build Host: xenbuilder4.fedora.phx.redhat.com
  6. Group : System Environment/Daemons Source RPM: dhcp-3.0.5-42.fc7.src.rpm
  7. Size : 2162920 License: ISC
  8. Signature : DSA/SHA1, dl 14 gen 2008 19:35:22 CET, Key ID b44269d04f2a6fd2
  9. Packager : Fedora Project
  10. URL : http://isc.org/products/DHCP/
  11. Summary : DHCP (Dynamic Host Configuration Protocol) server and relay agent
  12. Description :
  13. El DHCP (protocol de configuració dinàmica de màquines) és un protocol
  14. que permet a dispositius individuals d'una xarxa IP obtenir la seva
  15. informació de configuració de xarxa (adreça IP, màscara de subxarxa,
  16. adreça de difusió, etc) d'un servidor DHCP. El propòsit del DHCP és
  17. fer més senzilla l'administració d'una xarxa gran. El paquet dhcp
  18. inclou el servei DHCP i l'agent de repetició de l'ISC.
  19. Per usar DHCP a la vostra xarxa, instal·leu un servei DHCP (o agent
  20. de repetició) i als clients executeu un dimoni client DHCP. El paquet
  21. dhcp proporciona servei DHCP i l'agent de repetició de l'ISC.

Observar els components del programari instal·lat

Sovint passa que els usuaris instal·len programes als ordinadors però no saben quins fitxers han instal·lat ni on són. Un administrador curiós ha de fer un repàs a tot allò que s’ha afegit de nou al sistema.

Fer la llista dels components del paquet dhcp:

  1. [root@portatil ~]# rpm -ql dhcp
  2. /etc/dhcpd.conf
  3. /etc/openldap/schema/dhcp.schema
  4. /etc/rc.d/init.d/dhcpd
  5. /etc/rc.d/init.d/dhcrelay
  6. /etc/sysconfig/dhcpd
  7. /etc/sysconfig/dhcrelay
  8. /usr/bin/omshell
  9. /usr/sbin/dhcpd
  10. /usr/sbin/dhcrelay
  11. /usr/share/doc/dhcp-3.0.5
  12. ... output suprimit ....
  13. /usr/share/doc/dhcp-3.0.5/rfc951.txt
  14. /usr/share/man/man1/omshell.1.gz
  15. ... output suprimit ...
  16. /usr/share/man/man8/dhcrelay.8.gz
  17. /var/lib/dhcpd
  18. /var/lib/dhcpd/dhcpd.leases

En funció del directori on s’ubiquen els fitxers podem intuir si són executables, de configuració o de documentació. També podem mirar de filtrar la sortida en cada cas:

Fitxers de configuració (usualment en el directori /etc):

  1. [root@portatil ~]# rpm -qc dhcp
  2. /etc/dhcpd.conf
  3. /etc/openldap/schema/dhcp.schema
  4. /etc/sysconfig/dhcpd
  5. /etc/sysconfig/dhcrelay
  6. /var/lib/dhcpd/dhcpd.leases
  7.  
  8. [root@portatil ~]# rpm -ql dhcp | grep etc
  9. /etc/dhcpd.conf
  10. /etc/openldap/schema/dhcp.schema
  11. /etc/rc.d/init.d/dhcpd
  12. /etc/rc.d/init.d/dhcrelay
  13. /etc/sysconfig/dhcpd
  14. /etc/sysconfig/dhcrelay

Fitxers de documentació:

  1. [root@portatil ~]# rpm -qd dhcp
  2. /usr/share/doc/dhcp-3.0.5/IANA-arp-parameters
  3. /usr/share/doc/dhcp-3.0.5/README
  4. /usr/share/doc/dhcp-3.0.5/README.ldap
  5. /usr/share/doc/dhcp-3.0.5/RELNOTES
  6. /usr/share/doc/dhcp-3.0.5/__fedora_contrib/3.0b1-lease-convert
  7. /usr/share/doc/dhcp-3.0.5/__fedora_contrib/dhcp.spec
  8. /usr/share/doc/dhcp-3.0.5/__fedora_contrib/dhcpd-conf-to-ldap
  9. /usr/share/doc/dhcp-3.0.5/__fedora_contrib/ms2isc/Registry.perlmodule
  10. /usr/share/doc/dhcp-3.0.5/__fedora_contrib/ms2isc/ms2isc.pl
  11. /usr/share/doc/dhcp-3.0.5/__fedora_contrib/ms2isc/readme.txt
  12. /usr/share/doc/dhcp-3.0.5/__fedora_contrib/sethostname.sh
  13. /usr/share/doc/dhcp-3.0.5/__fedora_contrib/solaris.init
  14. /usr/share/doc/dhcp-3.0.5/api+protocol
  15. /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample
  16. /usr/share/doc/dhcp-3.0.5/draft-ietf-dhc-authentication-14.txt
  17. /usr/share/doc/dhcp-3.0.5/draft-ietf-dhc-dhcp-dns-12.txt
  18. /usr/share/doc/dhcp-3.0.5/draft-ietf-dhc-failover-07.txt
  19. /usr/share/doc/dhcp-3.0.5/draft-ietf-dhc-ldap-schema-01.txt
  20. /usr/share/doc/dhcp-3.0.5/rfc1542.txt
  21. /usr/share/doc/dhcp-3.0.5/rfc2131.txt
  22. /usr/share/doc/dhcp-3.0.5/rfc2132.txt
  23. /usr/share/doc/dhcp-3.0.5/rfc2485.txt
  24. /usr/share/doc/dhcp-3.0.5/rfc2489.txt
  25. /usr/share/doc/dhcp-3.0.5/rfc951.txt
  26. /usr/share/man/man1/omshell.1.gz
  27. /usr/share/man/man5/dhcp-eval.5.gz
  28. /usr/share/man/man5/dhcp-options.5.gz
  29. /usr/share/man/man5/dhcpd.conf.5.gz
  30. /usr/share/man/man5/dhcpd.leases.5.gz
  31. /usr/share/man/man8/dhcpd.8.gz
  32. /usr/share/man/man8/dhcrelay.8.gz

Podem mirar de filtrar quins són els executables tenint en compte que usualment estaran en un directori de nom bin o sbin:

Arxius executables

En GNU/Linux els fitxers executables per l’administrador es troben usualment a i a . Els executables d’usuari normalment són a i .

  1. [root@portatil ~]# rpm -ql dhcp | grep bin
  2. /usr/bin/omshell /sbin
  3. /usr/sbin/dhcpd /usr/sbin
  4. /bin
  5. /usr/sbin/dhcrelay /usr/bin

En resum:

  • Els fitxers de documentació es troben generalment a: /usr/share/doc i a /usr/share/man.
  • Els fitxers de configuració es troben a: /etc, i a /etc/sysconfig.
  • El dimoni del servei es troba a: /usr/sbin/dhcpd.
  • El fitxer de configuració del dimoni del servei és: /etc/dhcpd.conf.
  • El fitxer de govern del servei és: /etc/rc.d/init.d/dhcpd.

Activar/desactivar el servei i nivells d'arrancada

Un cop feta la instal·lació física de l’aplicació servidor DHCP (els fitxers) cal posar-lo en marxa, engegar-lo, o comprovar que ja ho està.

Serveis de xarxa: stand alone o xinetd

En la majoria de serveis de xarxa el servidor pot funcionar com un servei per si mateix (stand alone) o pot estar configurat per funcionar dins d’un superservei de xarxa com per exemple inetd i xinetd. Si funciona en mode de servei propi és el servidor qui escolta les connexions entrants i les atén. Si s’executa dins del superservei de xarxa, aquest és qui detecta les connexions entrants i activa el dimoni del servei per tal que les atengui, un cop ateses el dimoni del servei acaba i torna a ser el superservidor de xarxa qui es queda escoltant.

En un primer moment molts serveis funcionaven en mode stand alone, però això es va mostrar poc eficient a nivell de recursos. Fixeu-vos que si es vol oferir n serveis de xarxa, cal tenir engegats els n servidors corresponents. Aquests ocupen memòria i CPU, tot i que no atenguin cap client. Estan engegats només “per si” un client els demana.

Un model més eficient és engegar un únic procés que fa la tasca de superservidor de xarxa (inetd o xinetd) i només quan es rep una petició d’un client, s’executa el servei apropiat.

Usualment els serveis que funcionen en mode xinetd disposen de fitxers de configuració lligats al xinetd. Els serveis que actuen indivudualment disposen dels fitxers de configuració propis al etc rc.dinit.d/.

Molt sovint és decisió de l’administrador configurar en quin mode de funcionament vol que treballi el servei. Per exemple el servei de pàgines web (httpd), el servei ssh i molts d’altres, funcionen individualment. Serveis més bàsics com telnet, finger, tftp, etc funcionen usualment dins del xinetd.

Primerament cal saber si el servidor instal·lat funciona en mode stand-alone o dins del superdimoni de xarxa xinetd o initd. Si existeixen fitxers de configuració dins del directori /etc/xinetd.d/<nom-servei> es tracta d’un servei dins del xinetd. Si existeixen fitxers de configuració dins del directori /etc/rc.d/init.d/<nom-servei> es tracta d’un servei stand-alone. Podem fer:

  1. [root@portatil ~]# rpm -ql dhcp | grep /etc
  2. /etc/dhcpd.conf
  3. /etc/openldap/schema/dhcp.schema
  4. /etc/rc.d/init.d/dhcpd
  5. /etc/rc.d/init.d/dhcrelay
  6. /etc/sysconfig/dhcpd
  7. /etc/sysconfig/dhcrelay

Com podem observar es tracta d’un servei stand-alone. També es pot consultar el tipus de servei amb l’ordre chkconfig i observar si surt en la llista d’un tipus o de l’altre:

  1. [root@portatil ~]# chkconfig --list | grep dhcpd
  2. dhcpd 0:apagat 1:apagat 2:apagat 3:apagat 4:apagat 5:apagat 6:apagat

Per facilitar buscar els serveis “stand-alone” podem fer:

  1. [root@portatil ~]# chkconfig --list dhcpd
  2. dhcpd 0:apagat 1:apagat 2:apagat 3:apagat 4:apagat 5:apagat 6:apagat

L’estat del servei pot ser en execució (running) o aturat (stopped). Es pot consultar l’estat amb l’opció status de l’ordre service o del mateix executable del servei:

  1. Es pot saber l'estat del servei amb l'opció status de les ordres:
  2. [root@portatil ~]# service dhcp status
  3. dhcp està aturat
  4. [root@portatil ~]# /etc/rc.d/init.d/dhcpd status
  5. dhcp està aturat

La gestió de l’estat d’un servei normalment inclou les opcions start, stop, status, restart i reload. Aquestes són les més usuals, però cada servei pot definir les que cregui oportunes. Aquests són exemples de gestió de l’estat del servei DHCP:

Es pot arrancar el servei amb l’opció start de les ordres:

  1. [root@portatil ~]# service dhcpd start
  2. S'està iniciant el servei dhcpd: [ FET ]
  3. [root@portatil ~]# /etc/rc.d/init.d/dhcpd start
  4. S'està iniciant el servei dhcpd: [ FET ]

Es pot aturar el servei amb l’opció stop de les ordres:

  1. [root@portatil ~]# service dhcpd stop
  2. S'està aturant el dhcpd: [ FET ]
  3. [root@portatil ~]# /etc/rc.d/init.d/dhcpd stop
  4. S'està aturant el servei dhcpd: [ FET ]

Es pot iniciar de nou el servei (recarregar) amb l’opció reload o restart de les ordres:

  1. [root@portatil ~]# /etc/rc.d/init.d/dhcpd restart
  2. S'està aturant el servei dhcpd: [Incorrecte]
  3. S'està iniciant el servei dhcpd: [ FET ]
  4. [root@portatil ~]# service dhcpd reload
  5. S'està aturant el servei dhcpd: [ FET ]
  6. S'està iniciant el servei dhcpd: [ FET ]

Per saber les opcions possibles d’un servei es pot fer el truc:

  1. [root@portatil ~]# service dhcpd patapum
  2. Forma d'ús: /etc/init.d/dhcpd {start|stop|restart|condrestart|status}
  3. [root@portatil ~]# /etc/rc.d/init.d/dhcpd pimpam
  4. Forma d'ús: /etc/rc.d/init.d/dhcpd {start|stop|restart|condrestart|status}

Que un servei del sistema estigui engegat no significa que en arrancar de nou el sistema torni a estar engegat. Cal comprovar que sigui així o assegurar-se de definir-ho correctament. Els serveis (usualment dimonis executables) es poden configurar per arrancar automàticament en determinats nivells d’execució. Les màquines GNU/Linux tenen 7 nivells d’execució com es pot veure del fitxer /etc/inittab:

  1. [root@portatil ~]# head -20 /etc/inittab
  2. ... output suprimit ...
  3. # Default runlevel. The runlevels used by RHS are:
  4. # 0 - halt (Do NOT set initdefault to this)
  5. # 1 - Single user mode
  6. # 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
  7. # 3 - Full multiuser mode
  8. # 4 - unused
  9. # 5 - X11
  10. # 6 - reboot (Do NOT set initdefault to this)
  11. # ... output suprimit ...

Per configurar a quins nivells es vol que s’executi un servei s’utilitza l’ordre chkconfig, que permet activar/desactivar el servei pels nivells indicats. L’exemple següent mostra l’ús d’aquesta ordre, dóna la llista de l’estat actual del servei DHCP en tots els nivells i el configura per executar-se en els nivells 3, 4 i 5:

  1. [root@portatil ~]# chkconfig --help
  2. chkconfig versió 1.3.34 - Copyright (C) 1997-2000 Red Hat, Inc.
  3. Aquest programari es pot distribuir lliurement d'acord amb els termes de la Llicència
  4. Pública General GNU.
  5. forma d'ús: chkconfig --list [nom]
  6. chkconfig --add <nom>
  7. chkconfig --del <nom>
  8. chkconfig --override <nom>
  9. chkconfig [--level <nivells>] <nom> <on|off|reset|resetpriorities>
  10. [root@portatil ~]# chkconfig --list dhcpd
  11. dhcpd 0:apagat 1:apagat 2:apagat 3:apagat 4:apagat 5:apagat 6:apagat
  12. [root@portatil ~]# chkconfig --level 345 dhcpd on
  13. [root@portatil ~]# chkconfig --list | grep dhcpd
  14. dhcpd 0:apagat 1:apagat 2:apagat 3:engegat 4:engegat 5:engegat 6:apagat

Fixeu-vos que definir els nivells d’execució no significa que el servei estigui ara mateix engegat. Significa que quan arranqui el sistema de nou s’engegarà en els nivells corresponents. Podem ara estar al nivell 5 i tenir el servei aturat perquè encara no l’hem engegat. Per exemple:

  1. [root@portatil ~]# runlevel
  2. N 5
  3. [root@portatil ~]# service dhcpd status
  4. dhcpd està aturat
  5. [root@portatil ~]# service dhcpd start
  6. S'està iniciant el servei dhcpd [ FET ]

Comprovació del funcionament bàsic

Comprovar que el servidor DHCP està en funcionament és un procés ben senzill, n’hi ha prou de comprovar que el servei està engegat. Això no vol dir, en cap cas, que el servei estigui funcionant correctament. Potser el servidor està engegat però no està correctament configurat. De fet, la configuració és la part realment important de l’administració d’un servei, i també del servei DHCP.

A part de comprovar l’estat del servei (amb l’opció status), l’administrador pot assegurar-se que el dimoni del servei està en execució buscant el seu PID (process identifier o indicador de número de procés). Una altra activitat a fer és monitorar el registre d’activitats del servei (els logs). Tot el trànsit DHCP és trànsit de xarxa TCP/IP; per tant també es pot observar l’estat dels ports i analitzar el trànsit que s’hi produeix.

Comprovació DHCP

L’administrador pot verificar el funcionament del servidor DHCP observant:

  • l’estat del servei (on, off)
  • el PID del servei (ha d’estar running).
  • el registre de logs.
  • monitorar el trànsit de xarxa amb una eina tipus wireshark.
  • l’estat dels ports.

Tot procés en el sistema té un identificador de procés. El PID dels serveis usualment es desen en el sistema de fitxers (al directori /var/run) en forma de fitxer que conté un valor numèric (en text) corresponent al PID del procés. Amb el servei en marxa sempre es pot observar el PID del servidor amb:

  1. [root@portatil ~]# ps ax | grep dhcp
  2. 3610 ? Ss 0:00 /usr/sbin/dhcpd
  3. [root@portatil ~]# service dhcpd status
  4. dhcpd (pid 3610) s'està executant...
  5. [root@portatil ~]# ll /var/run/dhcpd.pid
  6. -rw-r--r-- 1 root root 5 29 jun 14:17 /var/run/dhcpd.pid
  7. [root@portatil ~]# cat /var/run/dhcpd.pid
  8. 3610

Un cop iniciat el servei es crea un fitxer de bloqueig o lock amb el nom del servei per evitar iniciar-ne una altra instància. Els fitxers de lock usualment es troben a /var/lock i són un simple fitxer de text buit on la seva pròpia existència ja marca que el servei està en marxa. En parar el servei el fitxer s’elimina. Podem observar això fent:

  1. [root@portatil ~]# cat /var/lock/subsys/dhcpd
  2. [root@portatil ~]# ll /var/lock/subsys/dhcpd
  3. -rw-r--r-- 1 root root 0 1 jun 18:26 /var/lock/subsys/dhhcpd

Tots els serveis del sistema normalment es monitoren anotant en fitxers de text un registre de totes les accions que realitzen, són els fitxers coneguts com a fitxers de log. Tant es pot utilitzar un fitxer genèric pel sistema com un fitxer independent per a un servei determinat. El servidor DHCP utilitza el fitxer de monitoratge estàndard /var/log/messages. En aquest fitxer s’enregistra cada cop que el servei s’engega i s’atura.

  1. [root@portatil ~]# cat /var/log/messages | grep dhcp
  2. Jun 29 14:16:53 portatil yum: Installed: dhcp - 12:3.0.5-42.fc7.i386
  3. Jun 29 14:17:33 portatil dhcpd: Internet Systems Consortium DHCP Server V3.0.5-RedHat
  4. Jun 29 14:17:33 portatil dhcpd: Copyright 2004-2006 Internet Systems Consortium.
  5. Jun 29 14:17:33 portatil dhcpd: All rights reserved.
  6. Jun 29 14:17:33 portatil dhcpd: For info, please visit http://www.isc.org/sw/dhcp/
  7. Jun 29 14:17:33 portatil dhcpd: WARNING: Host declarations are global. They are not limited
  8. to the scope you declared them in.
  9. Jun 29 14:17:33 portatil dhcpd: Wrote 0 deleted host decls to leases file.
  10. Jun 29 14:17:33 portatil dhcpd: Wrote 0 new dynamic host decls to leases file.
  11. Jun 29 14:17:33 portatil dhcpd: Wrote 0 leases to leases file.
  12. Jun 29 14:17:33 portatil dhcpd: Listening on LPF/eth0/00:17:31:15:80:7e/192.168.1/24
  13. Jun 29 14:17:33 portatil dhcpd: Sending on LPF/eth0/00:17:31:15:80:7e/192.168.1/24

El servei DHCP desa la informació de registre de les concessions que efectua en un fitxer de leasses. Això li permet seguir la pista de les adreces IP que ha concedit i ser coherent entre diverses arrancades del mateix servidor. Es pot observar aquest fitxer a /var/lib/dhcpd/dhcpd.leases:

  1. [root@portatil ~]# ll /var/lib/dhcpd/dhcpd.leases
  2. -rw-r--r-- 1 root root 473 29 jun 14:17 /var/lib/dhcpd/dhcpd.leases
  3.  
  4. [root@portatil ~]# cat /var/lib/dhcpd/dhcpd.leases
  5. # All times in this file are in UTC (GMT), not your local timezone. This is
  6. # not a bug, so please don't ask about it. There is no portable way to
  7. # store leases in the local timezone, so please don't request this as a
  8. # feature. If this is inconvenient or confusing to you, we sincerely
  9. # apologize. Seriously, though - don't ask.
  10. # The format of this file is documented in the dhcpd.leases(5) manual page.
  11. # This lease file was written by isc-dhcp-V3.0.5-RedHat
  12. lease 192.168.1.254 {
  13. starts 0 2008/06/29 16:03:41;
  14. ends 1 2008/06/30 04:03:41;
  15. binding state active;
  16. next binding state free;
  17. hardware ethernet 08:00:27:b2:8b:ec;
  18. client-hostname "box";
  19. }
  20.  
  21. lease 192.168.1.254 {
  22. starts 0 2008/06/29 16:19:30;
  23. ends 1 2008/06/30 04:19:30;
  24. binding state active;
  25. next binding state free;
  26. hardware ethernet 08:00:27:b2:8b:ec;
  27. client-hostname "box";
  28. }

Sovint l’administrador vol comprovar que els ports que utilitza el protocol DHCP estan oberts. En GNU/Linux es pot fer una llista fàcilment dels serveis associats a cada port mitjançant el fitxer /etc/services. Algunes utilitats com nmap permeten detectar els ports oberts. Per exemple podem fer:

  1. Llista dels ports que inclouen alguna referència DHCP:
  2. [root@portatil ~]# cat /etc/services | grep DHCP
  3. bootpc 68/tcp dhcpc # BOOTP client
  4. bootpc 68/udp dhcpc
  5. dhcpv6-client 546/tcp
  6. dhcpv6-client 546/udp
  7. dhcpv6-server 547/tcp
  8. dhcpv6-server 547/udp
  9. dhcp-failover 647/tcp # DHCP Failover
  10. dhcp-failover 647/udp # DHCP Failover
  11. dhcp-failover2 847/tcp # dhcp-failover 2
  12. dhcp-failover2 847/udp # dhcp-failover 2
  13. qip-qdhcp 2490/tcp # qip_qdhcp
  14. qip-qdhcp 2490/udp # qip_qdhcp

Si ens hi fixem veurem que de fet el protocol DHCP és anomenat BOOTP. Podem fer la llista de les entrades que corresponen a aquest protocol:

  1. [root@portatil ~]# cat /etc/services | grep bootp
  2. bootps 67/tcp # BOOTP server
  3. bootps 67/udp
  4. bootpc 68/tcp dhcpc # BOOTP client
  5. bootpc 68/udp dhcpc
  6. nuts_bootp 4133/tcp # NUTS Bootp Server
  7. nuts_bootp 4133/udp # NUTS Bootp Server

Es pot observar que el port usat pel client DHCP és el port 68 (bootpc) i el port usat pel servidor és el port 67 (bootps).

Configuració DHCP

Per configurar el servei DHCP primer cal saber observar i manipular la configuració de xarxa existent, i això consisteix a saber:

  • Observar/fer la llista de la configuració de xarxa actual.
  • Comprovar l’estat del servei de xarxa.
  • Activar/desactivar el servei de xarxa.
  • Monitorar el servei i el procés del servidor.

Exemples de configuració

En GNU/Linux és molt usual que el paquet que proporciona un servei inclogui un fitxer d’exemple de configuració. El servei DHCP incorpora el fitxer d’exemple dhcpd..conf i la pàgina de manual del mateix nom.

Les tasques principals per configurar un servidor DHCP són les següents:

  • Instal·lar el programari del servidor DHCP.
  • Activar/desactivar el servei de DHCP.
  • Observar/fer la llista de la configuració actual del servidor DHCP.
  • Modificar la configuració del servidor DHCP.
  • Monitorar els logs del servei DHCP i els fitxers de registre de les concessions (leases).

Per tant, abans d’endinsar-nos en la configuració del servei és molt útil observar una configuració ja existent. Un exemple de fitxer de configuració del servei DHCP és el que es mostra a continuació:

  1. # a) opcions globals del servidor DHCP (usuals)
  2. ddns-update-style interim;
  3. ignore client-updates;
  4. # b) definició de la xarxa a la qual s'ofereix el servei DHCP
  5. subnet 192.168.0.0 netmask 255.255.255.0 {
  6. # opcions genèriques per a tots els equips de la xarxa
  7. option routers 192.168.0.1;
  8. option subnet-mask 255.255.255.0;
  9. option domain-name "domain.org";
  10. option domain-name-servers 192.168.1.1;
  11. # definició de l'interval d'ips dinàmiques a usar
  12. # i dels temps de les concessions
  13. range dynamic-bootp 192.168.0.128 192.168.0.254;
  14. default-lease-time 21600;
  15. max-lease-time 43200;
  16. # c) Opcions d'equips individuals
  17. # el servidor ns obté sempre una adreça fixa basada en MAC
  18. host ns {
  19. next-server marvin.redhat.com;
  20. hardware ethernet 12:34:56:78:AB:CD;
  21. fixed-address 207.175.42.254;
  22. }
  23. }

En aquest fitxer de configuració es pot veure que hi ha tres àmbits diferents de definició:

  1. Opcions globals en el servidor DHCP. Són opcions que indiquen al servidor la seva manera d’actuar. També són opcions generals que cal aplicar a totes les concessions que es realitzin, independentment de la xarxa o equip que siguin.
  2. Definicions i opcions de xarxa. Es defineixen tantes xarxes diferents com subxarxes ha d’atendre el servidor. Cada definició de subxarxa consta de la IP de la xarxa i la màscara corresponent. Entre claus s’indiquen totes les opcions específiques per a les concessions de les adreces IP corresponents a aquesta subxarxa. Una opció característica és indicar l’interval (o pool) d’adreces dinàmiques a usar, la porta d’enllaç predeterminada, el servidor de noms, etc.
  3. Opcions d’equips individuals. Dins d’una subxarxa es poden definir opcions per a equips individuals. Cal identificar els equips per la seva adreça MAC i, entre claus, indicar les opcions que els són específiques. Això permet assignar adreces fixes dinàmicament (equivalent al protocol BOOTP) usant les opcions de maquinari Ethernet i fixed-address.

Les opcions globals de configuració DHCP es poden redefinir amb valors diferents dins d’un bloc de xarxa concret. Dins d’un equip també es poden definir opcions amb valors diferents als definits per la xarxa o globalment. Tal com passa en els llenguatges de programació preval el valor més intern, el de host sobre el de xarxa i el de xarxa per sobre del global.

Configuració bàsica

Per fer funcionar el servidor DHCP cal configurar-lo prèviament. Per poder arrancar li cal saber a quina xarxa donarà servei i quin és l’interval d’adreces IP que pot usar dinàmicament per a les concessions als clients.

El paquet DHCP conté un fitxer d’exemple al directori /user/share/doc/dhcp*/dhcpd.conf.sample. Aquest fitxer es pot copiar a /etc/dhcpd.conf i passarà a ser la configuració bàsica del servidor DHCP. Podem veure el seu contingut fent:

  1. [root@portatil ~]# ll /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample
  2. -rw-r--r-- 1 root root 852 12 nov 2007 /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample
  3. [root@portatil ~]# cat /etc/dhcpd.conf
  4. #
  5. # DHCP Server Configuration file.
  6. # see /usr/share/doc/dhcp*/dhcpd.conf.sample
  7. #
  8. #a) opcions globals
  9. ddns-update-style interim;
  10. ignore client-updates;
  11.  
  12. #b) opcions genèriques per a una subxarxa concreta
  13. subnet 192.168.1.0 netmask 255.255.255.0 {
  14. # --- default gateway
  15. option routers 192.168.1.1;
  16. option subnet-mask 255.255.255.0;
  17. option nis-domain "domain.org";
  18. option domain-name "domain.org";
  19. option domain-name-servers 192.168.1.1;
  20. option time-offset -18000; # Eastern Standard Time
  21. range dynamic-bootp 192.168.1.128 192.168.1.254;
  22. default-lease-time 21600;
  23. max-lease-time 43200;
  24.  
  25. #c) we want the nameserver to appear at a fixed address
  26. host ns {
  27. next-server marvin.redhat.com;
  28. hardware ethernet 12:34:56:78:AB:CD;
  29. fixed-address 207.175.42.254;
  30. }
  31. }

En la configuració per defecte es poden analitzar els diversos elements que es configuren:

  • Opcions globals: indiquen al servidor que ignori les actualitzacions dels clients i el tipus de DDNS a usar (actualitzacions dinàmiques de DNS).
  • Definició de subxarxa: cal definir tants blocs de subxarxa com subxarxes atengui el servidor DHCP.
  • Opcions genèriques de subxarxa: per a una subxarxa es poden indicar opcions genèriques per als equips d’aquesta subxarxa. Evidentment poden diferir de les opcions d’altres subxarxes.
  • Les principals opcions de xarxa a descriure són el router, la màscara de xarxa, el domini, etc.
  • Les principals opcions a descriure del servei DHCP són definir l’interval d’adreces IP dinàmiques a usar pel servidor i el temps màxim de concessió d’aquestes adreces IP.
  • Per tal que un host determinat tingui sempre la mateixa adreça IP es poden fer entrades individualitzades per a hosts concrets. Els hosts s’identifiquen per la seva adreça MAC.
  • A un host concret (descrit en una entrada host) se li poden aplicar opcions individualitzades, com per exemple definir el seu nom. Les opcions individuals prevalen sobre les genèriques.

Configuració avançada

El protocol DHCP permet configuracions d’una certa complexitat. Podeu consultar la documentació de DHCP i les pàgines de manual del dimoni dhcpd i del fitxer de configuració dhcpd.conf.

Les principals característiques que s’hi descriuen són l’agrupació d’entrades en grups i classes i la possibilitat que el DHCP es comuniqui amb el DNS (actualitzacions DDNS) per crear entrades DNS quan un equip rep una configuració DHCP.

Un exemple de configuració amb opcions més avançades:

  1. ddns-update-style interim;
  2. ignore client-updates;
  3.  
  4. subnet 192.168.1.0 netmask 255.255.255.0 {
  5. # --- default gateway
  6.  
  7. option routers 192.168.1.1;
  8. option subnet-mask 255.255.255.0;
  9.  
  10. option nis-domain "domain.org";
  11. option domain-name "domain.org";
  12. option domain-name-servers192.168.1.1;
  13. option time-offset-18000;# Eastern Standard Time
  14.  
  15. range dynamic-bootp 192.168.1.128 192.168.1.254;
  16. default-lease-time 21600;
  17. max-lease-time 43200;
  18.  
  19. # we want the nameserver to appear at a fixed address
  20. host ns {
  21. next-server marvin.redhat.com;
  22. hardware ethernet 12:34:56:78:AB:CD;
  23. fixed-address 207.175.42.254;
  24. }
  25.  
  26. group {
  27. filename "Xncd19r";
  28. next-server ncd-booter;
  29.  
  30. host ncd1 { hardware ethernet 0:c0:c3:49:2b:57; }
  31. host ncd4 { hardware ethernet 0:c0:c3:80:fc:32; }
  32. host ncd8 { hardware ethernet 0:c0:c3:22:46:81; }
  33. }
  34. }
  35.  
  36. subnet 10.0.0.0 netmask 255.255.255.0 {
  37. option routers 10.0.0.254;
  38. # Unknown clients get this pool.
  39. pool {
  40. option domain-name-servers bogus.example.com;
  41. max-lease-time 300;
  42. range 10.0.0.200 10.0.0.253;
  43. allow unknown-clients;
  44. }
  45.  
  46. # Known clients get this pool.
  47. pool {
  48. option domain-name-servers ns1.example.com, ns2.example.com;
  49. max-lease-time 28800;
  50. range 10.0.0.5 10.0.0.199;
  51. deny unknown-clients;
  52. }
  53. }

Base de dades de concessions fetes pel servidor

El servidor desa en una base de dades local (de fet són fitxers de text) les concessions (leases) que realitza. D’aquesta manera en pot seguir la pista en tot moment. Generalment, les té a memòria (per permetre un accés més ràpid), però en manté una còpia a disc. Si, per exemple, el sistema o el servei es reinicia, pot saber quines són les concessions que encara estan actives (i per tant quines adreces IP no té disponibles).

Usualment el fitxer de concessions és a /var/lib/dhcpd. Podem veure’n el contingut fent:

  1. [root@portatil ~]# cat /var/lib/dhcpd/dhcpd.leases
  2. # All times in this file are in UTC (GMT), not your local timezone. This is
  3. # not a bug, so please don't ask about it. There is no portable way to
  4. # store leases in the local timezone, so please don't request this as a
  5. # feature. If this is inconvenient or confusing to you, we sincerely
  6. # apologize. Seriously, though - don't ask.
  7. # The format of this file is documented in the dhcpd.leases(5) manual page.
  8. # This lease file was written by isc-dhcp-V3.0.5-RedHat
  9.  
  10. lease 192.168.1.254 {
  11. starts 0 2008/06/29 16:03:41;
  12. ends 1 2008/06/30 04:03:41;
  13. binding state active;
  14. next binding state free;
  15. hardware ethernet 08:00:27:b2:8b:ec;
  16. client-hostname "box";
  17. }
  18. lease 192.168.1.254 {
  19. starts 0 2008/06/29 16:19:30;
  20. ends 1 2008/06/30 04:19:30;
  21. binding state active;
  22. next binding state free;
  23. hardware ethernet 08:00:27:b2:8b:ec;
  24. client-hostname "box";
  25. }
  26. lease 192.168.1.253 {
  27. starts 0 2008/06/29 16:27:16;
  28. ends 0 2008/06/29 22:27:16;
  29. binding state active;
  30. next binding state free;
  31. hardware ethernet 08:00:27:8e:72:de;
  32. }

Opcions de configuració del servidor i àmbit d'aplicació

Les opcions de configuració DHCP són múltiples i comprenen molts àmbits. Algunes permeten compatibilitat amb sistemes antics, d’altres amb altres tipus de xarxes, etc. No és imaginable que un administrador de xarxes les conegui totes a fons. Normalment farà ús d’un conjunt reduït d’opcions que serà més que suficient per administrar la majoria de xarxes.

La configuració DHCP es pot definir tant al client com al servidor, tot i que usualment es farà en el servidor. Entenem com a tasca principal la de configurar un servidor per tal de proporcionar les opcions apropiades a cada subxarxa. De totes maneres, però, un client també pot disposar d’un fitxer de configuració on es defineixen quins són els seus requeriments i com ha de realitzar el diàleg amb el servidor. Per exemple es defineixen quines opcions ha de sol·licitar, valors per defecte a determinades opcions (per si el servidor no en proporciona un valor). El client també pot definir informació que proporcionarà al servidor per tal que aquest prengui decisions dinàmicament.

Podeu fer un repàs més extens de la configuració del servidor consultant la secció d’annexos del web d’aquest mòdul.

Caldrà, doncs, entendre quins són els àmbits (scope) de definició de sentències i opcions, com s’agrupen les subxarxes i els hosts, quines són les opcions globals, com es realitzen definicions condicionals i molts altres detalls.

Àmbit de definició

Els clients es poden agrupar en diversos àmbits per tal de definir les opcions que han de rebre. El mateix servidor DHCP pot actuar de manera diferent segons sigui l’àmbit de definició.

Alguns dels conceptes a tractar són:

  • Subnets.
  • Període de concessió.
  • Adreces fixes o reservades: identificació de host.
  • PXE: Protocol d’arrencada via xarxa.
  • Àmbit d’aplicació.
  • Pool.

Subnets

El servei DHCP permet fer assignació dinàmica d’adreces IP per diferents subxarxes sense que es requereixi un servidor específic per a cada subxarxa. Fins i tot el servei es pot oferir a xarxes “llunyanes”, és a dir, que han de creuar almenys un router per accedir al servidor. En aquest cas es parla del concepte DHCP Relaying.

Per oferir el servei a una subxarxa cal conèixer l’adreça de la xarxa i la seva màscara corresponent. Per cada subxarxa el servidor pot disposar d’un o més intervals d’adreces dinàmiques de les quals obtindrà l’adreça a concedir al client. Uns exemples bàsics poden ser:

  1. # subxarxa amb un interval d'adreces dinàmiques:
  2. subnet 239.252.197.0 netmask 255.255.255.0 {
  3. range 239.252.197.10 239.252.197.250;
  4. }
  5.  
  6. # subxarxa amb dos intervals d'adreces dinàmiques:
  7. subnet 239.252.197.0 netmask 255.255.255.0 {
  8. range 239.252.197.10 239.252.197.107;
  9. range 239.252.197.113 239.252.197.250;
  10. }

Període de concessió

Les concessions d’adreces s’efectuen per períodes de temps determinats. Un cop exhaurit aquest temps, cal procedir a renegociar la concessió (que es pot renovar o cancel·lar). De fet les concessions es poden efectuar per períodes des de zero segons a un temps infinit. El temps apropiat en cada cas dependrà del tipus de client i servei que s’ofereix; és diferent un client wireless a l’aeroport que l’estació de treball del supercap executiu de la corporació.

Des del punt de vista de la configuració del servidor es poden establir dos tipus de temps, el default-lease-time i el max-lease-time. El primer permet definir el temps màxim per defecte que es concedeix als clients quan aquests no han sol·licitat cap període de temps concret. El segon estableix el temps màxim de concessió en aquesta subxarxa. Podem veure un exemple d’aquestes opcions:

  1. # el temps màxim d'una concessió són 7200 segons, a cap client se li pot concedir més temps. Si el client no ha demanat cap temps concret, se li assigna una concessió de 600 segons.
  2.  
  3. subnet 239.252.197.0 netmask 255.255.255.0 {
  4. range 239.252.197.10 239.252.197.107;
  5. default-lease-time 600;
  6. max-lease-time 7200;
  7. }

Els períodes de concessió es poden definir globalment per a totes les subxarxes a les quals es proporciona servei, però és més usual fer-ho per cada subxarxa quan aquestes tenen requeriments diferents.

Adreces reservades

A part de l’assignació dinàmica d’adreces d’interval el servidor DHCP també pot fer assignacions dinàmiques fixes. És a dir, assignar a un equip sempre la mateixa dreça IP. En aquest cas parlem d’adreça reservada. L’equip ‘consumeix’ aquesta adreça tant si està engegat com si està apagat. Per poder assignar a un host concret sempre la mateixa adreça cal identificar-lo de manera única i inequívoca. Això es pot fer mitjançant la seva adreça MAC. Un exemple pot ser:

  1. host iocserver {
  2. hardware ethernet 08:00:2b:4c:59:23;
  3. fixed-address 239.252.197.9;
  4. }

Es pot observar que l’opció hardware permet identificar el host iocserver a través de la seva adreça MAC.

PXE: protocol d'arrencada via xarxa

Molts sistemes i targetes de xarxa permeten arrencar clients de xarxa ‘tontos’. És a dir, equips que arranquen sense disposar de sistema operatiu i que el carreguen via xarxa. PXE és un protocol àmpliament utilitzar per a aquest fi. El client rep via DHCP el nom d’un fitxer que caldrà que descarregui via TFTP. Aquest fitxer acostuma a ser el sistema operatiu o el programari que ha de carregar per inicialitzar-se. L’opció DHCP que comunica el nom del fitxer a descarregar és l’opció filename.

  1. host iocserver {
  2. hardware ethernet 08:00:2b:4c:59:23;
  3. fixed-address 239.252.197.9;
  4. filename "/tftpboot/kernel_ioc.boot";
  5. }

En aquest exemple s’indica el fitxer kernel_ioc.boot per descarregar per TFTP si s’utilitza un protocol d’arrencada via xarxa com el PXE.

Opcions generals

El servei DHCP proveeix el client no només de l’adreça IP, màscara i gateway, sinó de molts altres paràmetres de configuració de xarxa. Alguns d’aquests paràmetres són molt usuals (DNS, routers, etc) i d’altres molt específics (rars fins i tot).

Tots aquests paràmetres es passen al client en forma d’options. Les opcions poden ser d’àmbit general (per a totes les subxarxes), d’àmbit per a una subxarxa i d’àmbit concret d’un sol host. L’ordre de precedència és de l’àmbit més concret al més general. Un exemple seria:

Per saber més de les opcions específiques es pot consultar la pàgina del manual dhcp-options(5) en un sistema GNU/Linux.

  1. subnet 239.252.197.0 netmask 255.255.255.0 {
  2. range 239.252.197.10 239.252.197.250;
  3. default-lease-time 600
  4. max-lease-time 7200;
  5. option subnet-mask 255.255.255.0;
  6. option broadcast-address 239.252.197.255;
  7. option routers 239.252.197.1;
  8. option domain-name-servers 239.252.197.2, 239.252.197.3;
  9. option domain-name "isc.org";
  10.  
  11. host iocserver {
  12. hardware ethernet 08:00:2b:4c:59:23;
  13. fixed-address 239.252.197.9;
  14. filename "/tftpboot/kernel_ioc.boot";
  15. option domain-name-servers 192.5.5.1;
  16. option domain-name "vix.com";
  17. }
  18. }

En l’exemple anterior s’observa que es defineixen les opcions subnetmask, broadcast-address, routers, domain-name-servers i domain-name per a tots els equips de la subxarxa 239.252.197.0/24. Hi ha dues opcions, però, que es redefineixen amb valors diferents per al host iocserver. Són les opcions domain-name-servers i domain-name.

Àmbit d'aplicació: subnet

Les topologies de xarxa s’estructuren usualment en subxarxes, el mateix passa en la configuració del servidor DHCP. Usualment els clients s’agrupen en la subxarxa a la qual pertanyen. S’utilitza la sentència subnet per definir les opcions d’una subxarxa concreta. Si els clients de la subxarxa han de rebre adreces dinàmiques d’interval, cal com a mínim una sentència range.

De vegades convé agrupar subxarxes diferents en un sol bloc d’opcions de configuració. Això passa per exemple quan una sola xarxa física que es vol tractar de la mateixa manera tota ella està dividida en dues subxarxes lògiques. La sentència shared-network s’utilitza en aquestes ocasions.

Les sentències d’àmbit d’aplicació més usuals són subnet i host, que permeten identificar una subxarxa i un host concret respectivament.

Les subxarxes es poden agrupar en shared-network, els clients es poden agrupar usant la sentència group.

Les opcions es poden definir en funció de determinats requisits que compleixi el client mitjançant la sentència class i les declaracions condicionals.

Quan els clients han de rebre una adreça IP dinàmica fixa, és a dir, han de rebre sempre la mateixa IP reservada, cal especificar la sentència host. Si es vol que tots els clients siguin únicament equips identificats cal fer una sentència host per a cada equip.

A vegades es vol establir configuracions que afecten equips i xarxes que no tenen una agrupació en forma de subxarxa clara. En aquests casos es pot optar per utilitzar la sentència group. Amb aquesta sentència es poden fer agrupacions d’elements diversos als quals se’ls assignen opcions comunes.

Una altra situació que es pot produir és voler agrupar clients segons determinades condicions que acompleixi el client (no únicament segons la seva MAC). La sentència class permet agrupar opcions segons la informació que envia el mateix client. A més a més, es poden utilitzar declaracions condicionals, és a dir, segons es compleixi o no una determinada condició aplicar unes declaracions o unes altres.

El següent és un exemple de l’esquema bàsic d’un fitxer de configuració dhcp:

  1. #exemple extret de la pàgina de configuració del dhcpd.conf(5)
  2. global parameters...
  3. option domain-name "ioc.org";
  4. option domain-name-servers ns1.ioc.org, ns2.ioc.org;
  5. max-lease-time 7200;
  6. default-lease-time 600;
  7. subnet 204.254.239.0 netmask 255.255.255.224 {
  8. subnet-specific parameters...
  9. option routers 204.254.239.1;
  10. range 204.254.239.10 204.254.239.30;
  11. }
  12. subnet 204.254.239.32 netmask 255.255.255.224 {
  13. subnet-specific parameters...
  14. option routers 204.254.239.33;
  15. range 204.254.239.42 204.254.239.62;
  16. }
  17. subnet 204.254.239.64 netmask 255.255.255.224 {
  18. subnet-specific parameters...
  19. option routers 204.254.239.65;
  20. range 204.254.239.74 204.254.239.90;
  21. host grouxo {
  22. host-specific parameters...
  23. hardware ethernet 08:00:2b:4c:59:23;
  24. filename "/tftpboot/grouxo.img";
  25. fixed-address 204.254.239.91;
  26. }
  27. }
  28. group {
  29. group-specific parameters...
  30. option domain-name "marxbrothers.ioc.org";
  31. max-lease-time 120;
  32. host zappo.test.isc.org {
  33. host-specific parameters...
  34. }
  35. host harpo.test.isc.org {
  36. host-specific parameters...
  37. }
  38. }

En aquest exemple podem observar que:

  • es defineixen opcions globals per a totes les xarxes, com per exemple el nom del domini, els servidors de noms (DNS) i els temps de les concessions.
  • per a cada subxarxa es defineixen opcions específiques com poden ser per exemple l’interval d’adreces disponibles, el router de la subxarxa, etc. També es pot observar que en la subxarxa 204.254.239.64/27 es defineixen opcions particulars per al host grouxo. Concretament obté una adreça IP de l’interval fixa i un fitxer d’inicialització via TFTP.
  • finalment l’exemple mostra com es poden definir opcions per agrupacions amb la sentència group. Els hosts harpo i zappo estan agrupats i reben un nom de domini particular, diferent al definit en les opcions globals. També se’ls defineix un valor de temps màxim de concessió diferent al global.

Tot seguit es mostra un altre exemple d’estructura de configuració DHCP on s’agrupen hosts en grups d’afinitats:

  1. #exemple extret de la pàgina de configuració del dhcpd.conf(5)
  2. group {
  3. filename "osOficines";
  4. next-server ncd-booter;
  5. host ncd1 { hardware ethernet 0:c0:c3:49:2b:57; }
  6. host ncd4 { hardware ethernet 0:c0:c3:80:fc:32; }
  7. host ncd8 { hardware ethernet 0:c0:c3:22:46:81; }
  8. }
  9. group {
  10. filename "osProfessorat";
  11. next-server ncd-booter;
  12. host ncd2 { hardware ethernet 0:c0:c3:88:2d:81; }
  13. host ncd3 { hardware ethernet 0:c0:c3:00:14:11; }
  14. }
  15. group {
  16. filename "osAlumnes";
  17. next-server alumni-booter;
  18. host ncd1 { hardware ethernet 0:c0:c3:11:90:23; }
  19. host ncd4 { hardware ethernet 0:c0:c3:91:a7:8; }
  20. ...output suprimt ...
  21. host ncd80 { hardware ethernet 0:c0:c3:cc:a:8f; }
  22. }

En aquest exemple s’han creat tres grups diferents segons si es tracta d’equips de les oficines, del professorat o dels alumnes. S’ha indicat individualment equip per equip mitjançant la sentència host. A cada grup se’ls assigna les opcions que els són comunes (en lloc de fer-ho repetidament dins de cada host). En aquest cas representa que els equips són terminals “ximples” que carreguen el sistema operatiu des de la xarxa. Cada grup carrega un sistema operatiu diferent. Oficines i professors el descarreguen del mateix servidor, mentre que els alumnes ho fan d’un altre anomenat alumni-booter.

Existeix un altre mecanisme per agrupar declaracions anomenat pool i que permet fer agrupacions d’adreces. Cada agrupació d’adreces o pool pot ser tractat de manera diferent. Es poden definir diferents pool dins d’una mateixa subxarxa (subnet). Possiblement, la millor manera d’entendre com funciona és mitjançant un exemple:

  1. #exemple extret de la pàgina de configuració del dhcpd.conf(5)
  2. subnet 10.0.0.0 netmask 255.255.255.0 {
  3. option routers 10.0.0.254;
  4. # Unknown clients get this pool.
  5. pool {
  6. option domain-name-servers noexisteixo.com;
  7. max-lease-time 300;
  8. range 10.0.0.200 10.0.0.253;
  9. allow unknown-clients;
  10. }
  11. # Known clients get this pool.
  12. pool {
  13. option domain-name-servers ns1.example.com, ns2.example.com;
  14. max-lease-time 28800;
  15. range 10.0.0.5 10.0.0.199;
  16. deny unknown-clients;
  17. }
  18. }

En aquest exemple la subxarxa 10.0.0.0/8 es divideix en dos pool d’adreces per ser tractats de manera diferent. En el primer s’assignen dinàmicament adreces IP de la 200 a la 253 i s’assigna també un servidor de noms inexistent. Seran clients d’aquest pool els equips que siguin no identificats (unknown-clients). En el segon pool s’accepten només clients coneguts, als quals s’assignen adreces IP de la 5 a la 199 i dos servidors de noms existents.

Polítiques d'accés

Per saber més de les polítiques d’accés es pot consultar la pàgina de manual del dhcpd.conf(5) en un sistema GNU/Linux.

D’aquest exemple podem observar que la sentència pool permet establir polítiques d’accés (permit lists) definint quins clients poden accedir al pool i quins no. El tractament de les polítiques d’accés queda fora de l’abast d’aquest llibre, però és molt intuïtiu. La clàusula allow indica els clients amb accés i la clàusula deny els clients que no podran accedir al pool.

Class

Una de les eines més potents per agrupar clients és la sentència class. Els clients es poden tractar de manera diferent segons a quina classe pertanyin. Per determinar la classe del client es poden usar les dades que el mateix client proporciona. S’utilitzen sentències condicionals i tractament d’expressions (conditional, match statement) que s’avaluen per determinar si el client pertany o no a una classe. Per exemple es pot crear una classe amb tots aquells clients que contenen l’identificador “IOC”:

Classes

Per saber més de les classes es pot consultar la pàgina de manual del dhcpd.conf(5) en un sistema GNU/Linux. Per saber com tractar i avaluar expressions es pot consultar el manual dhcp-eval(5) en un sistema GNU/Linux. Per saber més de les opcions específiques es pot consultar el manual dhcp-options(5) en un sistema GNU/Linux.

Les classes es poden subdividir en subclasses que corresponen a valors específics que satisfan l’expressió de la classe. El tractament de les classes, condicions i expressions queda fora de l’abast d’aquest material. Per conèixer bé les classes cal conèixer el tractament d’expressions i les opcions específiques del DHCP.

Sentències i opcions de configuració

El servei DHCP es pot configurar amb multitud de sentències que es poden repassar de l’RFC 2131 i de la pàgina de manual dhcpd.conf(5). Examinem tot seguit alguna d’aquestes sentències.

Declaracions

  • Include: include “filename”; Permet carregar el fitxer indicat i processar-lo com a fitxer de configuració. És una tècnica usual per dividir la configuració en mòduls.
  • Shared-network: shared-network name { [ parameters ] [ declarations ] } Permet agrupar diverses subxarxes (subnet) en una mateixa declaració. S’utilitza quan una mateixa xarxa física es compon de diverses subxarxes lògiques.
  • Subnet: subnet subnet-number netmask netmask { [ parameters ] [ declarations ] } Permet definir opcions per a una subxarxa concreta. És la sentència més usual en les definicions de configuració del servidor dhcp.
  • Range: range [ dynamic-bootp ] low-address [ high-address]; Indica l’interval d’adreces dinàmiques disponibles per assignar. El servidor DHCP extreu les adreces dinàmiques d’aquest interval d’adreces.
  • Host: host hostname { [ parameters ] [ declarations ] } Proporciona un àmbit de definició per a un equip concret. Les opcions que es defineixen dins d’una sentència host afecten únicament l’equip indicat. Es requereix una sentència host per poder fer assignacions dinàmiques fixes (assignar sempre la mateixa adreça IP basant-se en l’adreça MAC).
  • Group: group { [ parameters ] [ declarations ] } S’utilitza per agrupar declaracions de manera que les opcions definides afectin el grup d’elements que conté. Aquests poden ser shared-networks, subnets, hosts i fins i tot altres grups.

Paràmetres

Tot seguit es mostren alguns dels paràmetres que es poden definir en el servidor DHCP.

  • authoritative authoritative; not authoritative; Indica si les respostes del servidor DHCP són autoritatives o no. Si ho són el servidor revocarà les adreces IP que ell no ha concedit.
  • ddns-update-style ddns-update-style style; Pot ser ad-hoc o interim o none. Indica el tipus de dynamyc DNS que s’utilitza.
  • default-lease-time default-lease-time time; Indica el temps per defecte de les concessions. És el temps que es concedeix quan el client no requereix un període de temps concret.
  • fixed-address fixed-address address [, address … ]; Permet assignar una o més adreces IP a un client.
  • hardware hardware hardware-type hardware-address; Indica el tipus i el valor de l’adreça Mac d’un client. Aquest mecanisme és necessari per poder identificar un client de manera única, per exemple en una clàusula host.
  • max-lease-time max-lease-time time; Indica el temps màxim per a les concessions en segons.
  • min-lease-time min-lease-time time; Indica el temps mínim que han de durar les concessions.
  • next-server next-server server-name; Indica el nom o l’adreça IP del servidor TFTP del qual el client s’ha de descarregar el fitxer d’inicialització (o boot) indicat pel paràmetre filename. Si no s’indica s’utilitza el propi servidor DHCP.

Opcions de configuració

Els clients DHCP reben del servidor la configuració de xarxa. Usualment parlem de l’adreça IP i la màscara, però de fet poden rebre gran quantitat

de paràmetres de configuració de xarxa i informació sobre diversos serveis de xarxa disponibles. El client per la seva part pot sol·licitar paràmetres concrets al servidor. L’administrador de xarxa, quan configura el servei DHCP, no ha d’especificar totes les opcions possibles (de fet són moltíssimes), sinó només aquelles que siguin necessàries per a cada client. Algunes opcions prenen valors per defecte i no cal especificar-les, d’altres no poden ser alterades pel servidor.

En aquest apartat es farà la llista de la majoria de paràmetres que corresponen a opcions globals de configuració DHCP. Alguns paràmetres són indicats pel client, d’altres pel servidor i n’hi ha que són per defecte i no es poden modificar.

  • option bootfile-name bootfile-name text; Indica el nom del fitxer que el client s’ha de descarregar per tal d’iniciar el procés d’arrancada o boot. El fitxer es descarrega via TFTP del mateix servidor o de l’indicat amb l’opció next-server. Fa la mateixa funció que la sentència filename.
  • option dhcp-lease-time dhcp-lease-time uint32; Aquesta opció permet al client demanar al servidor la concessió per a un període concret de temps.
  • option dhcp-message-type dhcp-message-type uint8; Indica el tipus de missatge DHCP que s’està enviant, tant pel client com pel servidor. Els tipus possibles són:
    • DHCPDISCOVER
    • DHCPOFFER
    • DHCPREQUEST
    • DHCPDECLINE
    • DHCPACK
    • DHCPNAK
    • DHCPRELEASE
    • DHCPINFORM
  • option domain-name domain-name text; Indica el nom de domini que el client ha d’utilitzar per fer resolucions DNS.
  • option domain-name-servers domain-name-servers ip-address [, ip-address… ]; Especifica la llista de servidors de noms de domini que el client ha d’utilitzar.
  • option host-name host-name string; Especifica el nom del client.
  • option netbios-name-servers netbios-name-servers ip-address [, ip-address…]; L’opció NetBios name server (NBNS) especifica una llista de servidors RFC 1001/1002 NBNS name servers en ordre de preferència. És a dir, indica la llista de servidors NetBios a usar pel client.
  • option nis-servers nis-servers ip-address [, ip-address… ]; Especifica una llista de servidors NIS disponibles pel client.
  • option ntp-servers ntp-servers ip-address [, ip-address… ]; Indica una llista de servidors NTP disponibles pel client.
  • option routers routers ip-address [, ip-address… ]; Especifica una llista de routers disponibles pel client en la seva pròpia subxarxa.
  • option tftp-server-name tftp-server-name text; Indica el nom del servidor TFTP.

Expressions

Una de les grans potències que proporciona DHCP és poder configurar les opcions de xarxa en funció de qui i com és el client. És a dir, en funció de la informació que proporciona el client assignar-li una o altra configuració de xarxa. Fixeu-vos que no es tracta d’entrades host estàtiques per a cada client, sinó que un mateix client tindrà una o altra configuració segons la informació que proporcioni.

Avaluar expressions

Per obtenir més informació sobre expressions DHCP i mecanismes d’avaluació cal consultar la pàgina de manual dhcp.eval(5) en un sistema GNU/Linux.

Per poder fer això cal poder avaluar expressions i condicions basades en la informació del mateix client. Existeix, doncs, tot un llenguatge per escriure expressions i avaluar-les.

El mecanisme per definir expressions és:

paràmetre = expressió ;

Un exemple que mostra com definir el paràmetre ddns-hostname (que defineix el nom del client a usar en l’actualització dinàmica de DNS) usant part de l’adreça MAC del client:

  1. ddns-hostname = binary-to-ascii (16, 8, "-", substring (hardware, 1, 6));

Es poden construir expressions similars a les dels llenguatges de programació. Per fer-ho es disposa d’estructures condicionals i de diversos tipus d’operadors. Anem a analitzar-ne uns quants:

  • Estructures condicionals (Conditional behaviour). Permeten realitzar definicions segons sigui el valor d’una opció (o d’una expressió). Utilitza les conegudes estructures if, elsif i else.
  1. #Exemple de sentència condicional en el servidor
  2. #Extret de la pàgina de manual dhcpd.eval(5)
  3. if option dhcp-user-class = "accounting" {
  4. max-lease-time 17600;
  5. option domain-name "accounting.example.org";
  6. option domain-name-servers ns1.accounting.example.org,
  7. ns2.accounting.example.org;
  8. } elsif option dhcp-user-class = "sales" {
  9. max-lease-time 17600;
  10. option domain-name "sales.example.org";
  11. option domain-name-servers ns1.sales.example.org,
  12. ns2.sales.example.org;
  13. } elsif option dhcp-user-class = "engineering" {
  14. max-lease-time 17600;
  15. option domain-name "engineering.example.org";
  16. option domain-name-servers ns1.engineering.example.org,
  17. ns2.engineering.example.org;
  18. } else {
  19. max-lease-time 600;
  20. option domain-name "misc.example.org";
  21. option domain-name-servers ns1.misc.example.org,
  22. ns2.misc.example.org;
  23. }

En aquest exemple es defineixen les opcions max-lease-time, domain-name i domain-name-servers de manera diferent segons sigui el valor de l’opció dhcp-user-class enviat pel client.

Les definicions condicionals també es poden fer en la part client. L’exemple següent mostra que si el client no ha rebut el paràmetre domain-name, ell mateix autodefineix el valor del paràmetre domain-name-servers al loopback.

Exemple de sentència condicional en el servidor

  1. #Extret de la pàgina de manual dhcpd.eval(5)
  2. if not option domain-name = "example.org" {
  3. prepend domain-name-servers 127.0.0.1;
  4. }
  • Expressions booleanes (Boolean expressions). Igual que passa en els llenguatges de programació, permeten definir expressions utilitzant els operadors booleans clàssics: =, and, or, not, exists. També els operadors known i static.
  • Expressions de tractament de text (Data expressions). Són similars a les típiques funcions de tractament de cadenes dels llenguatges de programació. Corresponen a: substring, suffix, option, config-option, hardware, packet, concat, reverse, leased-address, binary-to-ascii,encode-int, pick-first-value i host-decl-name.
  • Expressions numèriques (Numeric expressions). Les expressions numèriques realitzen la seva avaluació retornant un enter. Són exemples d’aquesta categoria: extract-int, lease-time i client-state.
  • Monitoratge (Logging). Es permeten definir expressions que s’enregistraran en els fitxers de monitoratge del sistema. És molt útil si es treballa amb definicions condicionals i expressions perquè permet fer un seguiment (com un debug) de com s’ha avaluat l’expressió o la condició.
  1. #Exemple de log
  2. #log (priority, data-expr)
  3. #Les prioritats poden ser: fatal, error, info, debug
  4. log (info, concat(hardware, hostname)

Aquest exemple generarà una entrada en el fitxer de log mostrant l’adreça Mac del client i el seu nom de host.

  • Actualitzacions DNS dinàmiques (dynamic DNS updates). El servei DHCP pot interactuar amb el servei DNS de manera que les concessions DHCP s’actualitzin automàticament en la base de dades DNS. Aquesta funció la poden fer tant els clients com els servidors DHCP. Quan parlem d’actualitzacions dinàmiques del DNS estem parlant de DDNS (dynamic domain name system). Com cal fer aquestes actualitzacions i quina informació cal posar al DNS és el que es pot personalitzar amb aquestes opcions.

Per saber més de les actualitzacions dinàmiques de DNS consulteu l’RFC 2136.

Configuració dels paràmetres de xarxa del client

Els clients de xarxa o bé tenen una configuració estàtica on es defineix cada paràmetre en el client o bé reben la configuració via DHCP. El procés de configurar un client DHCP és tan senzill com activar aquesta última opció usant algun dels mètodes adients.

La configuració dels clients DHCP consisteix en el següent:

  • Observar la configuració de xarxa actual del client.
  • Configurar el client per rebre dinàmicament una adreça IP. Es tracta d’activar/desactivar la configuració de xarxa dinàmica o estàtica.
  • Sol·licitar/renegociar una nova IP al servidor DHCP.
  • Observar/fer la llista del fitxer de registre de les concessions client rebudes.
  • Activar/desactivar el servei de xarxa en el client.

Observar la configuració de xarxa actual

L’administrador ha de tenir la precaució d’observar quina és la configuració de xarxa actual abans d’establir-ne una de nova. Si cal ha de deixar anotada la configuració anterior per tal de poder restablir-la. La configuració de xarxa bàsica consisteix en l’adreça IP, la màscara de xarxa, la porta d’enllaç per defecte i el servidor DNS a utilitzar. També s’hi pot incloure el nom de l’equip, les rutes i multitud d’altres paràmetres.

Es pot fer la llista de la configuració de les interfícies ethernet i observar les adreces IP, l’estat de les interfícies (UP o DOWN) i les rutes definides fent:

Fer la llista de les adreces MAC i IP i les dades de les interfícies

  1. [root@pc]# ip address show
  2. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
  3. link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  4. inet 127.0.0.1/8 scope host lo
  5. inet6 ::1/128 scope host
  6. valid_lft forever preferred_lft forever
  7. 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
  8. link/ether 00:17:31:15:80:7e brd ff:ff:ff:ff:ff:ff
  9. inet 192.168.1.34/24 brd 192.168.1.255 scope global eth0
  10. inet6 fe80::217:31ff:fe15:807e/64 scope link
  11. valid_lft forever preferred_lft forever
  12. 3: sit0: <NOARP> mtu 1480 qdisc noop
  13. link/sit 0.0.0.0 brd 0.0.0.0

Fer la llista de les rutes definides en el host:

  1. [root@pc]# ip route show
  2. 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.34
  3. 169.254.0.0/16 dev eth0 scope link
  4. default via 192.168.1.1 dev eth0

Si s’observen els fitxers de configuració de les interfícies de xarxa, es pot veure si els paràmetres de xarxa estan definits estàticament o dinàmicament. En la llista següent es pot veure que la interfície loopback es configura estàticament i la interfície eth0 es configura via DHCP:

  1. [root@portatil ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
  2. DEVICE=eth0
  3. ONBOOT=yes
  4. BOOTPROTO=dhcp
  5. TYPE=Ethernet
  6.  
  7. [root@portatil ~]# cat /etc/sysconfig/network-scripts/ifcfg-lo
  8. DEVICE=lo
  9. IPADDR=127.0.0.1
  10. NETMASK=255.0.0.0
  11. NETWORK=127.0.0.0
  12. # If you're having problems with gated making 127.0.0.0/8 a martian,
  13. # you can change this to something else (255.255.255.255, for example)
  14. BROADCAST=127.255.255.255
  15. ONBOOT=yes
  16. NAME=loopback

Un error usual és creure que el servei DHCP no funciona correctament quan de fet el que passa és que el client no té el servei de xarxa activat. Es pot comprovar l’estat del servei de xarxa fent:

  1. [root@portatil ~]# service NetworkManager status
  2. [root@portatil ~]# service network status
  3. Dispositius configurats:
  4. lo eth0
  5. Dispositius actius actualment:
  6. lo eth0
  7.  
  8. Activar i desactivar el servei de xarxa:
  9. [root@pc]# /etc/init.d/network stop
  10. S'està aturant la interficie eth0: [ FET ]
  11. S'està aturant la interficie loopback: [ FET ]
  12.  
  13. [root@pc]# /etc/init.d/network start
  14. S'està activant la interficie loopback: [ FET ]
  15. S'està activant la interficie eth0:
  16. S'està determinant la informació de la IP per a eth0... fet [FET]

Configurar el client com a client dinàmic

Tot equip client de xarxa necessita una configuració apropiada. Si aquesta configuració es defineix element per element en el mateix equip, s’anomena configuració estàtica. Si és així, no cal per res un servidor DHCP. És quan els clients reben la configuració de xarxa externament que parlem de configuració dinàmica i ens cal un servidor DHCP que la proporcioni.

La configuració del client es pot fer en mode text editant directament els fitxers de configuració de les interfícies de xarxa, utilitzant interfícies en mode text o utilitzant interfícies gràfiques (applets). Vegem cada un d’aquests mètodes.

Editar els fitxers de configuració

Es pot editar directament el fitxer de configuració de la interfície pertinent i establir l’opció BOOTPROTO al valor dhcp per tal d’activar el client DHCP. Si per exemple es configura la interfície eth0 seria un fitxer similar al següent:

  1. [root@portatil ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
  2. DEVICE=eth0
  3. ONBOOT=yes
  4. BOOTPROTO=dhcp
  5. TYPE=Ethernet

Menús amb interfície de text

Un altre mecanisme per activar el client DHCP és utilitzar alguna utilitat de menús en entorn de text (varien segons el sistema i n’hi ha de disponibles per Internet).

Una eina força utilitzada és la utilitat setup que es pot observar en la figura.2, que mostra una configuració de client de xarxa estàtica i es pot veure que la casella que permet activar el client DHCP està desactivada.

Figura Configuració estàtica del client DHCP

Observeu que senzill que és el procediment per activar el client de xarxa DHCP. N’hi ha prou d’activar l’opció pertinent, tal com es mostra en la figura.3.

Figura Activació del client DHCP usant menús de text

Menús en mode gràfic

En mode gràfic el sistema també proporciona mecanismes per configurar les interfícies de xarxa i establir el mode d’activació a DHCP. En la figura.4 es pot observar que la configuració de la interfície eth0 té activada l’opció per rebre la configuració de xarxa via DHCP.

Figura Activació del client DHCP usant l’entorn gràfic

Demanar una nova adreça IP

El client DHCP pot alliberar l’adreça que utilitza quan ho creu pertinent. En fer-ho el servidor anota el fi de la concessió i si es tracta d’una adreça dinàmica d’interval aquesta torna a estar disponible per assignar-la a un altre client. Quan a un client se li està acabant el temps de la concessió ha de tornar a negociar una adreça amb el servidor. De totes maneres si el client vol, pot tornar a sol·licitar-ne una en un moment o altre.

El client pot alliberar una adreça (release) que està en ús un moment o altre, pot forçar-ho fent, per exemple:

  1. [root@portatil ~]# dhclient -r
  2. Internet Systems Consortium DHCP Client V3.0.5-RedHat
  3. Copyright 2004-2006 Internet Systems Consortium.
  4. All rights reserved.
  5. For info, please visit http://www.isc.org/sw/dhcp/
  6. Listening on LPF/eth0/00:17:31:15:80:7e
  7. Sending on LPF/eth0/00:17:31:15:80:7e
  8. DHCPRELEASE on eth0 to 192.168.1.1 port 67

Per forçar el client a demanar una nova adreça per a la interfície ethernet eth0 es pot fer:

  1. [root@portatil ~]# dhclient eth0
  2. Internet Systems Consortium DHCP Client V3.0.5-RedHat
  3. Copyright 2004-2006 Internet Systems Consortium.
  4. All rights reserved.
  5. For info, please visit http://www.isc.org/sw/dhcp/
  6. Listening on LPF/eth0/00:17:31:15:80:7e
  7. Sending on LPF/eth0/00:17:31:15:80:7e
  8. Sending on Socket/fallback
  9. DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 5
  10. DHCPOFFER from 192.168.1.1
  11. DHCPREQUEST on eth0 to 255.255.255.255 port 67
  12. DHCPACK from 192.168.1.1
  13. bound to 192.168.1.34 -- renewal in 38975 seconds.

Observar el registre client de les concessions rebudes

El client DHCP porta un registre de les concessions rebudes, d’aquesta manera pot tornar a demanar una concessió abans que expiri l’actual. També pot servir per demanar al servidor preferentment una adreça IP concreta. Les concessions o leases del client es desen en un fitxer anomenat /var/lib/dhclient/dhclient.leases. Podem veure’n el contingut fent:

  1. [root@pc]# cat /var/lib/dhclient/dhclient.leases
  2. lease {
  3. interface "eth0";
  4. fixed-address 192.168.1.34;
  5. option subnet-mask 255.255.255.0;
  6. option routers 192.168.1.1;
  7. option dhcp-lease-time 86400;
  8. option dhcp-message-type 5;
  9. option domain-name-servers 80.58.61.250,80.58.61.254;
  10. option dhcp-server-identifier 192.168.1.1;
  11. option domain-name "local.lan";
  12. renew 3 2007/12/19 04:05:49;
  13. rebind 3 2007/12/19 15:12:57;
  14. expire 3 2007/12/19 18:12:57;

Comprovació del funcionament DHCP

La millor manera de comprovar el funcionament DHCP és simplement posant-lo en pràctica, és a dir, crear una xarxa amb diversos clients DHCP i un servidor que els atengui. Com es pot saber si funciona? Fàcil, mirant un a un cada client i comprovant que han rebut la configuració de xarxa correcta. El problema, però, és què fem si els clients no es configuren correctament.

Els passos més usuals a seguir per a la resolució de problemes són:

  • Comprovar que la xarxa està correctament connectada físicament, és a dir cables, connectors, interfícies, etc.
  • Mirar si existeix connectivitat entre els equips, per exemple usant una configuració estàtica. Això permetrà descartar que els problemes siguin deguts a altres causes. Si el DHCP no va és que no està configurat correctament.
  • Repassar la configuració del client i del servidor DHCP, especialment la del servidor. Es pot començar fent la configuració tan senzilla com sigui possible. Un cop funciona es pot anar avançant en la seva complexitat.
  • Examinar els fitxers de concessions, tant el del client com el del servidor, per detectar-hi anomalies.
  • Quan la comunicació client/servidor no funciona correctament i no sabem el perquè és molt útil monitorar el trànsit de xarxa mitjançant alguna eina d’anàlisi dels paquets que viatgen per la xarxa.

Centrem-nos, doncs, en la monitoratge del trànsit de xarxa per tal d’analitzar que el diàleg entre el client i el servidor és l’apropiat. Existeixen moltes eines al mercat (que podeu trobar per Internet) que fan aquesta funció. Un de les més recomanables és l’aplicació wireshark. Amb aquesta eina hem de poder observar l’intercanvi dels paquets DHCP Discover, DHCP Offer, DHCP Request i DHCP Ack que es produeix quan tot el procés DHCP funciona correctament. Si aquest intercanvi no es produeix és que existeix algun problema.

En l’apartat “El model funcional del protocol DHCP” podeu observar detalladament com és el diàleg entre el client i el servidor.

En l’apartat “Demanar una nova adreça IP” es pot observar com forçar el client a demanar una nova configuració.

En la figura.5 podeu observar una captura de trànsit DHCP feta amb Wireshark. La captura s’ha fet al servidor i el client s’ha forçat a demanar de nou una configuració de xarxa amb la utilitat dhclient.

Figura Captura d’un diàleg DHCP client/servidor

Podeu manipular vosaltres mateixos la captura del trànsit de xarxa DNS carregant el fitxer de captura del wireshark que es lliura com a material complementari. Aquest fitxer el trobareu en la secció “Annexos” del web del mòdul.

A continuació es pot observar la llista de text de les quatre trames capturades amb el wireshark que s’han exportat en format text. Això permet veure detalladament tot el diàleg DHCP.

  1. No. Time Source Destination Protocol Info
  2. 1 0.000000 0.0.0.0 255.255.255.255 DHCP DHCP Discover -
  3. Transaction ID 0x8a1327b2
  4.  
  5. Frame 1 (590 bytes on wire, 590 bytes captured)
  6. Ethernet II, Src: CadmusCo_b2:8b:ec (08:00:27:b2:8b:ec), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
  7. Internet Protocol, Src: 0.0.0.0 (0.0.0.0), Dst: 255.255.255.255 (255.255.255.255)
  8. User Datagram Protocol, Src Port: bootpc (68), Dst Port: bootps (67)
  9. Bootstrap Protocol
  10. Message type: Boot Request (1)
  11. Hardware type: Ethernet
  12. Hardware address length: 6
  13. Hops: 0
  14. Transaction ID: 0x8a1327b2
  15. Seconds elapsed: 0
  16. Bootp flags: 0x0000 (Unicast)
  17. Client IP address: 0.0.0.0 (0.0.0.0)
  18. Your (client) IP address: 0.0.0.0 (0.0.0.0)
  19. Next server IP address: 0.0.0.0 (0.0.0.0)
  20. Relay agent IP address: 0.0.0.0 (0.0.0.0)
  21. Client MAC address: CadmusCo_b2:8b:ec (08:00:27:b2:8b:ec)
  22. Server host name not given
  23. Boot file name not given
  24. Option: (t=53,l=1) DHCP Message Type = DHCP Discover
  25. Option: (t=57,l=2) Maximum DHCP Message Size = 548
  26. Option: (t=55,l=11) Parameter Request List
  27. Option: (t=12,l=4) Host Name = "box"
  28. Option: (t=51,l=4) IP Address Lease Time = 12 hours
  29. End Option
  30. Padding
  31.  
  32. No. Time Source Destination Protocol Info
  33. 2 0.000351 192.168.1.34 192.168.1.254 DHCP DHCP Offer -
  34. Transaction ID 0x8a1327b2
  35.  
  36. Frame 2 (342 bytes on wire, 342 bytes captured)
  37. Ethernet II, Src: AsustekC_15:80:7e (00:17:31:15:80:7e), Dst: CadmusCo_b2:8b:ec
  38. (08:00:27:b2:8b:ec)
  39. Internet Protocol, Src: 192.168.1.34 (192.168.1.34), Dst: 192.168.1.254 (192.168.1.254)
  40. User Datagram Protocol, Src Port: bootps (67), Dst Port: bootpc (68)
  41. Bootstrap Protocol
  42. Message type: Boot Reply (2)
  43. Hardware type: Ethernet
  44. Hardware address length: 6
  45. Hops: 0
  46. Transaction ID: 0x8a1327b2
  47. Seconds elapsed: 0
  48. Bootp flags: 0x0000 (Unicast)
  49. Client IP address: 0.0.0.0 (0.0.0.0)
  50. Your (client) IP address: 192.168.1.254 (192.168.1.254)
  51. Next server IP address: 0.0.0.0 (0.0.0.0)
  52. Relay agent IP address: 0.0.0.0 (0.0.0.0)
  53. Client MAC address: CadmusCo_b2:8b:ec (08:00:27:b2:8b:ec)
  54. Server host name not given
  55. Boot file name not given
  56. Option: (t=53,l=1) DHCP Message Type = DHCP Offer
  57. Option: (t=54,l=4) Server Identifier = 192.168.1.34
  58. Option: (t=51,l=4) IP Address Lease Time = 12 hours
  59. Option: (t=1,l=4) Subnet Mask = 255.255.255.0
  60. Option: (t=3,l=4) Router = 192.168.1.1
  61. Option: (t=6,l=4) Domain Name Server = 192.168.1.1
  62. Option: (t=15,l=11) Domain Name = "domain.org"
  63. End Option
  64. Padding
  65.  
  66. No. Time Source Destination Protocol Info
  67. 3 0.009004 0.0.0.0 255.255.255.255 DHCP DHCP Request -
  68. Transaction ID 0x8b1327b2
  69.  
  70. Frame 3 (590 bytes on wire, 590 bytes captured)
  71. Ethernet II, Src: CadmusCo_b2:8b:ec (08:00:27:b2:8b:ec), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
  72. Internet Protocol, Src: 0.0.0.0 (0.0.0.0), Dst: 255.255.255.255 (255.255.255.255)
  73. User Datagram Protocol, Src Port: bootpc (68), Dst Port: bootps (67)
  74. Bootstrap Protocol
  75. Message type: Boot Request (1)
  76. Hardware type: Ethernet
  77. Hardware address length: 6
  78. Hops: 0
  79. Transaction ID: 0x8b1327b2
  80. Seconds elapsed: 0
  81. Bootp flags: 0x0000 (Unicast)
  82. Client IP address: 0.0.0.0 (0.0.0.0)
  83. Your (client) IP address: 0.0.0.0 (0.0.0.0)
  84. Next server IP address: 0.0.0.0 (0.0.0.0)
  85. Relay agent IP address: 0.0.0.0 (0.0.0.0)
  86. Client MAC address: CadmusCo_b2:8b:ec (08:00:27:b2:8b:ec)
  87. Server host name not given
  88. Boot file name not given
  89. Option: (t=53,l=1) DHCP Message Type = DHCP Request
  90. Option: (t=57,l=2) Maximum DHCP Message Size = 548
  91. Option: (t=55,l=11) Parameter Request List
  92. Option: (t=12,l=4) Host Name = "box"
  93. Option: (t=51,l=4) IP Address Lease Time = 12 hours
  94. Option: (t=54,l=4) Server Identifier = 192.168.1.34
  95. Option: (t=50,l=4) Requested IP Address = 192.168.1.254
  96. End Option
  97. Padding
  98.  
  99. No. Time Source Destination Protocol Info
  100. 4 0.010712 192.168.1.1 255.255.255.255 DHCP DHCP NAK -
  101. Transaction ID 0x8b1327b2
  102.  
  103. Frame 4 (342 bytes on wire, 342 bytes captured)
  104. Ethernet II, Src: XaviTech_7b:ff:1d (00:01:38:7b:ff:1d), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
  105. Internet Protocol, Src: 192.168.1.1 (192.168.1.1), Dst: 255.255.255.255 (255.255.255.255)
  106. User Datagram Protocol, Src Port: bootps (67), Dst Port: bootpc (68)
  107. Bootstrap Protocol
  108. Message type: Boot Reply (2)
  109. Hardware type: Ethernet
  110. Hardware address length: 6
  111. Hops: 0
  112. Transaction ID: 0x8b1327b2
  113. Seconds elapsed: 0
  114. Bootp flags: 0x8000 (Broadcast)
  115. Client IP address: 0.0.0.0 (0.0.0.0)
  116. Your (client) IP address: 0.0.0.0 (0.0.0.0)
  117. Next server IP address: 192.168.1.1 (192.168.1.1)
  118. Relay agent IP address: 0.0.0.0 (0.0.0.0)
  119. Client MAC address: CadmusCo_b2:8b:ec (08:00:27:b2:8b:ec)
  120. Server host name not given
  121. Boot file name not given
  122. Option: (t=53,l=1) DHCP Message Type = DHCP NAK
  123. Option: (t=56,l=31) Message = "requested address not available"
  124. End Option
  125. Padding

Realitzar documentació de suport a l'usuari

Una de les facetes més ignorades en el camp de la informàtica és la confecció de manuals i documentació de suport. Com a clients molt sovint ens queixem que falta informació o que està mal redactada. Com a administradors de xarxa no trobem mai temps per anotar les coses. Mentre les tenim al cap no creiem necessari fer la documentació, quan no ho tenim al cap, ja ens és impossible fer-ho, i sovint, és just quan en faria falta haver-ho fet! Fem un repàs de la informació necessària que cal documentar, tant per a l’usuari com per a l’administrador.

Un altre exemple de captura DHCP es lliura com a material complementari. En aquesta captura hi ha dos servidors dhcp diferents en la xarxa i es poden observar paquets NACK. Aquest fitxer el trobareu en la secció “Annexos” del web del mòdul.

El client ha de saber:

  • Com contactar amb el servidor DHCP. Quin programari ha d’utilitzar i com l’ha de configurar per fer ús del servei.
  • Quina és la informació que s’obtindrà via DHCP. Cal saber visualitzar, consultar aquesta informació i saber què significa, per a què serveix.

Així doncs, la documentació de l’usuari descriurà el procés per activar el client DHCP, amb captures de pantalla que facilitin aquest procés. Cal també exemples de llista de concessions rebudes, on són i com es poden consultar aquestes concessions. La part més important és mostrar un exemple de configuració de xarxa rebuda on es detalli el significat de cada element i explicar a l’usuari com fer aquesta consulta.

Un exemple d’informació a proporcionar podria ser el següent:

L'usuari pot consultar la concessió de xarxa amb l'ordre:
C:\>ifconfig /all
Configuración IP de Windows
        Nombre del host . . . . . . . . . : nombre-29b9943f
        Sufijo DNS principal  . . . . . . : 
        Tipo de nodo. . . . . . . . . . . : híbrido
        Enrutamiento habilitado. . . . . .: No
        Proxy WINS habilitado. . . . .    : No
        Lista de búsqueda de sufijo DNS:    local.lan

Adaptador Ethernet Conexiones de red inalámbricas          :
        Estado de los medios. . . .: medios desconectados
        Descripción. . . . . . . . . . .  : Intel(R) PRO/Wireless 3945ABG Net Connection
        Dirección física. . . . . . . . . : 00-31-02-44-9F-5A

Adaptador Ethernet Conexión de área local          :
        Sufijo de conexión específica DNS : local.lan
        Descripción. . . . . . . . . . .  : Realtek RTL8168/8111 PCI-E Gigabit Ether NIC
        Dirección física. . . . . . . . . : 00-21-32-80-23-7D
        DHCP habilitado. . . . . . . . .  : No
        Autoconfiguración habilitada. . . : Sí
        Dirección IP. . . . . . . . . . . : 192.168.1.33
        Máscara de subred . . . . . . . . : 255.255.255.0
        Puerta de enlace predeterminada   : 192.168.1.1
        Servidor DHCP . . . . . . . . . . : 192.168.1.1
        Servidores DNS . . . . . . . . . .: 80.58.61.250
                                            80.58.61.254
        Concesión obtenida . . . . . . .  : jueves, 24 de septiembre de 2009 12:09:16
        Concesión expira . . . . . . . . .: jueves, 24 de septiembre de 2009 13:09:16

Els principals valors de xarxa a destacar són: Adreça IP, màscara de xarxa, el router o porta d’enllaç predeterminada, el servidor dhcp amb el qual s’ha contactat, els servidors de noms DNS que s’utilitzen i quan expira la concessió.

Reflexiona

Reconfiguració d'una xarxa

Imagineu la diversió de l’administrador d’una xarxa corporativa de 1.000 equips amb adreces estàtiques quan cal reconfigurar-la en un cap de setmana!

Per saber més

DNS dinàmic

Hi ha serveis de DNS dinàmic (DDNS) que permeten assignar un nom de domini a equips amb adreça IP dinàmica.