Instalação do Servidor DHCP Kea do ISC
        
        
          Primeiro, aplique algumas correções exigidas para boost-1.89.0:
        
        sed -e "s/, modules: \['system'\]//" -i meson.build                      &&
sed -e "/shared_ptr.hpp/a#include <boost/asio/deadline_timer.hpp>"       \
    -i src/lib/asiolink/interval_timer.cc                                &&
sed -e "/posix_time_types.hpp/a#include <boost/asio/deadline_timer.hpp>" \
    -i src/lib/asiodns/io_fetch.cc                                       &&
sed -e "/posix_time_types.hpp/a#include <boost/asio/deadline_timer.hpp>" \
    -i src/lib/asiodns/tests/io_fetch_unittest.cc
        
          Agora, instale o Servidor DHCP Kea do
          ISC executando os seguintes comandos:
        
        mkdir build &&
cd    build &&
meson setup ..             \
      --prefix=/usr        \
      --sysconfdir=/etc    \
      --localstatedir=/var \
      --buildtype=release  \
      -D crypto=openssl    \
      -D runstatedir=/run  &&
ninja
        
          Se os testes foram habilitados, execute ninja test para testar os
          resultados. Existem testes que exigem uma base de dados ativa
          quando quaisquer dos ganchos de base de dados forem construídos.
        
        
          Para instalar a suíte Servidor DHCP Kea
          do ISC, emita os seguintes comandos como o(a) usuário(a)
          root:
        
        ninja install
        
          Corrija alguns caminhos codificados no conjunto de comandos
          sequenciais keactrl:
        
        sed -e "s;\${prefix}/;;" -i /usr/sbin/keactrl
        
          Crie alguns diretórios e corrija as configurações de permissão
          deles como o(a) usuário(a) root:
        
        install -dm0750 /var/lib/kea
install -dm0750 /var/log/kea
       
      
        
          Explicações do Comando
        
        
          -D crypto=openssl: Permite usar OpenSSL
          para comunicação com o agente de controle e para atualizações de
          DNS. Use -D crypto=botan se você quiser
          usar o botan. O padrão é openssl.
        
        
          -D postgresql=enabled ou -D mysql=enabled: O ISC
          Kea pode armazenar os leases em uma base de dados. Isso pode
          ser útil em ambientes grandes que executam um cluster de servidores
          DHCP. Usar a estrutura de retaguarda memfile (que é um arquivo CSV armazenado
          localmente) é possível de qualquer maneira.
        
        
          -D tests=enabled: Essa opção é exigida
          para construir a suíte de teste. Descarte-a se você não for
          executar os testes.
        
        
          -D krb5=enabled: Essa chave permite
          integração com Kerberos para autenticação de computadores clientes
          em um ambiente corporativo.
        
       
      
        
          Configurando o Servidor DHCP Kea do ISC
        
        
          O suporte de IPv4, IPv6 e DDNS foi dividido em servidores separados
          que executam independentemente um do outro. Cada um deles tem o
          próprio arquivo dele de configuração. Arquivos
          adicionais de configuração vem oriundos do agente keactrl, que é
          usado para controlar os servidores de maneira fácil.
        
        
          Observe que o Agente de Controle Kea está obsoleto desde a versão
          3.0.0. Não confunda kea-ctrl-agent
          com keactrl.
        
        
          Consulte-se o Manual de Referência
          do(a) Administrador(a) do Kea para informações detalhadas
          acerca da configuração do Kea do
          ISC, pois ele é um sistema bastante capaz. A configuração
          mostrada abaixo é o mínimo para colocar um servidor DHCP em
          execução, mas já inclui configuração para DDNS (Dynamic DNS). Essa
          configuração poderia estar funcionando para redes de
          intercomunicação pequenas com poucos clientes e baixo tráfego. Para
          instalações maiores com milhares de clientes, o Kea do ISC pode ser configurado para usar
          bases de dados (mariadb ou postgresql) para armazenar as concessões
          e construir um cluster com múltiplos nós. Ele pode ser integrado ao
          Stork
          do ISC, que é um painel de gerenciamento para o Kea do ISC.
        
        
          Se você quiser iniciar o Servidor DHCP na inicialização, instale
          o conjunto de comandos sequenciais de
          inicialização /etc/rc.d/init.d/kea-dhcpd incluído no
          pacote blfs-bootscripts-20250225
          :
        
        make install-kea-dhcpd
        
          
            Arquivos de
            Configuração
          
          
            /etc/kea/keactrl.conf, /etc/kea/kea-ctrl-agent.conf, /etc/kea/kea-dhcp4.conf, /etc/kea/kea-dhcp6.conf e /etc/kea/kea-dhcp-ddns.conf
          
         
        
          
            Configuração do
            Controle do Kea
          
          
            keactrl é usado
            para controlar os servidores independentes (IPv4, IPv6, DDNS). O
            arquivo de configuração dele, /etc/kea/keactrl.conf, é instalado por padrão e
            inclui muitas configurações de caminho que são definidas devido
            ao configure ao
            tempo da construção. Também inclui configurações para especificar
            qual dos servidores deveria ser iniciado.
          
          
            
              - 
                
                  Agente de Controle
                
                
                  O Agente de Controle é um processo de segundo plano que
                  permite a (re)configuração do serviço DHCP do Kea via API
                  REST. Configure ctrl_agent=yes
                  para iniciar o agente de controle (serviço que fornece uma
                  API REST); configure ctrl_agent=no caso o agente de controle
                  não seja necessário.
                
               
              - 
                
                  Servidor DHCP de IPv4
                
                
                  Esse processo de segundo plano lida com solicitações de
                  endereços IPv4. Configure dhcp4=yes para iniciá-lo; configure
                  dhcp4=no caso o serviço DHCP
                  para IPv4 não seja desejado.
                
               
              - 
                
                  Servidor DHCP de IPv6
                
                
                  Esse processo de segundo plano lida com solicitações de
                  endereços IPv6. Configure dhcp6=yes para iniciá-lo; configure
                  dhcp6=no caso o serviço DHCP
                  para IPv6 não seja desejado.
                
               
              - 
                
                  DNS Dinâmico
                
                
                  Esse processo de segundo plano é usado para atualizar um
                  servidor DNS dinamicamente quando Kea atribui um endereço
                  IP a um dispositivo. Configure dhcp_ddns=yes para habilitá-lo; configure
                  dhcp_ddns=no caso as
                  atualizações dinâmicas de DNS não sejam desejadas.
                
               
            
           
          
            O serviço Netconf não é instalado porque as dependências exigidas
            não são abrangidas pelo atual livro do BLFS. .
          
          
            Com o seguinte comando, o Kea será configurado para iniciar o
            serviço DHCP para IPv4 e a atualização dinâmica do DNS, enquanto
            o agente de controle e o serviço DHCP para IPv6 permanecerão
            inativos. Ajuste o comando para atender às tuas necessidades nos
            serviços iniciados e execute como o(a) usuário(a) root:
          
          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
         
        
          
            Configuração do Agente de Controle
          
          
            A configuração fornecida poderia ser usada sem mudanças, mas, no
            BLFS, objetos como soquetes são armazenados em /run em vez de em /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/kea/kea4-ctrl-socket"
      },
      "dhcp6": {
        "socket-type": "unix",
        "socket-name": "/run/kea/kea6-ctrl-socket"
      },
      "d2": {
        "socket-type": "unix",
        "socket-name": "/run/kea/kea-ddns-ctrl-socket"
      }
    },
    "loggers": [
      {
        "name": "kea-ctrl-agent",
        "output_options": [
          {
            "output": "/var/log/kea/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
         
        
          
            Configuração
            do Servidor DHCP de IPv4
          
          
            Um arquivo de configuração de amostra é criado em /etc/kea/kea-dhcp4.conf. Ajuste o arquivo para
            atender às tuas necessidades ou sobrescreva-o executando o
            seguinte comando como o(a) usuário(a) root (você precisará editar esse arquivo de
            qualquer maneira: pelo menos o campo interfaces, o campo ddns-qualifying-suffix e quase todos
            os campos em Subnet4:
          
          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/kea/kea4-ctrl-socket"
    },
    "lease-database": {
      "type": "memfile",
      "lfc-interval": 3600,
      "name": "/var/lib/kea/kea-leases4.csv"
    },
    "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": [
      {
        "id": 1001,   // Each subnet requires a unique numeric id
        "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/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
         
        
          
            Configuração
            do Servidor DHCP de IPv6
          
          
            A configuração para IPv6 é semelhante à configuração do IPv4. O
            arquivo de configuração é /etc/kea/kea-dhcp6.conf.
          
         
        
          
            Configuração do DNS Dinâmico
          
          
            Se existir um servidor BIND-9.20.12 executando, o Kea do ISC poderá atualizar o DNS quando
            fornecer um endereço IP para um cliente. Um arquivo de
            configuração de amostra é criado em /etc/kea/kea-dhcp-ddns.conf. Ajuste o arquivo
            para atender às tuas necessidades ou sobrescreva-o executando o
            seguinte comando como o(a) usuário(a) root:
          
          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/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/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
          
            
            
              Nota
            
            
              O valor de secret é apenas um
              exemplo. Gere a chave para tua instalação usando o comando
              rndc-confgen -a
              ou o comando tsig-keygen, ambos fornecidos
              por BIND-9.20.12.
            
            
              Nessa configuração de exemplo, é presumido que o servidor DNS
              executa na mesma máquina que o Kea (acessível via 127.0.0.1) e que essa máquina tenha o IP
              192.168.56.2.