
Instructions d'installation et de configuration de base du serveur de basculement DHCP Kea
Kea DHCP est un serveur DHCP open source développé par Internet Systems Consortium (ISC) avec prise en charge de DHCPv4 et DHCPv6.
Les ISC sont les mĂȘmes gars qui dĂ©veloppent nos bind et dhcpd prĂ©fĂ©rĂ©s. Kea - dĂ©veloppĂ© sur la base de BIND 10.
Kea vous permet d'exécuter un serveur DHCP pour les petits systÚmes et les grandes entreprises de télécommunications / entreprises. Parmi les innovations - l'utilisation de l'API pour gérer le service, la possibilité de stocker la base de données de location dans le SGBD et l'utilisation de hooks pour des fonctions supplémentaires.
Au moment de la rédaction (juin 2019), la derniÚre
version stable
est la 1.5.0.Je n'entrerai pas dans le travail détaillé du protocole DHCP, alors l'article sera deux ou trois fois plus.
Il y a un bon article sur Habré .
Le protocole DHCP fonctionne sur le protocole UDP (ports 67-68), il est utilisé pour l'allocation dynamique des adresses IP. Il utilise quatre étapes pour recevoir / émettre des adresses IP -
découvrir-offre-demande-accusé de réception (DORA) . DHCP utilise également le concept de bail - bail d'adresse, la durée du bail pour un périphérique est la durée du
bail .

Pourquoi kea
Le serveur DHCP de Kea présente plusieurs avantages: rapidité de fonctionnement, possibilité de créer un cluster de basculement, grande fonctionnalité et possibilité d'acheter du support technique auprÚs des développeurs.
Ce produit sera utilisĂ© par notre opĂ©rateur tĂ©lĂ©com, qui prĂ©voit d'Ă©mettre environ 2 millions d'adresses, avec 2000 requĂȘtes par seconde. Il a Ă©tĂ© choisi en raison de la rapiditĂ© du travail et de la possibilitĂ© de crĂ©er un cluster de deux serveurs.
OS pris en charge
âą CentOS Linux - 7.1804 (alias 7.5)
âą Fedora - 28, 29
âą Ubuntu - 16.04, 18.04
âą Debian GNU / Linux - 7, 8, 9
âą FreeBSD - 11.0
âą macOS - 10.13, 10.14
Il n'y a aucun plan de lancement de Kea pour Windows.
Stockage de base de location
DHCP Kea - prend en charge le stockage de la base de données des adresses émises dans un fichier CSV local (memfile) ou dans l'un des trois SGBD - MySQL, PostgreSQL et Cassandra.
Les différences résident dans la vitesse et les capacités de stockage. Memfile est 10 fois plus rapide, mais le stockage de la base de données dans le SGBD vous permet de stocker des champs supplémentaires et des options DHCP. Comparaison de vitesse:

Une trÚs grande analyse de l'utilisation de diverses bases de données et du stockage local
ici .
Dans notre projet, nous avons dĂ©cidĂ© de partir de la base dans memfile, car le nombre de requĂȘtes par seconde sera supĂ©rieur Ă 2000.
L'installation
à titre d'exemple, Kea sera déployé sur la base de CentOS 7 (édition minimale):
[root@localhost ~]
Avant d'installer le service lui-mĂȘme, vous devez installer toutes les dĂ©pendances nĂ©cessaires:
- Boost C ++ Libraries (http://www.boost.org/). # environnement c ++ d'exĂ©cution pour exĂ©cuter Kea lui-mĂȘme
- BibliothÚque de cryptographie Botan (ver. 1.9) ou OpenSSL (ver. 1.0.1). Je conseille openssl, car botan ne sera plus supporté depuis Kea 1.6.0
- log4cplus (ver. 1.0.3) développement # est nécessaire pour créer des journaux
- Compilateur C ++
- BibliothĂšques automake, libtool, pkg-config # pour construire et installer Kea lui-mĂȘme
- Si vous utilisez un SGBD, installez MySQL, PostgreSQL ou Cassandra.
Facultatif si vous avez besoin de RADIUS ou NETCONF / YANG (en anglais)- BibliothÚque client FreeRADIUS lorsque l'indicateur de configuration --with-freeradius est utilisé.
- Sysrepo (version 0.7.6 ou ultérieure) et libyang (version 0.16-r2 ou ultérieure) lorsque - avec l'indicateur de configuration -sysrepo utilisé.
- googletest (version 1.8 ou ultérieure), lors de l'utilisation de l'option de configuration --with-gtest pour construire les tests unitaires.
- Les outils de génération de documentation elinks, docbook-xsl, libxslt et Doxygen, si vous utilisez l'option de configuration --enable-generate-docs pour créer la documentation.
Ătape 1. Installez les dĂ©pendances nĂ©cessaires
Ătape 2. Si toutes les dĂ©pendances se sont levĂ©es normalement, procĂ©dez Ă l'installation de Kea lui-mĂȘme
* Ici, vous devez mentionner les options nécessaires - si vous prévoyez d'utiliser le SGBD, vous devez cocher cette option.
Toutes les options lors du montage:- préfixe
Définissez l'emplacement d'installation (la valeur par défaut est / usr / local).
--with-boost-include
DĂ©finissez le chemin pour trouver les en-tĂȘtes Boost.
--avec-botan-config
Spécifiez le chemin d'accÚs au script botan-config à construire avec Botan pour les fonctions cryptographiques.
--with-mysql
Construisez Kea avec du code pour lui permettre de stocker les baux et les réservations d'hÎte dans une base de données MySQL.
--with-pgsql
Construisez Kea avec du code pour lui permettre de stocker les baux et les réservations d'hÎte dans une base de données PostgreSQL.
--with-cql
Construisez Kea avec du code pour lui permettre de stocker les baux et les réservations d'hÎte dans une base de données Cassandra (CQL).
--with-gtest, --with-gtest-source
Activez la construction des tests unitaires C ++ Ă l'aide du framework de test Google. Cette option spĂ©cifie le chemin d'accĂšs Ă la source gtest. (Si le framework n'est pas installĂ© sur votre systĂšme, il peut ĂȘtre tĂ©lĂ©chargĂ© sur
github.com/google/googletest .) Sur
github.com/google/googletest .)
--with-benchmark, --with-benchmark-source
Activez la construction des benchmarks de base de donnĂ©es Ă l'aide du framework Google Benchmark. Cette option spĂ©cifie le chemin d'accĂšs Ă la source gtest. (Si le framework n'est pas installĂ© sur votre systĂšme, il peut ĂȘtre tĂ©lĂ©chargĂ© sur
github.com/google/benchmark .)
--with-log4cplus
DĂ©finissez le chemin d'accĂšs pour trouver les en-tĂȘtes et les bibliothĂšques Log4cplus.
--with-openssl
Remplacez Botan par OpenSSL la bibliothÚque cryptographique. Par défaut, configurez recherche une installation Botan valide: s'il n'en trouve pas, il recherche OpenSSL.
Il est assemblé pendant une durée relativement longue, pendant l'assemblage, il peut produire des erreurs si une sorte de dépendance n'est pas établie. à la fin, vous verrez le résultat de l'assemblage:

Ătape 3. Installer
make sudo make install
L'opération de création prend beaucoup de temps (environ une heure). Faites l'installation pendant environ une minute.
Lancement et configuration
Il est lancé depuis le répertoire installé:
keactrl start
Il y a encore des options d'arrĂȘt, de rechargement (rechargement de la configuration) et d'Ă©tat
Au démarrage, il démarre trois processus - kea-dhcp4, kea-dhcp6 kea-ctrl-agent - un agent pour gérer et gérer les communications du serveur
Si vous n'avez pas besoin de dhcp6, vous ne pouvez exécuter que dhcp4, n'oubliez pas de démarrer l'agent:
keactrl start -s dhcp4, ctrl_agent
La configuration
Le fichier de configuration principal dhcp4 est /usr/local/etc/kea/kea-dhcp4.conf
Le fichier est bien décrit, il y a beaucoup de commentaires et d'exemples de paramÚtres, vous ne vous tromperez pas, je n'écrirai que les paramÚtres principaux:
Spécifiez l'interface ou l'adresse via laquelle dhcp4 fonctionnera:
"interfaces-config": { // interface name (eg "eth0" or specific IPv4 address on that // interface name (eg "eth0/192.0.2.1"). "interfaces": [ ] }
PrĂ©cisez oĂč stocker la base de location
"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 },
Quels serveurs DNS seront présentés aux clients
"option-data": [ { "name": "domain-name-servers", "data": "192.0.2.1, 192.0.2.2" },
Nom de domaine de votre organisation
{ "name": "domain-search", "data": "mydomain.example.com, example.com" },
Et le paramÚtre principal est les sous-réseaux, les pools et la passerelle par défaut:
"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" } ],
Eh bien, le dernier paramÚtre est nécessaire pour réserver des adresses à partir du pool / sous-réseau, les adresses spécifiées ne seront pas émises aux clients, elles sont nécessaires pour les adresses de serveur / périphérique qui sont enregistrées statiquement:
"reservations": [ { "hw-address": "1a:1b:1c:1d:1e:1f", "ip-address": "192.0.2.201" } ]
Voici les principaux paramÚtres, aprÚs avoir modifié la configuration, vous devez redémarrer le service -
keacrtl stop keactrl start -s dhcp4,ctrl_agent
Base CSV
La base de données locale est stockée ici -
/usr/local/var/kea/kea-leases4.csv
Journaux
Les journaux sont stockés par défaut - / usr / local / var / log /
Ici, chacun des composants a un fichier distinct:
- kea-dhcp4.log
- kea-dhcp6.log
- kea-ctrl-agent.log
Dans un article séparé, je décrirai comment démarrer un cluster de deux serveurs et configurer la synchronisation de la base de données de sortie de bail.