
Instrucciones de instalación y configuración básica del servidor de conmutación por error Kea DHCP
Kea DHCP es un servidor DHCP de código abierto desarrollado por Internet Systems Consortium (ISC) con soporte para DHCPv4 y DHCPv6.
Los ISC son los mismos tipos que desarrollan nuestro enlace y dhcpd favoritos. Kea: desarrollado en base a BIND 10.
Kea le permite ejecutar un servidor dhcp para sistemas pequeños y grandes empresas de telecomunicaciones / corporativas. De las innovaciones: el uso de la API para administrar el servicio, la capacidad de almacenar la base de datos de arrendamiento en el DBMS y el uso de enlaces para funciones adicionales.
Al momento de escribir (junio de 2019), la última
versión estable
es 1.5.0.No entraré en el trabajo detallado del protocolo DHCP, entonces el artículo será dos o tres veces más.
Hay un buen artículo sobre Habré .
El protocolo DHCP funciona sobre el protocolo UDP (puertos 67-68), se usa para la asignación dinámica de direcciones IP. Utiliza cuatro pasos para recibir / emitir direcciones IP:
descubre-oferta-solicitud-reconocimiento (DORA) . DHCP también utiliza el concepto de arrendamiento: arrendamiento de dirección, el término de arrendamiento para un dispositivo es
tiempo de arrendamiento .

Por que kea
El servidor DHCP de Kea tiene varias ventajas: velocidad de operación, la capacidad de crear un clúster de conmutación por error, una gran funcionalidad y la capacidad de comprar soporte técnico de los desarrolladores.
Este producto será utilizado por nuestro operador de telecomunicaciones, que planea emitir alrededor de 2 millones de direcciones, con 2000 solicitudes por segundo. Fue elegido por la velocidad del trabajo y la posibilidad de crear un clúster de dos servidores.
SO soportado
• CentOS Linux - 7.1804 (también conocido como 7.5)
• Fedora - 28, 29
• Ubuntu - 16.04, 18.04
• Debian GNU / Linux - 7, 8, 9
• FreeBSD - 11.0
• macOS - 10.13, 10.14
No hay planes de lanzamiento de Kea para Windows.
Arrendamiento de base de almacenamiento
Kea DHCP: admite el almacenamiento de la base de datos de direcciones emitidas en un archivo CSV local (archivo de memoria) o en uno de los tres DBMS: MySQL, PostgreSQL y Cassandra.
Las diferencias están en la velocidad y las capacidades de almacenamiento. Memfile es 10 veces más rápido, pero almacenar la base de datos en el DBMS le permite almacenar campos adicionales y opciones de DHCP. Comparación de velocidad:

Un análisis muy amplio del uso de varias bases de datos y almacenamiento local
aquí .
En nuestro proyecto, decidimos comenzar desde la base en memfile, ya que el número de solicitudes por segundo será más de 2000.
Instalación
Como ejemplo, Kea se implementará en base a CentOS 7 (edición mínima):
[root@localhost ~]
Antes de instalar el servicio en sí, debe instalar todas las dependencias necesarias:
- Impulsar las bibliotecas de C ++ (http://www.boost.org/). # entorno c ++ en tiempo de ejecución para ejecutar Kea
- Biblioteca criptográfica Botan (ver. 1.9) u OpenSSL (ver. 1.0.1). Aconsejo a openssl, ya que botan no será compatible desde Kea 1.6.0
- Se necesita el desarrollo de log4cplus (ver. 1.0.3) # para crear registros
- Compilador de C ++
- Bibliotecas automake, libtool, pkg-config # para construir e instalar el propio Kea
- Si va a utilizar un DBMS, instale MySQL, PostgreSQL o Cassandra.
Opcional si necesita RADIUS o NETCONF / YANG (en inglés)- Biblioteca de cliente FreeRADIUS cuando se utiliza el indicador de configuración --with-freeradius.
- Sysrepo (versión 0.7.6 o posterior) y libyang (versión 0.16-r2 o posterior) cuando: se utiliza el indicador de configuración con sysrepo.
- googletest (versión 1.8 o posterior), cuando se usa la opción de configuración --with-gtest para construir las pruebas unitarias.
- Las herramientas de generación de documentación elinks, docbook-xsl, libxslt y Doxygen, si usa la opción de configuración --enable-generate-docs para crear la documentación.
Paso 1. Instale las dependencias necesarias
Paso 2. Si todas las dependencias se levantaron normalmente, proceda a instalar el propio Kea
* Aquí debe mencionar las opciones necesarias: si planea usar el DBMS, debe marcar esta opción.
Todas las opciones durante el montaje:--prefijo
Defina la ubicación de instalación (el valor predeterminado es / usr / local).
--with-boost-include
Defina la ruta para encontrar los encabezados Boost.
--with-botan-config
Especifique la ruta al script botan-config para compilar con Botan para funciones criptográficas.
--with-mysql
Construya Kea con código que le permita almacenar arrendamientos y alojar reservas en una base de datos MySQL.
--with-pgsql
Construya Kea con código que le permita almacenar arrendamientos y alojar reservas en una base de datos PostgreSQL.
--with-cql
Cree Kea con código que le permita almacenar arrendamientos y reservas de host en una base de datos Cassandra (CQL).
--with-gtest, --with-gtest-source
Habilite la creación de las pruebas unitarias de C ++ con el marco de prueba de Google. Esta opción especifica la ruta a la fuente gtest. (Si el marco no está instalado en su sistema, puede descargarlo desde
github.com/google/googletest ). Desde
github.com/google/googletest ).
--with-benchmark, --with-benchmark-source
Habilite la creación de puntos de referencia de back-end de la base de datos utilizando el marco de referencia de Google. Esta opción especifica la ruta a la fuente gtest. (Si el marco no está instalado en su sistema, se puede descargar desde
github.com/google/benchmark ).
--with-log4cplus
Defina la ruta para encontrar las cabeceras y bibliotecas Log4cplus.
--with-openssl
Reemplace Botan por OpenSSL, la biblioteca criptográfica. De manera predeterminada, configura las búsquedas de una instalación de Botan válida: si no se encuentra una, busca OpenSSL.
Se ensambla durante un tiempo relativamente largo, durante el ensamblaje puede producir errores si no se establece algún tipo de dependencia. Al final verá el resultado del ensamblaje:

Paso 3. Instalar
make sudo make install
La operación de fabricación lleva mucho tiempo (aproximadamente una hora). Realice la instalación durante aproximadamente un minuto.
Lanzamiento y configuración
Se inicia desde el directorio instalado:
keactrl start
Todavía hay opciones de parada, recarga (recarga de la configuración) y estado
Al inicio, inicia tres procesos: kea-dhcp4, kea-dhcp6 kea-ctrl-agent, un agente para administrar y administrar las comunicaciones del servidor
Si no necesita dhcp6, solo puede ejecutar dhcp4, no olvide iniciar el agente:
keactrl start -s dhcp4, ctrl_agent
Configuracion
El archivo de configuración principal dhcp4 es /usr/local/etc/kea/kea-dhcp4.conf
El archivo está bien descrito, hay muchos comentarios y ejemplos de configuraciones, no se confundirá, escribiré solo las configuraciones principales:
Especifique la interfaz o dirección a través de la cual funcionará dhcp4:
"interfaces-config": { // interface name (eg "eth0" or specific IPv4 address on that // interface name (eg "eth0/192.0.2.1"). "interfaces": [ ] }
Especifique dónde almacenar la base de arrendamiento
"lease-database": { // Memfile is the simplest and easiest backend to use. It's a in-memory // C++ database that stores its state in CSV file. "type": "memfile", "lfc-interval": 3600 },
Qué servidores DNS se presentarán a los clientes
"option-data": [ { "name": "domain-name-servers", "data": "192.0.2.1, 192.0.2.2" },
El nombre de dominio de su organización
{ "name": "domain-search", "data": "mydomain.example.com, example.com" },
Y la configuración principal es subredes, grupos y puerta de enlace predeterminada:
"subnet4": [ { //subnet , Kea "subnet": "192.0.2.0/24", // , "pools": [ { "pool": "192.0.2.1 - 192.0.2.200" } ], "option-data": [ { // default gateway "name": "routers", "data": "192.0.2.1" } ],
Bueno, el último parámetro es necesario para reservar direcciones del grupo / subred, las direcciones especificadas no se emitirán a los clientes, son necesarias para las direcciones de servidor / dispositivo que están registradas estáticamente:
"reservations": [ { "hw-address": "1a:1b:1c:1d:1e:1f", "ip-address": "192.0.2.201" } ]
Estas son las configuraciones principales, después de cambiar la configuración, debe reiniciar el servicio:
keacrtl stop keactrl start -s dhcp4,ctrl_agent
Base CSV
La base de datos local se almacena aquí -
/usr/local/var/kea/kea-leases4.csv
Registros
Los registros se almacenan por defecto - / usr / local / var / log /
Aquí, cada uno de los componentes tiene un archivo separado:
- kea-dhcp4.log
- kea-dhcp6.log
- kea-ctrl-agent.log
En otro artículo, describiré cómo iniciar un clúster de dos servidores y configurar la sincronización de la base de datos de salida de arrendamiento.