Salta el contingut

PR0201 — Servei DHCP Corporatiu amb Kea

Informació de la pràctica

Camp Valor
Codi PR0201
Mòdul M0375 — Serveis de Xarxa i Internet
RA RA2 — Configuració Automàtica de Xarxa (DHCP)
Durada estimada 4 hores
Modalitat Individual
Lliurament Fitxers de configuració + PDF (documentació) a Moodle
Qualificació 10 punts (rúbrica adjunta)

Objectius

  • Instal·lar i configurar Kea DHCP (successor recomanat d'ISC DHCP, EOL des d'octubre 2022) en una màquina virtual Ubuntu Server 24.04.
  • Configurar un subnet amb rang dinàmic i opcions bàsiques (gateway, DNS, domini).
  • Crear reserves d'adreça per MAC per a equips corporatius.
  • Afegir opcions addicionals de configuració (NTP).
  • Consultar l'estat del servei i les concessions actives mitjançant l'API REST de kea-ctrl-agent.
  • Documentar tot el procés amb captures de pantalla i respondre qüestions de comprensió.

Requisits previs

  • 1 màquina virtual Ubuntu Server 24.04 LTS (inclou els paquets natius de Kea): kea-server.
  • 1 màquina client (virtual o física) a la mateixa xarxa, amb el rol de client DHCP, per verificar concessions.
  • Accés per SSH a la màquina servidor.
  • Haver llegit Kea DHCP a Linux (subnet4, reservations, relay, HA).

Assignació del Rang IP (obligatori)

Cada alumne ha de treballar amb un rang IP propi i diferent de la resta de la classe, per evitar col·lisions al laboratori i per fer detectables les còpies.

  • El professor/a us assignarà un número de llista N (1-30). És el mateix N que useu a la pràctica PR0101 (DNS).
  • Calculeu el vostre tercer octet: XX = 100 + N.
  • Exemple: si sou l'alumne número 3, XX = 103, i la vostra xarxa és 192.168.103.0/24.
  • Exemple: si sou l'alumne número 27, XX = 127, i la vostra xarxa és 192.168.127.0/24.
  • La vostra xarxa de treball serà 192.168.XX.0/24, amb:
  • kea-server192.168.XX.10
  • Pool dinàmic → 192.168.XX.100 - 192.168.XX.200
  • Reserves per MAC → 192.168.XX.50, 192.168.XX.51, 192.168.XX.52

Personalització obligatòria

Substituïu XX pel valor numèric que us correspongui (100 + N) i NOMCOGNOM pel vostre nom i cognom (en minúscules, sense espais ni accents) a totes les adreces IP, dominis, noms d'equips reservats i noms d'amfitrió d'aquesta pràctica. Les captures amb el rang d'exemple (192.168.XX.0/24 literal, o el rang d'un altre company) no es consideraran vàlides.


Part 1: Instal·lació de Kea (30 minuts)

Ubuntu 24.04 inclou els paquets natius de Kea, cosa que simplifica molt la instal·lació respecte a ISC DHCP.

sudo apt update
sudo apt install -y kea-dhcp4-server kea-ctrl-agent kea-admin

sudo hostnamectl set-hostname kea-server-NOMCOGNOM

# Verifiqueu que els serveis existeixen (encara no configurats)
systemctl status kea-dhcp4-server
systemctl status kea-ctrl-agent

Documenteu: per què Kea és el substitut recomanat d'ISC DHCP i quin avantatge té la seva configuració en format JSON respecte al format text tradicional.


Part 2: Configuració del Subnet i Concessions Dinàmiques (1 hora)

Editeu /etc/kea/kea-dhcp4.conf:

{
  "Dhcp4": {
    "interfaces-config": {
      "interfaces": [ "eth0" ]
    },
    "lease-database": {
      "type": "memfile",
      "persist": true,
      "name": "/var/lib/kea/kea-leases4.csv"
    },
    "valid-lifetime": 3600,
    "renew-timer": 1800,
    "rebind-timer": 3150,
    "subnet4": [
      {
        "id": 1,
        "subnet": "192.168.XX.0/24",
        "pools": [ { "pool": "192.168.XX.100 - 192.168.XX.200" } ],
        "option-data": [
          { "name": "routers", "data": "192.168.XX.1" },
          { "name": "domain-name-servers", "data": "192.168.XX.10, 8.8.8.8" },
          { "name": "domain-name", "data": "NOMCOGNOM.local" }
        ]
      }
    ],
    "control-socket": {
      "socket-type": "unix",
      "socket-name": "/tmp/kea4-ctrl-socket"
    },
    "loggers": [
      {
        "name": "kea-dhcp4",
        "output-options": [ { "output": "/var/log/kea-dhcp4.log" } ],
        "severity": "INFO"
      }
    ]
  }
}

Editeu /etc/kea/kea-ctrl-agent.conf:

{
  "Control-agent": {
    "http-host": "0.0.0.0",
    "http-port": 8000,
    "control-sockets": {
      "dhcp4": {
        "socket-type": "unix",
        "socket-name": "/tmp/kea4-ctrl-socket"
      }
    }
  }
}

Reinicieu els serveis:

sudo systemctl restart kea-dhcp4-server
sudo systemctl restart kea-ctrl-agent
sudo systemctl status kea-dhcp4-server

Verifiqueu l'estat via l'API REST:

curl -X POST -H "Content-Type: application/json" \
     -d '{"command": "status-get", "service": ["dhcp4"]}' \
     http://192.168.XX.10:8000/

Documenteu: captura de la resposta JSON de status-get mostrant el servei actiu.


Part 3: Reserves d'Adreça per MAC (1 hora)

Afegiu reserves per a 3 equips corporatius dins del bloc subnet4 de /etc/kea/kea-dhcp4.conf:

"reservations": [
  {
    "hw-address": "08:00:27:11:22:33",
    "ip-address": "192.168.XX.50",
    "hostname": "servidor-impressio-NOMCOGNOM"
  },
  {
    "hw-address": "08:00:27:44:55:66",
    "ip-address": "192.168.XX.51",
    "hostname": "pc-direccio-NOMCOGNOM"
  },
  {
    "hw-address": "08:00:27:77:88:99",
    "ip-address": "192.168.XX.52",
    "hostname": "servidor-backup-NOMCOGNOM"
  }
]

Reinicieu el servei i verifiqueu la configuració:

sudo systemctl restart kea-dhcp4-server
curl -X POST -H "Content-Type: application/json" \
     -d '{"command": "config-get", "service": ["dhcp4"]}' \
     http://192.168.XX.10:8000/

A la màquina client, configureu la seva MAC (o la de la interfície virtual) perquè coincideixi amb una de les reserves i llanceu una petició DHCP:

sudo dhclient -r eth0   # allibera la concessió actual
sudo dhclient eth0      # sol·licita una nova concessió
ip a show eth0

Comproveu que el client rep exactament la IP reservada.

Documenteu: captura de config-get mostrant les 3 reserves i captura de la concessió obtinguda pel client amb la IP reservada correcta.


Part 4: Opcions Addicionals i Consulta de Concessions (45 minuts)

Afegiu l'opció de servidor NTP:

"option-data": [
  { "name": "routers", "data": "192.168.XX.1" },
  { "name": "domain-name-servers", "data": "192.168.XX.10, 8.8.8.8" },
  { "name": "domain-name", "data": "NOMCOGNOM.local" },
  { "name": "ntp-servers", "data": "192.168.XX.1" }
]

Consulteu totes les concessions actives via l'API:

curl -X POST -H "Content-Type: application/json" \
     -d '{"command": "lease4-get-all", "service": ["dhcp4"]}' \
     http://192.168.XX.10:8000/

O directament al fitxer de concessions:

cat /var/lib/kea/kea-leases4.csv

Documenteu: taula amb totes les concessions actives (IP, MAC, hostname, temps de venciment).


Qüestions

Responeu al document de lliurament:

  1. Per què ISC DHCP està en fi de vida (EOL) i quins avantatges tècnics aporta Kea (arquitectura per hooks, API REST, configuració JSON)?
  2. Quina diferència hi ha entre una reserva (reservations) i el pool dinàmic (pools)? Quan s'ha d'utilitzar cadascuna?
  3. Per a què serveix kea-ctrl-agent i per què és útil exposar-lo via API REST en lloc de només fitxers de configuració?
  4. Quins riscos de seguretat implica un servidor DHCP rogue a la xarxa, i com es podria mitigar (relació amb DHCP Snooping)?

Lliurament

  1. Fitxers de configuració: kea-dhcp4.conf i kea-ctrl-agent.conf.
  2. Documentació PDF amb:
  3. El vostre número de llista N i el rang 192.168.XX.0/24 calculat
  4. Captures de cada part (1 a 4)
  5. Respostes a les 4 qüestions
  6. Taula de reserves i concessions actives
  7. README.md amb un resum dels passos d'instal·lació i configuració seguits.

Criteris d'Avaluació

Consulteu la rúbrica detallada per a la puntuació completa (10 punts, 4 blocs + penalitzacions).


Recursos Addicionals

  • Kea DHCP a Linux — configuració de referència d'aquesta pràctica.
  • Kea Administrator Reference Manual: https://kea.readthedocs.io/
  • RFC 2131 — Dynamic Host Configuration Protocol: https://www.rfc-editor.org/rfc/rfc2131
  • ISC — Kea vs ISC DHCP: https://www.isc.org/kea/

Data de creació: Juliol 2026 Autor: Curs M0375 - Serveis de Xarxa i Internet