Instalação do Servidor DHCP Kea do ISC
Primeiro, corrija a detecção do Python-3.12 pelo sistema de
construção:
sed -e 's/:3/:4/' \
-i configure
Remova uma etapa de instalação que usa um módulo obsoleto do
Python:
sed -e '/dlist="/d' \
-i src/bin/shell/Makefile.in
Instale o Servidor DHCP Kea do ISC
executando os seguintes comandos:
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--enable-shell \
--with-openssl \
--disable-static \
--docdir=/usr/share/doc/kea-2.4.1 &&
make
Para testar os resultados, você precisa ter instalado o GoogleTest
e mantido o fonte dele. Você também deveria ter passado
--with-gtest-source=/caminho/para/diretório_fonte/googletest
para configure acima.
Execute os testes com make
check. Três testes na suíte TLSTest são conhecidos
por falharem.
Para instalar a suíte Servidor DHCP Kea
do ISC, emita os seguintes comandos como o(a) usuário(a)
root
:
make -j1 install
Explicações do Comando
--enable-shell
: Permite
construir kea-shell,
uma interface de linha de comando para o agente de controle.
--with-openssl
: Permite
usar OpenSSL para comunicação com o agente de controle e para
atualizações de DNS.
--disable-static
: Essa
chave impede a instalação das versões estáticas das bibliotecas.
--with-pgsql
ou --with-mysql
: Kea do
ISC consegue armazenar as concessões em uma base de dados.
Isso pode ser útil em ambientes grandes executando um cluster de
servidores DHCP. Usar a estrutura de retaguarda memfile (que é um arquivo CSV armazenado
localmente) é possível de qualquer maneira.
--enable-generate-docs
: Se a
documentação for para ser reconstruída, adicione essa opção.
Diversas dependências precisam estar instaladas para gerar a
documentação.
make -j1 install: O
ISC não recomenda nenhuma forma de paralelismo ou opções de tarefa
de servidor ao fazer a instalação.
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.
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-20240209 :
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"
// Inicia /etc/kea/kea-ctrl-agent.conf
{
// Esta é uma configuração básica para o Agente de Controle do Kea.
// Interface RESTful para estar disponível em 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
}
]
}
}
// Termina /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"
// Inicia /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
}
]
}
}
// Termina /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.18.24 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"
// Inicia /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
}
]
}
}
// Termina /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.18.24.
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
.