Kea 2.4.0 DHCP Server

Introduksjon til ISC Kea DHCP Server

ISC Kea pakken inneholder serverprogrammer for DHCP. Det er etterfølgeren til den gamle ISC DHCP server som er utgått siden desember 2022.

Denne pakken er kjent for å bygge og fungere riktig ved å bruke en LFS 12.0 plattform.

Pakkeinformasjon

Kea Avhengigheter

Påkrevd

Boost-1.83.0 og log4cplus-2.1.0

Valgfri

MIT Kerberos V5-1.21.2, for dokumentasjon Doxygen-1.9.7, Graphviz-8.1.0, og sphinx_rtd_theme-1.2.2

Valgfrie database bakstykker

MariaDB-10.11.4 eller MySQL, og PostgreSQL-15.4

Kjernekonfigurasjon

Du må ha Packet Socket støtte. IPv6 støtte er valgfritt.

[*] Networking support --->                                                [NET]
  Networking options --->
    <*/M> Packet socket                                                 [PACKET]
    [*]   TCP/IP networking                                               [INET]
    <*>     The IPv6 protocol --->                                        [IPV6]

Installasjon av ISC Kea DHCP Server

Installer ISC Kea DHCP Server ved å kjøre følgende kommandoer:

./configure --prefix=/usr        \
            --sysconfdir=/etc    \
            --docdir=/usr/share/doc/kea-2.4.0 \
            --localstatedir=/var \
            --enable-shell       \
            --with-openssl       \
            --disable-static &&
make

For å teste resultatene, utsted: make check.

For å installere ISC Kea DHCP Server pakken, utsted følgende kommandoer som root bruker:

make -j1 install

Parameterforklaringer

--with-pgsql or --with-mysql: ISC Kea kan lagre leiekontraktene på en database. Dette kan være nyttig i store miljøer som kjører en klynge med DHCP servere. Å bruke memfile bakstykket (som er en CSV fil som er lagret lokalt) er mulig uansett.

--enable-generate-docs: Hvis dokumentasjonen skal gjenoppbygges, legg til dette alternativet. Flere avhengigheter må installeres for å generere dokumentasjonen.

make -j1 install: ISC anbefaler ikke noen form for parallell eller jobbserver alternativer når du utfører installasjonen.

Konfigurere ISC Kea DHCP Server

Støtte for IPv4, IPv6 og DDNS er delt inn i separate servere som kjører uavhengig av hverandre. Hver av dem har sin egen konfigurasjonsfil. Ekstra konfigurasjonsfiler kommer fra keactrl agenten som brukes til å kontrollere servere på en enkel måte.

Rådfør deg med Kea Administrator Reference Manual for detaljert informasjon om konfigurasjonen av ISC Kea siden det er et ganske kapabelt system. Konfigurasjonen viste et minimum for å få en DHCP serveren til å kjøre, men den inkluderer allerede konfigurasjon for DDNS (Dynamisk DNS). Det oppsettet fungerer kanskje for små nettverk med få klienter og lite trafikk. For større installasjoner med tusenvis av kunder, ISC Kea kan konfigureres til å bruke databaser (mariadb eller postgresql) til å lagre leiekontraktene og bygge en klynge med flere noder. Det kan være integrert til ISC Stork som er et administrasjons dashbord til ISC Kea.

Hvis du vil starte DHCP serveren ved oppstart, installer kea-dhcpd.service enheten inkludert i blfs-systemd-units-20230816 pakken:

make install-kea-dhcpd

Konfigurasjonsfiler

/etc/kea/keactrl.conf, /etc/kea/kea-ctrl-agent.conf, /etc/kea/kea-dhcp4.conf, /etc/kea/kea-dhcp6.conf og /etc/kea/kea-dhcp-ddns.conf

Kea kontrollkonfigurasjon

keactrl brukes til å kontrollere uavhengige servere (IPv4, IPv6, DDNS). Konfigurasjonsfilen /etc/kea/keactrl.conf er installert som standard og inkluderer mange baneinnstillinger som er definert på grunn av configure ved byggetiden. Det inkluderer også innstillinger for å spesifisere hvilken av serverne som skal være startet.

  • Kontrollagent

    Kontrollagenten er en nisse som tillater (re)konfigurasjon av Kea DHCP tjenesten via REST API. Sett ctrl_agent=yes for å starte kontrollagent (tjeneste som gir en REST API), sett ctrl_agent=no i tilfelle kontrollagenten ikke er nødvendig.

  • IPv4 DHCP server

    Denne nissen håndterer forespørsler om IPv4 adresser. Sett dhcp4=yes for å starte den, sett dhcp4=no i tilfelle DHCP tjeneste for IPv4 ikke er ønsket.

  • IPv6 DHCP server

    Denne nissen håndterer forespørsler om IPv6 adresser. Sett dhcp6=yes for å starte den, sett dhcp6=no i tilfelle DHCP tjeneste for IPv6 ikke er ønsket.

  • Dynamic DNS

    Denne nissen brukes til å oppdatere en DNS server dynamisk når Kea tildeler en IP adresse til en enhet. Sett dhcp_ddns=yes for å aktivere det, sett dhcp_ddns=no i tilfelle dynamic DNS oppdateringer ikke er ønsket.

Netconf tjenesten er ikke installert fordi nødvendige avhengigheter dekkes ikke av gjeldende BLFS bok.

Med følgende kommando vil Kea bli konfigurert til å starte dhcp tjenesten for IPv4 og dynamisk DNS oppdatering, mens kontrollagenten og dhcp tjenesten for IPv6 forblir nede. Juster kommandoen til å matche dine behov på startet tjenester og utfør som root bruker:

sed -e "s/^dhcp4=.*/dhcp4=yes/" \
    -e "s/^dhcp6=.*/dhcp6=no/" \
    -e "s/^dhcp_ddns=.*/dhcp_ddns=yes/" \
    -e "s/^ctrl_agent=.*/ctrl_agent=no/" \
    -i /etc/kea/keactrl.conf

Kontrollagentkonfigurasjon

Den oppgitte konfigurasjonen kan brukes uten endringer men i BLFS er objekter som sockets lagret i /run heller enn i /tmp.

cat > /etc/kea/kea-ctrl-agent.conf << "EOF"
// Begin /etc/kea/kea-ctrl-agent.conf
{
  // This is a basic configuration for the Kea Control Agent.
  // RESTful interface to be available at http://127.0.0.1:8000/
  "Control-agent": {
    "http-host": "127.0.0.1",
    "http-port": 8000,
    "control-sockets": {
      "dhcp4": {
        "socket-type": "unix",
        "socket-name": "/run/kea4-ctrl-socket"
      },
      "dhcp6": {
        "socket-type": "unix",
        "socket-name": "/run/kea6-ctrl-socket"
      },
      "d2": {
        "socket-type": "unix",
        "socket-name": "/run/kea-ddns-ctrl-socket"
      }
    },

    "loggers": [
      {
        "name": "kea-ctrl-agent",
        "output_options": [
          {
            "output": "/var/log/kea-ctrl-agent.log"
            "pattern": "%D{%Y-%m-%d %H:%M:%S.%q} %-5p %m\n"
          }
        ],
        "severity": "INFO",
        "debuglevel": 0
      }
    ]
  }
}
// End /etc/kea/kea-ctrl-agent.conf
EOF

IPv4 DHCP Server Konfigurasjon

En eksempelkonfigurasjonsfil opprettes i /etc/kea/kea-dhcp4.conf. Juster filen slik at den passer dine behov eller overskriv den ved å bruke følgende eksempel som root bruker:

cat > /etc/kea/kea-dhcp4.conf << "EOF"
// Begin /etc/kea/kea-dhcp4.conf
{
  "Dhcp4": {
    // Add names of your network interfaces to listen on.
    "interfaces-config": {
      "interfaces": [ "eth0", "eth2" ]
    },

    "control-socket": {
      "socket-type": "unix",
      "socket-name": "/run/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,

    // Enable DDNS - Kea will dynamically update the DNS
    "ddns-send-updates" : true,
    "ddns-qualifying-suffix": "your.domain.tld",
    "dhcp-ddns" : {
      "enable-updates": true
    },

    "subnet4": [
      {
        "subnet": "192.168.56.0/24",
        "pools": [ { "pool": "192.168.56.16 - 192.168.56.254" } ],
        "option-data": [
          {
            "name": "domain-name",
            "data": "your.domain.tld"
          },
          {
            "name": "domain-name-servers",
            "data": "192.168.56.2, 192.168.3.7"
          },
          {
            "name": "domain-search",
            "data": "your.domain.tld"
          },
          {
            "name": "routers",
            "data": "192.168.56.2"
          }
        ]
      }
    ],

    "loggers": [
      {
        "name": "kea-dhcp4",
        "output_options": [
          {
            "output": "/var/log/kea-dhcp4.log",
            "pattern": "%D{%Y-%m-%d %H:%M:%S.%q} %-5p %m\n"
          }
        ],
        "severity": "INFO",
        "debuglevel": 0
      }
    ]
  }
}
// End /etc/kea/kea-dhcp4.conf
EOF

Konfigurasjonen for IPv6 er lik konfigurasjonen av IPv4. Konfigurasjonsfilen er /etc/kea/kea-dhcp6.conf.

Dynamisk DNS konfigurasjon

Hvis det er en BIND-9.18.18 server som kjører, ISC Kea kan oppdatere DNS når det gir en IP adresse til en klient. En eksempelkonfigurasjon fil er opprettet i /etc/kea/kea-dhcp-ddns.conf. Juster filen slik at den passer dine behov eller overskriv den ved å bruke følgende eksempel som root bruker:

cat > /etc/kea/kea-dhcp-ddns.conf << "EOF"
// Begin /etc/kea/kea-dhcp-ddns.conf
{
  "DhcpDdns": {
    "ip-address": "127.0.0.1",
    "port": 53001,
    "control-socket": {
      "socket-type": "unix",
      "socket-name": "/run/kea-ddns-ctrl-socket"
    },

    "tsig-keys": [
      {
        "name"      : "rndc-key",
        "algorithm" : "hmac-sha256",
        "secret"    : "1FU5hD7faYaajQCjSdA54JkTPQxbbPrRnzOKqHcD9cM="
      }
    ],

    "forward-ddns" : {
      "ddns-domains" : [
        {
          "name" : "your.domain.tld.",
          "key-name": "rndc-key",
          "dns-servers" : [
            {
              "ip-address" : "127.0.0.1",
              "port" : 53
            }
          ]
        }
      ]
    },

    "reverse-ddns" : {
      "ddns-domains" : [
        {
          "name" : "56.168.192.in-addr.arpa.",
          "key-name": "rndc-key",
          "dns-servers" : [
            {
              "ip-address" : "127.0.0.1",
              "port" : 53
            }
          ]
        }
      ]
    },

    "loggers": [
      {
        "name": "kea-dhcp-ddns",
        "output_options": [
          {
            "output": "/var/log/kea-ddns.log",
            "pattern": "%D{%Y-%m-%d %H:%M:%S.%q} %-5p %m\n"
          }
        ],
        "severity": "INFO",
        "debuglevel": 0
      }
    ]
  }
}
// End /etc/kea/kea-dhcp-ddns.conf
EOF
[Note]

Note

Verdien av secret er bare et eksempel. Generer nøkkelen for installasjonen din ved å bruke rndc-confgen -a kommandoen eller tsig-keygen kommandoen som begge er levert av BIND-9.18.18.

I denne eksempelkonfigurasjonen antas det at DNS serveren kjører på samme maskin som Kea gjør (tilgjengelig via 127.0.0.1) og at denne maskinen har IP 192.168.56.2.

Innhold

Installerte Programmer: keactrl, kea-admin, kea-ctrl-agent, kea-dhcp4, kea-dhcp6, kea-dhcp-ddns, kea-lfc, kea-shell
Installerte Biblioteker: libkea-*
Installerte Mapper: /etc/kea, /usr/include/kea, /var/lib/kea

Korte Beskrivelser

keactrl

Verktøy for å kontrollere (starte/stoppe) serverprosessene.

kea-admin

kea-admin er et skallskript som tilbyr databasevedlikehold.

kea-ctrl-agent

Nisse som viser et RESTful kontrollgrensesnitt for å administrere Kea servere.

kea-dhcp4

Servernissen som gir IPv4 adresser.

kea-dhcp6

Servernissen som gir IPv6 adresser.

kea-dhcp-ddns

Servernissen som utfører de dynamiske DNS oppdateringene.

kea-lfc

kea-lfc serviceprosessen fjerner overflødig informasjon fra filene som brukes til å gi vedvarende lagring for memfil database bakstykket. Den drives av Kea DHCP serveren.

keashell

RESTful klient til ISC Kea servicer.