Servidor Kea DHCP

Cicle formatiu: CFGM Sistemes Microinformàtics i Xarxes (SMX) / CFGS Administració de sistemes informàtics en xarxa (ASIX)

Mòdul: 0227 - Serveis de xarxa / 0375 - Serveis de xarxa i Internet

Sistema operatiu: Ubuntu Server 26.04 LTS

1. Què és Kea?

Kea és el servidor DHCP de codi obert desenvolupat per l’Internet Systems Consortium (ISC), l’organització responsable també de BIND 9. Va ser creat per substituir l’antic isc-dhcp, que va arribar al final de la seva vida útil l’any 2022. Kea està dissenyat per a entorns de xarxa moderns i és, avui dia, el servidor DHCP de codi obert més desplegat del món.

Kea és una implementació moderna i modular del protocol DHCP (Dynamic Host Configuration Protocol), que permet assignar de manera automàtica adreces IP i altres paràmetres de xarxa als dispositius connectats.

Kea logo
💡
Nota

A Ubuntu Server 23.04 i versions posteriors (inclosa la 26.04), Kea és el servidor DHCP recomanat. El paquet isc-dhcp-server està obsolet i no és compatible des de l’Ubuntu 24.04 LTS.

1.1. Diferències respecte a ISC DHCP

Característica ISC DHCP (antic) Kea (nou)
Estat End of Life (2022) Actiu i mantingut
Arquitectura Monolítica Modular (daemons separats)
Multifil (multithreaded) No
API REST No Sí (JSON)
Backend de base de dades Fitxer pla Fitxer, MySQL, PostgreSQL
Interfície gràfica No Sí (Stork)
Alta disponibilitat (HA) Limitada Avançada

2. Funcionalitats principals

2.1. Suport DHCPv4 i DHCPv6

Kea inclou daemons separats per a IPv4 i IPv6, que permet gestionar ambdós protocols de manera independent o simultània.

2.2. Arquitectura modular

El paquet kea instal·la diversos components:

2.3. Alt rendiment i multifil

Kea és multithreaded, cosa que li permet gestionar entorns de gran escala amb durades de lloguer curtes, l’escenari més exigent per a un servidor DHCP.

2.4. API REST potent

Kea fa servir fitxers de configuració JSON que es poden modificar remotament mitjançant ordres set i recarregar sense aturar ni reiniciar el servidor. Això permet una gestió dinàmica i sense interrupcions.

2.5. Backends de dades flexibles

Les dades de xarxa (lloguers, reserves d’amfitrions, configuració) es poden emmagatzemar en:

L’ús d’una base de dades compartida permet implementar estratègies d’alta disponibilitat i facilita la gestió centralitzada de reserves d’amfitrions.

2.6. Alta disponibilitat (HA)

Kea admet diverses estratègies d’alta disponibilitat per garantir la continuïtat del servei DHCP en cas de fallada d’un servidor. Les configuracions HA es gestionen mitjançant hooks modules.

2.7. Hooks modules (extensions)

Les funcionalitats opcionals s’activen amb mòduls carregables dinàmicament (hooks modules). Alguns exemples:

Es poden escriure hooks propis en C++.

2.8. Interfície gràfica: Stork

Stork és el tauler de control gràfic per a Kea. Permet:

3. Instal·lació de Kea a Ubuntu Server 26.04

3.1. Prerequisits

3.2. Actualitza el sistema

sudo apt update && sudo apt upgrade -y

3.3. Instal·lació del paquet

sudo apt install kea

Durant la instal·lació, el sistema mostrarà un missatge interactiu (debconf) per configurar l’autenticació del servei kea-ctrl-agent. Cal triar una de les tres opcions:

⚠️
Avís

Si no es configura cap contrasenya, el servei kea-ctrl-agent no s’iniciarà, ja que cal autenticació per evitar accessos no autoritzats a l’API administrativa.

Configuració del paquet kea-ctrl-agent 1/4
Configuració del paquet kea-ctrl-agent 2/4
Configuració del paquet kea-ctrl-agent 3/4
Configuració del paquet kea-ctrl-agent 4/4

La contrasenya s’emmagatzema a /etc/kea/kea-api-password amb propietari root:_kea i permisos 0640.

root@server:/etc/kea# ls -l
total 68
-rw-r----- 1 root _kea     8 Jun 25 18:15 kea-api-password
-rw-r--r-- 1 root root  5697 Mar 25 10:23 kea-ctrl-agent.conf
-rw-r--r-- 1 root root  3025 Mar 25 10:23 kea-dhcp-ddns.conf
-rw-r--r-- 1 root root 23850 Mar 25 10:23 kea-dhcp4.conf
-rw-r--r-- 1 root root 21099 Mar 25 10:23 kea-dhcp6.conf
drwxr-xr-x 2 root root  4096 Jun 25 18:15 radius
root@server:/etc/kea# 

Per canviar la contrasenya posteriorment:

sudo dpkg-reconfigure kea-ctrl-agent

O bé editant el fitxer directament:

sudo nano /etc/kea/kea-api-password

Si UFW està habilitat, habilita el servei DHCP. El servidor DHCP utilitza [67/UDP].

sudo ufw allow bootps

4. Configuració de kea-dhcp4

El fitxer de configuració principal del servidor DHCPv4 es troba a /etc/kea/kea-dhcp4.conf

Aquest és el contingut per defecte:

{
"Dhcp4": {
    "interfaces-config": {
        "interfaces": [ ]
    },
    "control-socket": {
        "socket-type": "unix",
        "socket-name": "kea4-ctrl-socket"
    },
    "lease-database": {
        "type": "memfile",
        "lfc-interval": 3600
    },
    "expired-leases-processing": {
        "reclaim-timer-wait-time": 10,
        "flush-reclaimed-timer-wait-time": 25,
        "hold-reclaimed-time": 3600,
        "max-reclaim-leases": 100,
        "max-reclaim-time": 250,
        "unwarned-reclaim-cycles": 5
    },
    "renew-timer": 900,
    "rebind-timer": 1800,
    "valid-lifetime": 3600,
    "option-data": [
        {
            "name": "domain-name-servers",
            "data": "192.0.2.1, 192.0.2.2"
        },
        {
            "code": 15,
            "data": "example.org"
        },
        {
            "name": "domain-search",
            "data": "mydomain.example.com, example.com"
        },
        {
            "name": "boot-file-name",
            "data": "EST5EDT4\\,M3.2.0/02:00\\,M11.1.0/02:00"
        },
        {
            "name": "default-ip-ttl",
            "data": "0xf0"
        }
    ],
    "client-classes": [
        {
            "name": "voip",
            "test": "substring(option[60].hex,0,6) == 'Aastra'",
            "next-server": "192.0.2.254",
            "server-hostname": "hal9000",
            "boot-file-name": "/dev/null"
        }
    ],
    "subnet4": [
        {
            "id": 1,
            "subnet": "192.0.2.0/24",
            "pools": [ { "pool": "192.0.2.1 - 192.0.2.200" } ],
            "option-data": [
                {
                    "name": "routers",
                    "data": "192.0.2.1"
                }
            ],
            "reservations": [
                {
                    "hw-address": "1a:1b:1c:1d:1e:1f",
                    "ip-address": "192.0.2.201"
                },
                {
                    "client-id": "01:11:22:33:44:55:66",
                    "ip-address": "192.0.2.202",
                    "hostname": "special-snowflake"
                },
                {
                    "duid": "01:02:03:04:05",
                    "ip-address": "192.0.2.203",
                    "option-data": [ {
                        "name": "domain-name-servers",
                        "data": "10.1.1.202, 10.1.1.203"
                    } ]
                },
                {
                    "client-id": "01:12:23:34:45:56:67",
                    "ip-address": "192.0.2.204",
                    "option-data": [
                        {
                            "name": "vivso-suboptions",
                            "data": "4491"
                        },
                        {
                            "name": "tftp-servers",
                            "space": "vendor-4491",
                            "data": "10.1.1.202, 10.1.1.203"
                        }
                    ]
                },
                {
                    "client-id": "01:0a:0b:0c:0d:0e:0f",
                    "ip-address": "192.0.2.205",
                    "next-server": "192.0.2.1",
                    "server-hostname": "hal9000",
                    "boot-file-name": "/dev/null"
                },
                {
                    "flex-id": "'s0mEVaLue'",
                    "ip-address": "192.0.2.206"
                }
            ]
        }
    ],
    "loggers": [
    {
        "name": "kea-dhcp4",
        "output-options": [
            {
                "output": "stdout",
                "pattern": "%-5p %m\n",
            }
        ],
        "severity": "INFO",
        "debuglevel": 0
    }
  ]
}
}

4.1. Estructura bàsica del fitxer de configuració

El fitxer utilitza format JSON. A continuació es mostra una configuració típica per assignar adreces d’un rang predefinit:

{
    "Dhcp4": {
        "interfaces-config": {
            "interfaces": ["eth0"]
        },
        "control-socket": {
            "socket-type": "unix",
            "socket-name": "/run/kea/kea4-ctrl-socket"
        },
        "lease-database": {
            "type": "memfile",
            "lfc-interval": 3600
        },
        "valid-lifetime": 600,
        "max-valid-lifetime": 7200,
        "subnet4": [{
            "id": 1,
            "subnet": "192.168.1.0/24",
            "pools": [{
                "pool": "192.168.1.150 - 192.168.1.200"
            }],
            "option-data": [
                {
                    "name": "routers",
                    "data": "192.168.1.254"
                },
                {
                    "name": "domain-name-servers",
                    "data": "192.168.1.1, 192.168.1.2"
                },
                {
                    "name": "domain-name",
                    "data": "exemple.local"
                }
            ]
        }]
    }
}

Una altra configuració:

{
"Dhcp4": {
    "interfaces-config": {
        # especifica les interfícies de xarxa d'escolta
        "interfaces": [ "enp0s3" ]
    },
    # configuració per a lloguers caducats (els següents són els valors per defecte)
    "expired-leases-processing": {
        "reclaim-timer-wait-time": 10,
        "flush-reclaimed-timer-wait-time": 25,
        "hold-reclaimed-time": 3600,
        "max-reclaim-leases": 100,
        "max-reclaim-time": 250,
        "unwarned-reclaim-cycles": 5
    },
    # Temporitzador T1 que controla quan el client comença els processos de renovació (segons)
    "renew-timer": 900,
    # Temporitzador T2 que controla quan el client inicia els processos de reenllaç (segons)
    "rebind-timer": 1800,
    # quant de temps són vàlides les adreces (lloguers) proporcionades pel servidor (segons)
    "valid-lifetime": 3600,
    "option-data": [
        {
            # especifica el teu servidor DNS 
            # per especificar diverses entrades, separa-les amb comes
            "name": "domain-name-servers",
            "data": "10.0.2.10"
        },
        {
            # especifica el teu nom de domini
            "name": "domain-name",
            "data": "thos.local"
        },
        {
            # especifica la teve base de cerca de domini
            # per especificar diverses entrades, separa-les amb comes
            "name": "domain-search",
            "data": "thos.local"
        }
    ],
    "subnet4": [
        {
            "id": 1,
            # especifica la subxarxa on s'utilitza el DHCP
            "subnet": "10.0.2.0/24",
            # especifica el rang d'adreces IP que es llogaran
            "pools": [ { "pool": "10.0.2.100 - 10.0.2.200" } ],
            "option-data": [
                {
                    # especifica la porta d'enllaç
                    "name": "routers",
                    "data": "10.0.2.1"
                }
            ]
        }
    ],
    # configuració de registre
    "loggers": [
    {
        "name": "kea-dhcp4",
        "output_options": [
            {
                "output": "/var/log/kea/kea-dhcp4.log"
            }
        ],
        "severity": "INFO",
        "debuglevel": 0
    }
  ]
}
}

4.2. Explicació de les opcions principals

interfaces-config

Defineix la interfície de xarxa on el servidor escoltarà les peticions DHCP.

"interfaces-config": {
    "interfaces": ["enp0s3"]
}

Per escoltar a totes les interfícies:

"interfaces": ["*"]

lease-database

Configura on s’emmagatzemen els lloguers d’adreces IP.

"lease-database": {
    "type": "memfile",
    "lfc-interval": 3600
}

Per usar MySQL com a backend:

"lease-database": {
    "type": "mysql",
    "host": "localhost",
    "name": "kea",
    "user": "kea",
    "password": "contrasenya_segura"
}

valid-lifetime i max-valid-lifetime

Temps de validesa del lloguer en segons.

"valid-lifetime": 600,
"max-valid-lifetime": 7200

subnet4

Defineix les subxarxes gestionades pel servidor.

"subnet4": [{
    "id": 1,
    "subnet": "10.0.2.0/24",
    "pools": [{
        "pool": "10.0.2.100 - 192.168.1.200"
    }]
}]

option-data

Opcions DHCP addicionals enviades als clients.

"option-data": [
    {
        "name": "routers",
        "data": "10.0.2.1"
    },
    {
        "name": "domain-name-servers",
        "data": "10.0.2.10, 10.0.2.11
    },
    {
        "name": "domain-name",
        "data": "thos.local"
    }
]

Opcions comunes:

Nom de l’opció Descripció
routers Passarel·la predeterminada (gateway)
domain-name-servers Servidors DNS
domain-name Domini de cerca DNS
broadcast-address Adreça de difusió
ntp-servers Servidors de temps NTP
domain-search Llista de dominis de cerca

5. Reserves d’amfitrions (host reservations)

Kea permet assignar una adreça IP fixa a un dispositiu concret, identificat per la seva adreça MAC.

"reservations": [
    {
        "hw-address": "aa:bb:cc:dd:ee:ff",
        "ip-address": "10.0.2.150",
        "hostname": "impressora-oficina"
    }
]

Aquesta secció s’afegeix dins del bloc subnet4 corresponent.

És possible veure l’adreça IP llogada al fitxer següent des del servidor DHCP als clients DHCP.

sudo cat /var/lib/kea/kea-leases4.csv
address,hwaddr,client_id,valid_lifetime,expire,subnet_id,fqdn_fwd,fqdn_rev,hostname,state,user_context,pool_id
10.0.2.100,00:0c:29:e5:f5:43,01:00:0c:29:e5:f5:43,3600,1777029931,1,0,0,rx-0.thos.local.,0,,0
10.0.2.101,52:54:00:d1:7f:bd,ff:56:50:4d:98:00:02:00:00:ab:11:b3:df:a8:ce:66:2b:f0:1e,3600,1777030048,1,0,0,ubuntu,0,,0

6. Gestió del servei

6.1. Verifica l’estat dels serveis

sudo systemctl status kea-dhcp4-server
sudo systemctl status kea-dhcp6-server
sudo systemctl status kea-ctrl-agent
sudo systemctl status kea-dhcp-ddns-server

6.2. Atura, inicia i reinicia

sudo systemctl restart kea-dhcp4-server
sudo systemctl stop kea-dhcp4-server
sudo systemctl start kea-dhcp4-server

6.3. Recarrega la configuració sense reiniciar

La manera recomanada és fer servir kea-shell amb l’API REST per recarregar la configuració sense interrompre el servei:

sudo kea-shell --host 127.0.0.1 --port 8000 \
  --auth-user kea-api \
  --auth-password-file /etc/kea/kea-api-password \
  --service dhcp4 config-reload

Prem Ctrl+D per enviar l’ordre. El servidor hauria de respondre:

[ { "arguments": { "hash": "F4BB02E0CC1B1F54004168FCF2DE952CF6E1F76D3B98D13167D3C0DC485F3257" }, "result": 0, "text": "Configuration successful." } ]

6.4. Consulta els registres

sudo journalctl -u kea-dhcp4-server
sudo journalctl -u kea-dhcp4-server -f   # en temps real

Un missatge d’èxit a la recàrrega té aquest aspecte:

DHCP4_DYNAMIC_RECONFIGURATION_SUCCESS dynamic server reconfiguration
succeeded with file: /etc/kea/kea-dhcp4.conf

7. Configuració de kea-dhcp6

El fitxer de configuració del servidor DHCPv6 es troba a /etc/kea/kea-dhcp6.conf

L’estructura és similar a la del servidor DHCPv4, però usa la clau Dhcp6 i les subxarxes es defineixen amb subnet6. Exemple bàsic:

{
    "Dhcp6": {
        "interfaces-config": {
            "interfaces": ["eth0"]
        },
        "lease-database": {
            "type": "memfile",
            "lfc-interval": 3600
        },
        "preferred-lifetime": 3000,
        "valid-lifetime": 4000,
        "subnet6": [{
            "id": 1,
            "subnet": "2001:db8:1::/64",
            "pools": [{
                "pool": "2001:db8:1::1 - 2001:db8:1::ffff"
            }]
        }]
    }
}

8. Stork: tauler de control gràfic per a Kea

Stork és una aplicació independent d’ISC que proporciona una interfície web centralitzada per monitorar i gestionar servidors Kea (i també BIND 9). No ve inclosa amb el paquet kea i cal instal·lar-la a part.

Stork logo

8.1. Arquitectura d’Stork

Stork es compon de dos elements:

8.2. Instal·lació al servidor Ubuntu

Pas 1: Instal·lació de dependències

sudo apt install curl apt-transport-https ca-certificates gnupg

Pas 2: Instal·la PostgreSQL (prerequisit del servidor)

sudo apt install postgresql postgresql-contrib

Habilita perquè s’iniciï automàticament en cada arrencada del sistema:

sudo systemctl enable --now postgresql

Pas 3: Afegeix el dipòsit d’Stork

Els paquets d’Stork no es troben als dipòsits oficials d’Ubuntu, sinó als dipòsits de Cloudsmith que manté ISC.

curl -1sLf 'https://dl.cloudsmith.io/public/isc/stork/setup.deb.sh' | sudo bash

Resposta esperada:

Executing the  setup script for the 'isc/stork' repository ...

   OK: Checking for required executable 'curl' ...
   OK: Checking for required executable 'apt-get' ...
   OK: Detecting your OS distribution and release using system methods ...
 ^^^^: ... Detected/provided for your OS/distribution, version and architecture:
 >>>>:
 >>>>: ... distro=ubuntu  version=26.04  codename=resolute  arch=x86_64  
 >>>>:
   OK: Checking for apt dependency 'apt-transport-https' ...
   OK: Checking for apt dependency 'ca-certificates' ...
   OK: Checking for apt dependency 'gnupg' ...
   OK: Checking for apt signed-by key support ...
   OK: Importing 'isc/stork' repository GPG keys ...
   OK: Checking if upstream install config is OK ...
   OK: Installing 'isc/stork' repository via apt ...
   OK: Updating apt repository metadata cache ...
   OK: The repository has been installed successfully - You're ready to rock!

Pas 4: Instal·la el servidor Stork

sudo apt install isc-stork-server

Pas 5: Crea la base de dades

L’eina stork-tool (inclosa amb el paquet) crea la base de dades automàticament:

sudo -u postgres stork-tool db-create --db-name stork --db-user stork-server

La sortida mostrarà les credencials generades. Observa les tres dades essencials. Apunta la contrasenya.

INFO[2026-06-26 04:49:25]       connection.go:44    Checking connection to database              
INFO[2026-06-26 04:49:25]       connection.go:109   Connected to database /var/run/postgresql/.s.PGSQL.5432 
INFO[2026-06-26 04:49:25]       connection.go:44    Checking connection to database              
INFO[2026-06-26 04:49:25]       connection.go:109   Connected to database /var/run/postgresql/.s.PGSQL.5432 
INFO[2026-06-26 04:49:25]             main.go:100   Created database and user for the server with the following credentials  database_name="stork" password="yWRvhBrI7uyFV+diGQJD2w4nBoqXyvKc" user="stork-server"

Pas 6: Configura el servidor

Edita el fitxer de configuració:

sudo nano /etc/stork/server.env

Descomenta i edita la línia de l’usuari de base de dades:

STORK_DATABASE_NAME=stork
STORK_DATABASE_USER_NAME=stork-server
STORK_DATABASE_PASSWORD=yWRvhBrI7uyFV+diGQJD2w4nBoqXyvKc # canvia'l pel teu

Pas 7: Inicia el servei

sudo systemctl enable --now isc-stork-server

Pas 8: Verifica l’estat del servei

sudo systemctl status isc-stork-server

Sortida esperada:

● isc-stork-server.service - ISC Stork Server
     Loaded: loaded (/usr/lib/systemd/system/isc-stork-server.service; enabled; preset: enabled)
     Active: active (running) since Fri 2026-06-26 04:57:43 UTC; 8s ago
 Invocation: 9bbc954afc7b443299c299a2155c1209
       Docs: man:stork-server(8)
   Main PID: 4842 (stork-server)
      Tasks: 7 (limit: 1718)
     Memory: 25.7M (peak: 25.7M)
        CPU: 169ms
     CGroup: /system.slice/isc-stork-server.service
             └─4842 /usr/bin/stork-server

8.3. Accedeix a la interfície web

Un cop el servei és actiu, obre un navegador i accedeix a:

http://<ip-del-servidor>:8080

Les credencials per defecte són:

Interfície web
⚠️
Avís

Canvia la contrasenya immediatament després del primer accés. La mida mínima de la contrasenya ha de ser de 12 caràcters.

Canvi de contrasenya

8.4. Funcionalitats principals de la interfície

Des del tauler d’Stork pots:

8.5. Instal·lació de l’agent Stork al mateix servidor

Pas 1. Instal·la l’agent

sudo apt install isc-stork-agent

Pas 2. Registre

L’agent s’ha de registrar per aconseguir els certificats TLS per establir la connexió gRPC amb el servidor Stork.

El procés de registre:

  1. L’agent genera un parell de claus i un CSR.
  2. Envia el CSR al servidor Stork.
  3. Un administrador ha d’aprovar el registre des de la interfície web de l’Stork Server (o es pot configurar aprovació automàtica).
  4. Un cop aprovat, l’agent descarrega els certificats signats.

Cal executar stork-agent register apuntant a l’URL del servidor Stork.

Sintaxi:

sudo su stork-agent -s /bin/sh -c 'stork-agent register \
   --server-url http://<IP_SERVIDOR>:<PORT_SERVIDOR> \
   --agent-host <IP_SERVIDOR> \
   --agent-port <PORT_AGENT> \
   --non-interactive'

Substitueix <IP_SERVIDOR>:<PORT_SERVIDOR> i <PORT_AGENT> pels teus valors.

Exemple:

sudo su stork-agent -s /bin/sh -c 'stork-agent register --server-url http://10.0.2.10:8080 --agent-host 10.0.2.10 --agent-port 8081 --non-interactive'

Resposta esperada:

INFO[2026-06-28 12:59:10]     register.go:93    There are no agent certificates - they will be generated. 
INFO[2026-06-28 12:59:10]     register.go:450   ========================================================================= 
INFO[2026-06-28 12:59:10]     register.go:451   AGENT TOKEN: D1C2D0BEDCF542C63C8FA00E160B12AC5C3EA469B545020BBEAE9E240135 
INFO[2026-06-28 12:59:10]     register.go:452   ========================================================================= 
INFO[2026-06-28 12:59:10]     register.go:455   Authorize the machine in the Stork web UI    
INFO[2026-06-28 12:59:10]     register.go:468   Try to register agent in Stork Server        
INFO[2026-06-28 12:59:10]     register.go:274   Machine registered                           
INFO[2026-06-28 12:59:10]     register.go:346   Stored agent-signed cert and CA cert         
INFO[2026-06-28 12:59:10]         main.go:317   Registration completed successfully

Pas 3. Autorització

Accedeix a la interfície web i, des de la interfície web, ves a Services → Machines → Unauthorized i autoritza la màquina.

Avís de màquina no registrada

Màquina no registrada

Autoritza

Pas 4. Modifica el port de l’agent

Edita el fitxer de configuració de l’agent Stork /etc/stork/agent.env

sudo nano /etc/stork/agent.env

Descomenta la línia i escriu el port configurat al registre.

STORK_AGENT_PORT=8081

Pas 5. Inicia l’agent

Inicia l’agent i habilita’l perquè s’iniciï automàticament en cada arrencada del sistema:

sudo systemctl enable --now isc-stork-agent

Passats uns segons podràs veure les dades a la interfície d’Stork

Tauler de control d’Stork

8.6. Instal·lació de l’agent Stork a una màquina que no és el servidor

Pas 1. Actualitza el sistema

sudo apt update && sudo apt upgrade -y

Pas 2. Instal·la les dependències

sudo apt install curl apt-transport-https ca-certificates gnupg

Pas 3. Afegeix el dipòsit d’Stork

curl -1sLf 'https://dl.cloudsmith.io/public/isc/stork/setup.deb.sh' | sudo bash

Pas 4. Instal·la l’agent

sudo apt install isc-stork-agent

Pas 5. Registre

Cal executar stork-agent register apuntant a l’URL del servidor Stork.

Sintaxi:

sudo su stork-agent -s /bin/sh -c 'stork-agent register \
   --server-url http://<IP_SERVIDOR>:<PORT_SERVIDOR> \
   --agent-host <IP_MÀQUINA> \
   --agent-port <PORT_MÀQUINA> \
   --non-interactive'

Substitueix <IP_SERVIDOR>:<PORT_SERVIDOR>, <IP_MÀQUINA> i <PORT_MÀQUINA> pels teus valors.

Exemple:

sudo su stork-agent -s /bin/sh -c 'stork-agent register --server-url http://10.0.2.10:8080 --agent-host 10.0.2.11 --agent-port 8080 --non-interactive'

Pas 6. Autorització

Accedeix a la interfície web i, des de la interfície web, ves a Services → Machines → Unauthorized i autoritza la màquina.

Pas 7. Inicia l’agent

Inicia l’agent i habilita’l perquè s’iniciï automàticament en cada arrencada del sistema:

sudo systemctl enable --now isc-stork-agent

8.7. Configuració de l’agent

La configuració general és:

STORK_AGENT_HOST - l’adreça IP de la interfície de xarxa o el nom DNS que stork-agent ha d’utilitzar per rebre connexions del servidor; el valor per defecte és 0.0.0.0 (és a dir, escolta a totes les interfícies).

STORK_AGENT_PORT - el número de port que l’agent ha d’utilitzar per rebre connexions del servidor; el valor per defecte és 8080.

STORK_AGENT_LISTEN_STORK_ONLY - això només habilita la funcionalitat de Stork, és a dir, desactiva els exportadors de Prometheus; el valor per defecte és fals.

STORK_AGENT_LISTEN_PROMETHEUS_ONLY - això només habilita els exportadors de Prometheus, és a dir, desactiva la funcionalitat d’Stork; el valor per defecte és fals.

STORK_AGENT_SKIP_TLS_CERT_VERIFICATION - això omet la verificació del certificat TLS quan stork-agent es connecta a Kea a través de TLS i Kea utilitza certificats autosignats; el valor per defecte és fals.

8.8. Fitxers d’Stork

Ruta Descripció
/etc/stork/server.env Configuració del servidor Stork
/etc/stork/agent.env Configuració de l’agent Stork

9. Configuració del DNS dinàmic (DDNS)

El servei kea-dhcp-ddns-server actualitza automàticament els registres DNS quan s’assigna o allibera un lloguer DHCP. Consulta com fer la configuració a DDNS

10. Versions disponibles

A juny de 2026, les versions actives de Kea són:

Versió Estat Publicació Fi de suport
3.2.0 Estable actual Juny 2026 Juliol 2027
3.0.3 LTS (Long-Term Support) Març 2026 Juny 2028
3.1.9 Desenvolupament Maig 2026

La versió disponible als dipòsits oficials d’Ubuntu 26.04 a juny de 2026 és la 3.0.3, i pot diferir de l’última versió publicada per ISC. Per a la versió més recent, es poden fer servir els dipòsits oficials de Cloudsmith que ISC manté per a Ubuntu, Debian, RHEL i Fedora.

11. Fitxers i directoris importants

Ruta Descripció
/etc/kea/kea-dhcp4.conf Configuració del servidor DHCPv4
/etc/kea/kea-dhcp6.conf Configuració del servidor DHCPv6
/etc/kea/kea-ctrl-agent.conf Configuració de l’agent de control REST
/etc/kea/kea-dhcp-ddns.conf Configuració del servei DDNS
/etc/kea/kea-api-password Contrasenya de l’API REST
/var/lib/kea/ Fitxers de lloguers (memfile)
/run/kea/ Sòcols de control Unix

12. Recursos addicionals

Versions d’aquest document

Domini Públic (CC0)