Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
linux:kea [19.10.2024 14:07. ] – [Playbook] djangolinux:kea [18.07.2025 18:13. ] (aktuell) – [Paketinstallation] Version 3.0.0-6 aktualisiert django
Zeile 2: Zeile 2:
 {{:linux:kea-logo-200.png?nolink&100 |Bild: Logo des DHCP ISC Kea }} Zum Einsatz in unserer Umgebung wird der Kea DHCP-Server kommen, der Nachfolger des **[[https://www.isc.org/dhcp/|ISC DHCP Servers]]** der Ende 2022 das Ende seines Lebenszyklus erreichte und nicht weiterentwickelt wurde. Das Nachfolgeprodukt ist nun der **[[https://www.isc.org/kea/|moderne Open Source DHCPv4 & DHCPv6 Server Kea]]**.  {{:linux:kea-logo-200.png?nolink&100 |Bild: Logo des DHCP ISC Kea }} Zum Einsatz in unserer Umgebung wird der Kea DHCP-Server kommen, der Nachfolger des **[[https://www.isc.org/dhcp/|ISC DHCP Servers]]** der Ende 2022 das Ende seines Lebenszyklus erreichte und nicht weiterentwickelt wurde. Das Nachfolgeprodukt ist nun der **[[https://www.isc.org/kea/|moderne Open Source DHCPv4 & DHCPv6 Server Kea]]**. 
  
-Im wesentlichen unterscheidet sich **Kea** von seinem Vorgänger unter anderem durch sein modulares Komponenten basierenden Design, welches mit sog. Hooks-Modulen leicht erweiterbar ist. Kea stellt einzelne Daemons zur Verfügung die entweder gemeinsam oder auch getrennt genutzt werden können. So enthält Kea einen Daemon für  einen DHCPv4-Server, einen DHCPv6-Server und ein dynamisches Modul für DNS. Die [[#konfiguration|Konfiguration]] des Kea-Servers erfolgt mit Hilfe einer JSON-Konfigurationsdatei. Mit Hilfe der REST-API können zur Laufzeit jederzeit während des Betriebs Änderungen des Daemons vorgenommen werden, ohne dass der Daemon neu gestartet werden muss. Optional kann beim Kea Server auch ein WEB-UI ein grafisches Dashboard genutzt werden zur Überwachung mehrerer Kea-Instanzen. Neben der Dateibasierenden Variante können die ganzen Konfigurationsoptionen auch optional in einer PostgreSQL oder Maria-mySQL-Datenbank vorgehalten werden.+Im wesentlichen unterscheidet sich **Kea** von seinem Vorgänger unter anderem durch sein modulares Komponenten basierenden Design, welches mit sog. Hooks-Modulen leicht erweiterbar ist. Kea stellt einzelne Daemons zur Verfügung die entweder gemeinsam oder auch getrennt genutzt werden können. So enthält Kea einen Daemon für  einen DHCPv4-Server, einen DHCPv6-Server und ein dynamisches Modul für DNS. Die [[#konfiguration|Konfiguration]] des Kea-Servers erfolgt mit Hilfe einer JSON-Konfigurationsdatei. Mit Hilfe der **REST-API** können zur Laufzeit jederzeit während des Betriebs Änderungen des Daemons vorgenommen werden, ohne dass der Daemon neu gestartet werden muss. Optional kann beim Kea Server auch ein WEB-UI ein grafisches Dashboard genutzt werden zur Überwachung mehrerer Kea-Instanzen. Neben der Dateibasierenden Variante können die ganzen Konfigurationsoptionen auch optional in einer PostgreSQL oder Maria-mySQL-Datenbank vorgehalten werden.
  
 In der nachfolgenden WIKI-Artikel wollen wir uns nun eingehender mit der Installation und Konfiguration unseres Kea DHCP Servers für für DHCPv4 und DHCPv6 beschäftigen. In dem Konfigurationsbeispiel wird dem Kea-Daemon die Verwaltung und Verteilung der Intranet-Adressen der Zone **''intra.nausch.org''** übertragen. Dieses Subnetz umfasst nachfolgende Adressbereiche - zum besseren Verständnis sind in der Tabelle auch exemplarische Hosts mit den entsprechenden Adressen vermerkt: In der nachfolgenden WIKI-Artikel wollen wir uns nun eingehender mit der Installation und Konfiguration unseres Kea DHCP Servers für für DHCPv4 und DHCPv6 beschäftigen. In dem Konfigurationsbeispiel wird dem Kea-Daemon die Verwaltung und Verteilung der Intranet-Adressen der Zone **''intra.nausch.org''** übertragen. Dieses Subnetz umfasst nachfolgende Adressbereiche - zum besseren Verständnis sind in der Tabelle auch exemplarische Hosts mit den entsprechenden Adressen vermerkt:
  
 |< 100% 5% 8% 12% 12% 12% 12% 12% >| |< 100% 5% 8% 12% 12% 12% 12% 12% >|
-^  Subnetz \\ (ID)  ^  Subnetz \\ (Use)  ^ Subnetz Prefix\\ (global Unicast)  ^ Host\\ -       ^ IPv4\\ -         ^ Link-Local-Scope\\ -                ^ Unique-Local-Scope\\  (ULA)          ^ Global-Scope\\ (GUA)             ^ +^  Subnetz \\ (ID)  ^  Subnetz \\ (Use)  ^ Subnetz Prefix\\ (global Unicast)  ^ Host\\ -       ^ IPv4\\ -         ^ Link-Local-Scope\\ (LLA)            ^ Unique-Local-Scope\\  (ULA)          ^ Global-Scope\\ (GUA)             ^ 
-|  **7**            |  Intra             | 2003:a:e0d:760**7**::/64                          |                  |                                                                          |                                  | +|  **7**            |  Intra             | 2003:a:bcd:123**4**::/64                          |                  |                                                                          |                                  | 
-|                                      |                                    | //pml010073//  | ''10.0.10.73''   | ''fe80::e9a6::bb03:1544:b0000/64''  | ''fdb6:cb48:9d77:0:10:0:10:073/64''  | ''2003:a:e0d:7607:10:0:10:73''   | +|                                      |                                    | //pml010073//  | ''10.0.10.73''   | ''fe80::e9a6::bb03:1544:b0000/64''  | ''fd00:dead:beef:0:10:0:10:073/64''  | ''2003:a:bcd:1234:10:0:10:73''   | 
-|                                      |                                    | //pml010102//  | ''10.0.10.102''  | ''fe80::10:ff:fe10:102''            | ''fdb6:cb48:9d77:0:10:0:10:102/64''  | ''2003:a:e0d:7607:10:0:10:102'' +|                                      |                                    | //pml010102//  | ''10.0.10.102''  | ''fe80::10:ff:fe10:102''            | ''fdb6:dead:beef:0:10:0:10:102/64''  | ''2003:a:bcd:1234:10:0:10:102'' 
-|                                      |                                    | //vml010110//  | ''10.0.10.110''  | ''fe80::10:ff:fe10:110''            | ''fdb6:cb48:9d77:0:10:0:10:110/64''  | ''2003:a:e0d:7607:10:0:10:110''  |+|                                      |                                    | //vml010110//  | ''10.0.10.110''  | ''fe80::10:ff:fe10:110''            | ''fdb6:dead:beef:0:10:0:10:110/64''  | ''2003:a:bcd:1234:10:0:10:110''  |
  
  
Zeile 270: Zeile 270:
 ++++ Paketinhalte | ++++ Paketinhalte |
 <code>Name            : kea <code>Name            : kea
-Version         : 2.6.1-1 +Version         : 3.0.0-6 
-Description     : High-performance, extensible DHCP server engine from ISC, supporting both DHCPv4 and DHCPv6+Description     : High-performance, extensible DHCP server engine from ISC, supporting both DHCPv4 and 
 +                  DHCPv6
 Architecture    : x86_64 Architecture    : x86_64
 URL             : https://kea.isc.org URL             : https://kea.isc.org
Zeile 287: Zeile 288:
 Conflicts With  : None Conflicts With  : None
 Replaces        : None Replaces        : None
-Installed Size  : 22.81 MiB+Installed Size  : 29.19 MiB
 Packager        : Robin Candau <antiz@archlinux.org> Packager        : Robin Candau <antiz@archlinux.org>
-Build Date      : Wed 31 Jul 2024 10:21:28 AM CEST +Build Date      : Mon 14 Jul 2025 08:04:25 AM CEST 
-Install Date    : Wed 09 Oct 2024 07:27:55 PM CEST+Install Date    : Fri 18 Jul 2025 07:27:27 PM CEST
 Install Reason  : Explicitly installed Install Reason  : Explicitly installed
 Install Script  : No Install Script  : No
Zeile 302: Zeile 303:
 kea /etc/kea/kea-dhcp6.conf kea /etc/kea/kea-dhcp6.conf
 kea /etc/kea/keactrl.conf kea /etc/kea/keactrl.conf
 +kea /etc/kea/radius/
 +kea /etc/kea/radius/dictionary
 kea /usr/ kea /usr/
 kea /usr/bin/ kea /usr/bin/
Zeile 324: Zeile 327:
 kea /usr/include/kea/asiolink/asio_wrapper.h kea /usr/include/kea/asiolink/asio_wrapper.h
 kea /usr/include/kea/asiolink/asiolink.h kea /usr/include/kea/asiolink/asiolink.h
-kea /usr/include/kea/asiolink/botan_boost_tls.h 
-kea /usr/include/kea/asiolink/botan_boost_wrapper.h 
 kea /usr/include/kea/asiolink/botan_tls.h kea /usr/include/kea/asiolink/botan_tls.h
 +kea /usr/include/kea/asiolink/botan_wrapper.h
 kea /usr/include/kea/asiolink/common_tls.h kea /usr/include/kea/asiolink/common_tls.h
 kea /usr/include/kea/asiolink/crypto_tls.h kea /usr/include/kea/asiolink/crypto_tls.h
Zeile 358: Zeile 360:
 kea /usr/include/kea/cc/command_interpreter.h kea /usr/include/kea/cc/command_interpreter.h
 kea /usr/include/kea/cc/data.h kea /usr/include/kea/cc/data.h
 +kea /usr/include/kea/cc/default_credentials.h
 kea /usr/include/kea/cc/dhcp_config_error.h kea /usr/include/kea/cc/dhcp_config_error.h
 kea /usr/include/kea/cc/element_value.h kea /usr/include/kea/cc/element_value.h
Zeile 366: Zeile 369:
 kea /usr/include/kea/cc/stamped_value.h kea /usr/include/kea/cc/stamped_value.h
 kea /usr/include/kea/cc/user_context.h kea /usr/include/kea/cc/user_context.h
-kea /usr/include/kea/cfgrpt/ 
-kea /usr/include/kea/cfgrpt/config_report.h 
 kea /usr/include/kea/config.h kea /usr/include/kea/config.h
 kea /usr/include/kea/config/ kea /usr/include/kea/config/
Zeile 380: Zeile 381:
 kea /usr/include/kea/config/config_messages.h kea /usr/include/kea/config/config_messages.h
 kea /usr/include/kea/config/hooked_command_mgr.h kea /usr/include/kea/config/hooked_command_mgr.h
 +kea /usr/include/kea/config/http_command_config.h
 +kea /usr/include/kea/config/http_command_mgr.h
 +kea /usr/include/kea/config/http_command_response_creator.h
 +kea /usr/include/kea/config/http_command_response_creator_factory.h
 kea /usr/include/kea/config/timeouts.h kea /usr/include/kea/config/timeouts.h
 +kea /usr/include/kea/config/unix_command_config.h
 +kea /usr/include/kea/config/unix_command_mgr.h
 kea /usr/include/kea/config_backend/ kea /usr/include/kea/config_backend/
 kea /usr/include/kea/config_backend/base_config_backend.h kea /usr/include/kea/config_backend/base_config_backend.h
Zeile 387: Zeile 394:
 kea /usr/include/kea/config_backend/constants.h kea /usr/include/kea/config_backend/constants.h
 kea /usr/include/kea/cryptolink/ kea /usr/include/kea/cryptolink/
 +kea /usr/include/kea/cryptolink/botan_common.h
 kea /usr/include/kea/cryptolink/crypto_hash.h kea /usr/include/kea/cryptolink/crypto_hash.h
 kea /usr/include/kea/cryptolink/crypto_hmac.h kea /usr/include/kea/cryptolink/crypto_hmac.h
Zeile 392: Zeile 400:
 kea /usr/include/kea/cryptolink/cryptolink.h kea /usr/include/kea/cryptolink/cryptolink.h
 kea /usr/include/kea/cryptolink/openssl_common.h kea /usr/include/kea/cryptolink/openssl_common.h
-kea /usr/include/kea/cryptolink/openssl_compat.h 
 kea /usr/include/kea/d2srv/ kea /usr/include/kea/d2srv/
 kea /usr/include/kea/d2srv/d2_cfg_mgr.h kea /usr/include/kea/d2srv/d2_cfg_mgr.h
Zeile 464: Zeile 471:
 kea /usr/include/kea/dhcp/pkt_filter.h kea /usr/include/kea/dhcp/pkt_filter.h
 kea /usr/include/kea/dhcp/pkt_filter6.h kea /usr/include/kea/dhcp/pkt_filter6.h
 +kea /usr/include/kea/dhcp/pkt_filter_bpf.h
 kea /usr/include/kea/dhcp/pkt_filter_inet.h kea /usr/include/kea/dhcp/pkt_filter_inet.h
 kea /usr/include/kea/dhcp/pkt_filter_inet6.h kea /usr/include/kea/dhcp/pkt_filter_inet6.h
Zeile 520: Zeile 528:
 kea /usr/include/kea/dhcpsrv/d2_client_mgr.h kea /usr/include/kea/dhcpsrv/d2_client_mgr.h
 kea /usr/include/kea/dhcpsrv/db_type.h kea /usr/include/kea/dhcpsrv/db_type.h
 +kea /usr/include/kea/dhcpsrv/ddns_params.h
 kea /usr/include/kea/dhcpsrv/dhcp4o6_ipc.h kea /usr/include/kea/dhcpsrv/dhcp4o6_ipc.h
 kea /usr/include/kea/dhcpsrv/dhcpsrv_exceptions.h kea /usr/include/kea/dhcpsrv/dhcpsrv_exceptions.h
Zeile 526: Zeile 535:
 kea /usr/include/kea/dhcpsrv/flq_allocation_state.h kea /usr/include/kea/dhcpsrv/flq_allocation_state.h
 kea /usr/include/kea/dhcpsrv/flq_allocator.h kea /usr/include/kea/dhcpsrv/flq_allocator.h
 +kea /usr/include/kea/dhcpsrv/fuzz_log.h
 +kea /usr/include/kea/dhcpsrv/fuzz_messages.h
 kea /usr/include/kea/dhcpsrv/host.h kea /usr/include/kea/dhcpsrv/host.h
 kea /usr/include/kea/dhcpsrv/host_container.h kea /usr/include/kea/dhcpsrv/host_container.h
Zeile 542: Zeile 553:
 kea /usr/include/kea/dhcpsrv/lease_mgr.h kea /usr/include/kea/dhcpsrv/lease_mgr.h
 kea /usr/include/kea/dhcpsrv/lease_mgr_factory.h kea /usr/include/kea/dhcpsrv/lease_mgr_factory.h
 +kea /usr/include/kea/dhcpsrv/legal_log_db_log.h
 +kea /usr/include/kea/dhcpsrv/legal_log_mgr.h
 +kea /usr/include/kea/dhcpsrv/legal_log_mgr_factory.h
 kea /usr/include/kea/dhcpsrv/memfile_lease_limits.h kea /usr/include/kea/dhcpsrv/memfile_lease_limits.h
 kea /usr/include/kea/dhcpsrv/memfile_lease_mgr.h kea /usr/include/kea/dhcpsrv/memfile_lease_mgr.h
 kea /usr/include/kea/dhcpsrv/memfile_lease_storage.h kea /usr/include/kea/dhcpsrv/memfile_lease_storage.h
-kea /usr/include/kea/dhcpsrv/mysql_host_data_source.h 
-kea /usr/include/kea/dhcpsrv/mysql_lease_mgr.h 
 kea /usr/include/kea/dhcpsrv/ncr_generator.h kea /usr/include/kea/dhcpsrv/ncr_generator.h
 kea /usr/include/kea/dhcpsrv/network.h kea /usr/include/kea/dhcpsrv/network.h
 kea /usr/include/kea/dhcpsrv/network_state.h kea /usr/include/kea/dhcpsrv/network_state.h
 +kea /usr/include/kea/dhcpsrv/packet_fuzzer.h
 kea /usr/include/kea/dhcpsrv/parsers/ kea /usr/include/kea/dhcpsrv/parsers/
 kea /usr/include/kea/dhcpsrv/parsers/base_network_parser.h kea /usr/include/kea/dhcpsrv/parsers/base_network_parser.h
Zeile 567: Zeile 580:
 kea /usr/include/kea/dhcpsrv/parsers/simple_parser4.h kea /usr/include/kea/dhcpsrv/parsers/simple_parser4.h
 kea /usr/include/kea/dhcpsrv/parsers/simple_parser6.h kea /usr/include/kea/dhcpsrv/parsers/simple_parser6.h
-kea /usr/include/kea/dhcpsrv/pgsql_host_data_source.h 
-kea /usr/include/kea/dhcpsrv/pgsql_lease_mgr.h 
 kea /usr/include/kea/dhcpsrv/pool.h kea /usr/include/kea/dhcpsrv/pool.h
 kea /usr/include/kea/dhcpsrv/random_allocation_state.h kea /usr/include/kea/dhcpsrv/random_allocation_state.h
Zeile 648: Zeile 659:
 kea /usr/include/kea/http/basic_auth.h kea /usr/include/kea/http/basic_auth.h
 kea /usr/include/kea/http/basic_auth_config.h kea /usr/include/kea/http/basic_auth_config.h
 +kea /usr/include/kea/http/cfg_http_header.h
 kea /usr/include/kea/http/client.h kea /usr/include/kea/http/client.h
 kea /usr/include/kea/http/connection.h kea /usr/include/kea/http/connection.h
Zeile 711: Zeile 723:
 kea /usr/include/kea/process/ kea /usr/include/kea/process/
 kea /usr/include/kea/process/cb_ctl_base.h kea /usr/include/kea/process/cb_ctl_base.h
 +kea /usr/include/kea/process/cfgrpt/
 +kea /usr/include/kea/process/cfgrpt/config_report.h
 kea /usr/include/kea/process/config_base.h kea /usr/include/kea/process/config_base.h
 kea /usr/include/kea/process/config_ctl_info.h kea /usr/include/kea/process/config_ctl_info.h
Zeile 778: Zeile 792:
 kea /usr/lib/kea/ kea /usr/lib/kea/
 kea /usr/lib/kea/hooks/ kea /usr/lib/kea/hooks/
 +kea /usr/lib/kea/hooks/libddns_gss_tsig.so
 kea /usr/lib/kea/hooks/libdhcp_bootp.so kea /usr/lib/kea/hooks/libdhcp_bootp.so
 +kea /usr/lib/kea/hooks/libdhcp_class_cmds.so
 +kea /usr/lib/kea/hooks/libdhcp_ddns_tuning.so
 +kea /usr/lib/kea/hooks/libdhcp_flex_id.so
 kea /usr/lib/kea/hooks/libdhcp_flex_option.so kea /usr/lib/kea/hooks/libdhcp_flex_option.so
 kea /usr/lib/kea/hooks/libdhcp_ha.so kea /usr/lib/kea/hooks/libdhcp_ha.so
 +kea /usr/lib/kea/hooks/libdhcp_host_cache.so
 +kea /usr/lib/kea/hooks/libdhcp_host_cmds.so
 kea /usr/lib/kea/hooks/libdhcp_lease_cmds.so kea /usr/lib/kea/hooks/libdhcp_lease_cmds.so
-kea /usr/lib/kea/hooks/libdhcp_mysql_cb.so+kea /usr/lib/kea/hooks/libdhcp_lease_query.so 
 +kea /usr/lib/kea/hooks/libdhcp_legal_log.so 
 +kea /usr/lib/kea/hooks/libdhcp_limits.so 
 +kea /usr/lib/kea/hooks/libdhcp_mysql.so
 kea /usr/lib/kea/hooks/libdhcp_perfmon.so kea /usr/lib/kea/hooks/libdhcp_perfmon.so
-kea /usr/lib/kea/hooks/libdhcp_pgsql_cb.so+kea /usr/lib/kea/hooks/libdhcp_pgsql.so 
 +kea /usr/lib/kea/hooks/libdhcp_ping_check.so 
 +kea /usr/lib/kea/hooks/libdhcp_radius.so
 kea /usr/lib/kea/hooks/libdhcp_run_script.so kea /usr/lib/kea/hooks/libdhcp_run_script.so
 kea /usr/lib/kea/hooks/libdhcp_stat_cmds.so kea /usr/lib/kea/hooks/libdhcp_stat_cmds.so
 +kea /usr/lib/kea/hooks/libdhcp_subnet_cmds.so
 kea /usr/lib/libkea-asiodns.so kea /usr/lib/libkea-asiodns.so
-kea /usr/lib/libkea-asiodns.so.48 +kea /usr/lib/libkea-asiodns.so.62 
-kea /usr/lib/libkea-asiodns.so.48.0.0+kea /usr/lib/libkea-asiodns.so.62.0.0
 kea /usr/lib/libkea-asiolink.so kea /usr/lib/libkea-asiolink.so
-kea /usr/lib/libkea-asiolink.so.71 +kea /usr/lib/libkea-asiolink.so.87 
-kea /usr/lib/libkea-asiolink.so.71.0.0+kea /usr/lib/libkea-asiolink.so.87.0.0
 kea /usr/lib/libkea-cc.so kea /usr/lib/libkea-cc.so
-kea /usr/lib/libkea-cc.so.68 +kea /usr/lib/libkea-cc.so.82 
-kea /usr/lib/libkea-cc.so.68.0.0 +kea /usr/lib/libkea-cc.so.82.0.0 
-kea /usr/lib/libkea-cfgclient.so +kea /usr/lib/libkea-cfgrpt.so 
-kea /usr/lib/libkea-cfgclient.so.65 +kea /usr/lib/libkea-cfgrpt.so.3 
-kea /usr/lib/libkea-cfgclient.so.65.0.0+kea /usr/lib/libkea-cfgrpt.so.3.0.0 
 +kea /usr/lib/libkea-config.so 
 +kea /usr/lib/libkea-config.so.83 
 +kea /usr/lib/libkea-config.so.83.0.0
 kea /usr/lib/libkea-cryptolink.so kea /usr/lib/libkea-cryptolink.so
-kea /usr/lib/libkea-cryptolink.so.50 +kea /usr/lib/libkea-cryptolink.so.63 
-kea /usr/lib/libkea-cryptolink.so.50.0.0+kea /usr/lib/libkea-cryptolink.so.63.0.0
 kea /usr/lib/libkea-d2srv.so kea /usr/lib/libkea-d2srv.so
-kea /usr/lib/libkea-d2srv.so.46 +kea /usr/lib/libkea-d2srv.so.63 
-kea /usr/lib/libkea-d2srv.so.46.0.0+kea /usr/lib/libkea-d2srv.so.63.0.0
 kea /usr/lib/libkea-database.so kea /usr/lib/libkea-database.so
-kea /usr/lib/libkea-database.so.61 +kea /usr/lib/libkea-database.so.76 
-kea /usr/lib/libkea-database.so.61.0.0 +kea /usr/lib/libkea-database.so.76.0.0 
-kea /usr/lib/libkea-dhcp++.so +kea /usr/lib/libkea-dhcp.so 
-kea /usr/lib/libkea-dhcp++.so.90 +kea /usr/lib/libkea-dhcp.so.109 
-kea /usr/lib/libkea-dhcp++.so.90.0.0+kea /usr/lib/libkea-dhcp.so.109.0.0
 kea /usr/lib/libkea-dhcp_ddns.so kea /usr/lib/libkea-dhcp_ddns.so
-kea /usr/lib/libkea-dhcp_ddns.so.56 +kea /usr/lib/libkea-dhcp_ddns.so.68 
-kea /usr/lib/libkea-dhcp_ddns.so.56.0.0+kea /usr/lib/libkea-dhcp_ddns.so.68.0.0
 kea /usr/lib/libkea-dhcpsrv.so kea /usr/lib/libkea-dhcpsrv.so
-kea /usr/lib/libkea-dhcpsrv.so.109 +kea /usr/lib/libkea-dhcpsrv.so.129 
-kea /usr/lib/libkea-dhcpsrv.so.109.0.0 +kea /usr/lib/libkea-dhcpsrv.so.129.0.0 
-kea /usr/lib/libkea-dns++.so +kea /usr/lib/libkea-dns.so 
-kea /usr/lib/libkea-dns++.so.56 +kea /usr/lib/libkea-dns.so.71 
-kea /usr/lib/libkea-dns++.so.56.0.0+kea /usr/lib/libkea-dns.so.71.0.0
 kea /usr/lib/libkea-eval.so kea /usr/lib/libkea-eval.so
-kea /usr/lib/libkea-eval.so.69 +kea /usr/lib/libkea-eval.so.84 
-kea /usr/lib/libkea-eval.so.69.0.0+kea /usr/lib/libkea-eval.so.84.0.0
 kea /usr/lib/libkea-exceptions.so kea /usr/lib/libkea-exceptions.so
-kea /usr/lib/libkea-exceptions.so.33 +kea /usr/lib/libkea-exceptions.so.45 
-kea /usr/lib/libkea-exceptions.so.33.0.0+kea /usr/lib/libkea-exceptions.so.45.0.0
 kea /usr/lib/libkea-hooks.so kea /usr/lib/libkea-hooks.so
-kea /usr/lib/libkea-hooks.so.98 +kea /usr/lib/libkea-hooks.so.118 
-kea /usr/lib/libkea-hooks.so.98.0.0+kea /usr/lib/libkea-hooks.so.118.0.0
 kea /usr/lib/libkea-http.so kea /usr/lib/libkea-http.so
-kea /usr/lib/libkea-http.so.71 +kea /usr/lib/libkea-http.so.87 
-kea /usr/lib/libkea-http.so.71.0.0+kea /usr/lib/libkea-http.so.87.0.0 
 +kea /usr/lib/libkea-log-interprocess.so 
 +kea /usr/lib/libkea-log-interprocess.so.3 
 +kea /usr/lib/libkea-log-interprocess.so.3.0.0
 kea /usr/lib/libkea-log.so kea /usr/lib/libkea-log.so
-kea /usr/lib/libkea-log.so.61 +kea /usr/lib/libkea-log.so.75 
-kea /usr/lib/libkea-log.so.61.0.0+kea /usr/lib/libkea-log.so.75.0.0
 kea /usr/lib/libkea-mysql.so kea /usr/lib/libkea-mysql.so
-kea /usr/lib/libkea-mysql.so.70 +kea /usr/lib/libkea-mysql.so.88 
-kea /usr/lib/libkea-mysql.so.70.0.0+kea /usr/lib/libkea-mysql.so.88.0.0
 kea /usr/lib/libkea-pgsql.so kea /usr/lib/libkea-pgsql.so
-kea /usr/lib/libkea-pgsql.so.70 +kea /usr/lib/libkea-pgsql.so.88 
-kea /usr/lib/libkea-pgsql.so.70.0.0+kea /usr/lib/libkea-pgsql.so.88.0.0
 kea /usr/lib/libkea-process.so kea /usr/lib/libkea-process.so
-kea /usr/lib/libkea-process.so.72 +kea /usr/lib/libkea-process.so.90 
-kea /usr/lib/libkea-process.so.72.0.0+kea /usr/lib/libkea-process.so.90.0.0
 kea /usr/lib/libkea-stats.so kea /usr/lib/libkea-stats.so
-kea /usr/lib/libkea-stats.so.41 +kea /usr/lib/libkea-stats.so.53 
-kea /usr/lib/libkea-stats.so.41.0.0+kea /usr/lib/libkea-stats.so.53.0.0
 kea /usr/lib/libkea-tcp.so kea /usr/lib/libkea-tcp.so
-kea /usr/lib/libkea-tcp.so.18 +kea /usr/lib/libkea-tcp.so.33 
-kea /usr/lib/libkea-tcp.so.18.0.0+kea /usr/lib/libkea-tcp.so.33.0.0
 kea /usr/lib/libkea-util-io.so kea /usr/lib/libkea-util-io.so
-kea /usr/lib/libkea-util-io.so.0 +kea /usr/lib/libkea-util-io.so.12 
-kea /usr/lib/libkea-util-io.so.0.0.1+kea /usr/lib/libkea-util-io.so.12.0.0
 kea /usr/lib/libkea-util.so kea /usr/lib/libkea-util.so
-kea /usr/lib/libkea-util.so.84 +kea /usr/lib/libkea-util.so.101 
-kea /usr/lib/libkea-util.so.84.0.0 +kea /usr/lib/libkea-util.so.101.0.0 
-kea /usr/lib/python3.12+kea /usr/lib/pkgconfig/ 
-kea /usr/lib/python3.12/site-packages/ +kea /usr/lib/pkgconfig/kea.pc 
-kea /usr/lib/python3.12/site-packages/kea/ +kea /usr/lib/python3.13
-kea /usr/lib/python3.12/site-packages/kea/__pycache__/ +kea /usr/lib/python3.13/site-packages/ 
-kea /usr/lib/python3.12/site-packages/kea/__pycache__/kea_conn.cpython-312.opt-1.pyc +kea /usr/lib/python3.13/site-packages/kea/ 
-kea /usr/lib/python3.12/site-packages/kea/__pycache__/kea_conn.cpython-312.pyc +kea /usr/lib/python3.13/site-packages/kea/__pycache__/ 
-kea /usr/lib/python3.12/site-packages/kea/__pycache__/kea_connector3.cpython-312.opt-1.pyc +kea /usr/lib/python3.13/site-packages/kea/__pycache__/kea_conn.cpython-313.opt-1.pyc 
-kea /usr/lib/python3.12/site-packages/kea/__pycache__/kea_connector3.cpython-312.pyc +kea /usr/lib/python3.13/site-packages/kea/__pycache__/kea_conn.cpython-313.pyc 
-kea /usr/lib/python3.12/site-packages/kea/kea_conn.py +kea /usr/lib/python3.13/site-packages/kea/__pycache__/kea_connector3.cpython-313.opt-1.pyc 
-kea /usr/lib/python3.12/site-packages/kea/kea_connector3.py+kea /usr/lib/python3.13/site-packages/kea/__pycache__/kea_connector3.cpython-313.pyc 
 +kea /usr/lib/python3.13/site-packages/kea/kea_conn.py 
 +kea /usr/lib/python3.13/site-packages/kea/kea_connector3.py
 kea /usr/lib/systemd/ kea /usr/lib/systemd/
 kea /usr/lib/systemd/system/ kea /usr/lib/systemd/system/
Zeile 960: Zeile 994:
 kea /usr/share/kea/api/network6-subnet-add.json kea /usr/share/kea/api/network6-subnet-add.json
 kea /usr/share/kea/api/network6-subnet-del.json kea /usr/share/kea/api/network6-subnet-del.json
 +kea /usr/share/kea/api/perfmon-control.json
 +kea /usr/share/kea/api/perfmon-get-all-durations.json
 kea /usr/share/kea/api/remote-class4-del.json kea /usr/share/kea/api/remote-class4-del.json
 kea /usr/share/kea/api/remote-class4-get-all.json kea /usr/share/kea/api/remote-class4-get-all.json
Zeile 1064: Zeile 1100:
 kea /usr/share/kea/api/subnet4-get.json kea /usr/share/kea/api/subnet4-get.json
 kea /usr/share/kea/api/subnet4-list.json kea /usr/share/kea/api/subnet4-list.json
 +kea /usr/share/kea/api/subnet4-select-test.json
 kea /usr/share/kea/api/subnet4-update.json kea /usr/share/kea/api/subnet4-update.json
 +kea /usr/share/kea/api/subnet4o6-select-test.json
 kea /usr/share/kea/api/subnet6-add.json kea /usr/share/kea/api/subnet6-add.json
 kea /usr/share/kea/api/subnet6-del.json kea /usr/share/kea/api/subnet6-del.json
Zeile 1071: Zeile 1109:
 kea /usr/share/kea/api/subnet6-get.json kea /usr/share/kea/api/subnet6-get.json
 kea /usr/share/kea/api/subnet6-list.json kea /usr/share/kea/api/subnet6-list.json
 +kea /usr/share/kea/api/subnet6-select-test.json
 kea /usr/share/kea/api/subnet6-update.json kea /usr/share/kea/api/subnet6-update.json
 kea /usr/share/kea/api/version-get.json kea /usr/share/kea/api/version-get.json
 +kea /usr/share/kea/meson-info/
 +kea /usr/share/kea/meson-info/intro-benchmarks.json
 +kea /usr/share/kea/meson-info/intro-buildoptions.json
 +kea /usr/share/kea/meson-info/intro-buildsystem_files.json
 +kea /usr/share/kea/meson-info/intro-compilers.json
 +kea /usr/share/kea/meson-info/intro-dependencies.json
 +kea /usr/share/kea/meson-info/intro-install_plan.json
 +kea /usr/share/kea/meson-info/intro-installed.json
 +kea /usr/share/kea/meson-info/intro-machines.json
 +kea /usr/share/kea/meson-info/intro-projectinfo.json
 +kea /usr/share/kea/meson-info/intro-targets.json
 +kea /usr/share/kea/meson-info/intro-tests.json
 +kea /usr/share/kea/meson-info/meson-info.json
 kea /usr/share/kea/scripts/ kea /usr/share/kea/scripts/
 kea /usr/share/kea/scripts/admin-utils.sh kea /usr/share/kea/scripts/admin-utils.sh
Zeile 1110: Zeile 1162:
 kea /usr/share/kea/scripts/mysql/upgrade_020_to_021.sh kea /usr/share/kea/scripts/mysql/upgrade_020_to_021.sh
 kea /usr/share/kea/scripts/mysql/upgrade_021_to_022.sh kea /usr/share/kea/scripts/mysql/upgrade_021_to_022.sh
-kea /usr/share/kea/scripts/mysql/upgrade_022_to_022.1.sh+kea /usr/share/kea/scripts/mysql/upgrade_022_to_023.sh 
 +kea /usr/share/kea/scripts/mysql/upgrade_023_to_024.sh 
 +kea /usr/share/kea/scripts/mysql/upgrade_024_to_025.sh 
 +kea /usr/share/kea/scripts/mysql/upgrade_025_to_026.sh 
 +kea /usr/share/kea/scripts/mysql/upgrade_026_to_027.sh 
 +kea /usr/share/kea/scripts/mysql/upgrade_027_to_028.sh 
 +kea /usr/share/kea/scripts/mysql/upgrade_028_to_029.sh 
 +kea /usr/share/kea/scripts/mysql/upgrade_029_to_030.sh
 kea /usr/share/kea/scripts/mysql/wipe_data.sh kea /usr/share/kea/scripts/mysql/wipe_data.sh
 kea /usr/share/kea/scripts/pgsql/ kea /usr/share/kea/scripts/pgsql/
Zeile 1142: Zeile 1201:
 kea /usr/share/kea/scripts/pgsql/upgrade_020_to_021.sh kea /usr/share/kea/scripts/pgsql/upgrade_020_to_021.sh
 kea /usr/share/kea/scripts/pgsql/upgrade_021_to_022.sh kea /usr/share/kea/scripts/pgsql/upgrade_021_to_022.sh
-kea /usr/share/kea/scripts/pgsql/upgrade_022_to_022.1.sh+kea /usr/share/kea/scripts/pgsql/upgrade_022_to_023.sh 
 +kea /usr/share/kea/scripts/pgsql/upgrade_023_to_024.sh 
 +kea /usr/share/kea/scripts/pgsql/upgrade_024_to_025.sh 
 +kea /usr/share/kea/scripts/pgsql/upgrade_025_to_026.sh 
 +kea /usr/share/kea/scripts/pgsql/upgrade_026_to_027.sh 
 +kea /usr/share/kea/scripts/pgsql/upgrade_027_to_028.sh 
 +kea /usr/share/kea/scripts/pgsql/upgrade_028_to_029.sh
 kea /usr/share/kea/scripts/pgsql/wipe_data.sh kea /usr/share/kea/scripts/pgsql/wipe_data.sh
 kea /var/ kea /var/
 kea /var/lib/ kea /var/lib/
 kea /var/lib/kea/ kea /var/lib/kea/
-kea /var/log/</code>+kea /var/log
 +kea /var/log/kea/</code>
 ++++ ++++
  
 ==== Grund-Konfiguration ==== ==== Grund-Konfiguration ====
 === Firewall/Paketfilter - firewalld === === Firewall/Paketfilter - firewalld ===
-Bevor wir nun unseren **Kea-DHCP-Daemon** Konfigurieren und starten müssen wir natürlich sicherstellen, dass auf dem betreffendem Host auch die Kommunikationsbeziehungen entsprechend erlaubt sind.  +Bevor wir nun unseren **Kea-DHCP-Daemon** konfigurieren und starten müssen wir natürlich sicherstellen, dass auf dem betreffendem Host auch die Kommunikationsbeziehungen entsprechend erlaubt sind.  
  
 Wie auch schon früher bei **CentOS** ab Release **7** bzw. den nachfolgenden Relaese-Kandidaten **Stream von RHEL** nutzen wir auch unter **Arch Linux** den dynamischen **[[https://firewalld.org/|firewalld]]** Service. Ein grosser Vorteil der dynamischen Paketfilterregeln ist unter anderem, dass zur Aktivierung der neuen Firewall-Regel(n) nicht der Daemon durchgestartet werden muss und somit alle aktiven Verbindungen kurz getrennt werden. Sondern unsere Änderungen können **//on-the-fly//** aktiviert oder auch wieder deaktiviert werden. Wie auch schon früher bei **CentOS** ab Release **7** bzw. den nachfolgenden Relaese-Kandidaten **Stream von RHEL** nutzen wir auch unter **Arch Linux** den dynamischen **[[https://firewalld.org/|firewalld]]** Service. Ein grosser Vorteil der dynamischen Paketfilterregeln ist unter anderem, dass zur Aktivierung der neuen Firewall-Regel(n) nicht der Daemon durchgestartet werden muss und somit alle aktiven Verbindungen kurz getrennt werden. Sondern unsere Änderungen können **//on-the-fly//** aktiviert oder auch wieder deaktiviert werden.
Zeile 1180: Zeile 1246:
 Werfen wir noch kurz einen Blick in die Zone **''intra''**: Werfen wir noch kurz einen Blick in die Zone **''intra''**:
    
-   # firewall-cmd --zone=intra --list-services+<code> # firewall-cmd --zone=intra --list-services</code>
  
   dhcp dhcpv6   dhcp dhcpv6
Zeile 3080: Zeile 3146:
 Der ungeduldigen Leser kann auch direkt zur Tat schreiten und das manuelle Anlegen der Inventory-Hülle, des Playbooks und der zugehörigen Rolle überspringen und diese Aufgaben mit folgendem Befehl sozusagen auf einem Rutsch erledigen: Der ungeduldigen Leser kann auch direkt zur Tat schreiten und das manuelle Anlegen der Inventory-Hülle, des Playbooks und der zugehörigen Rolle überspringen und diese Aufgaben mit folgendem Befehl sozusagen auf einem Rutsch erledigen:
  
-<code> $ mkdir -p ~/devel/ansible ; wget https://gitlab.nausch.org/django/example_kea/-/archive/main/example_kea-main.tar.gz -O - | tar -xz --strip-components=1 -C ~/devel/ansible</code>+<code> $ mkdir -p ~/devel/ansible ; wget https://gitlab.nausch.org/django/example_kea/-/archive/main/example_kea-main.tar.gz 
 +         -O - | tar -xz --strip-components=1 -C ~/devel/ansible</code>
  
 Nach Anpassung der Daten im Inventory kann man anschliessend direkt **[[#ausfuehrung_-_playbooklauf|zur Ausführung schreiten]]**. Nach Anpassung der Daten im Inventory kann man anschliessend direkt **[[#ausfuehrung_-_playbooklauf|zur Ausführung schreiten]]**.
Zeile 3129: Zeile 3196:
  
 Die beiden Beispiel-Hosts aus der Gruppe|Zone **''intra''** in diesem Inventory symbolisieren folgende unterschiedlichen Knoten.  Die beiden Beispiel-Hosts aus der Gruppe|Zone **''intra''** in diesem Inventory symbolisieren folgende unterschiedlichen Knoten. 
-  * Der Host **''pnc010007''** steht exeplarisch für einen Client im Intranet. In dessen Inventory-File **''inventories/production/host_vars/pnc010007''** sind die ihn beschreibenden Datein enthalten.+  * Der Host **''pnc010007''** steht exemplarisch für einen Client im Intranet. In dessen Inventory-File **''inventories/production/host_vars/pnc010007''** sind die ihn beschreibenden Dateien enthalten.
   * Der Host **''vml010110''** ist in diesem Beispiel unser Server, der die Verbindung zwischen der Zone **''intra''** und der Aussenwelt herstellt. Auf diesem Konten läuft bereits ein **[[linux:ntp|Chrony Timeserver|]]** wie auch eine Firewall auf Basis von **[[https://firewalld.org/|firewalld]]** der eine Zonendefinition **''intra''** besitzt, die die Regeln für diese Zone beinhalten. Sowohl Timeserver wie auch Firewall werden in diesem Beispiel hier nur erwähnt, da in dem Playbook bzw.genauer gesagt im Inventory darauf referenziert wird.    * Der Host **''vml010110''** ist in diesem Beispiel unser Server, der die Verbindung zwischen der Zone **''intra''** und der Aussenwelt herstellt. Auf diesem Konten läuft bereits ein **[[linux:ntp|Chrony Timeserver|]]** wie auch eine Firewall auf Basis von **[[https://firewalld.org/|firewalld]]** der eine Zonendefinition **''intra''** besitzt, die die Regeln für diese Zone beinhalten. Sowohl Timeserver wie auch Firewall werden in diesem Beispiel hier nur erwähnt, da in dem Playbook bzw.genauer gesagt im Inventory darauf referenziert wird. 
  
Zeile 3168: Zeile 3235:
  
 === Playbook === === Playbook ===
-Unser Playbook zum Installieren und Konfigurieren der beiden Kea-Daemon **kea-dhcp4** und **kea-dhcp6**, ist wie imer schlank, unscheinbar und unspektakulär, beinhaltet aber Hinweise zur Aufgabe und wie es aufzurufen ist.+Unser Playbook zum Installieren und Konfigurieren der beiden Kea-Daemon **kea-dhcp4** und **kea-dhcp6**, ist wie immer schlank, unscheinbar und unspektakulär, beinhaltet aber Hinweise zur Aufgabe und wie es aufzurufen ist.
    $ vim playbooks/kea_dhcp.yml    $ vim playbooks/kea_dhcp.yml
 ++++ playbooks/kea_dhcp.yml | ++++ playbooks/kea_dhcp.yml |
Zeile 3177: Zeile 3244:
  
 === Rolle === === Rolle ===
-Für die Konfiguration der **kea**-Daemon verwenden wir eine eigene Rolle **''kea_dhcp''**, die wir bei unserem zuvor angelegten Playbooks später einfach mit aufrufen werden. hierzu kopieren wir uns zunächst die Mustervorlage **''common''**.+Für die Konfiguration der **kea**-Daemon verwenden wir eine eigene Rolle **''kea_dhcp''**, die wir bei unserem zuvor angelegten Playbooks später einfach mit aufrufen werden. Hierzu kopieren wir uns zunächst die Mustervorlage **''common''**.
    $ cp -avr roles/common/ roles/kea_dhcp    $ cp -avr roles/common/ roles/kea_dhcp
 +
 +++++ Ausgabe von cp -avr roles/common/ roles/kea_dhcp |
 <code>'roles/common/' -> 'roles/kea_dhcp' <code>'roles/common/' -> 'roles/kea_dhcp'
 'roles/common/defaults' -> 'roles/kea_dhcp/defaults' 'roles/common/defaults' -> 'roles/kea_dhcp/defaults'
Zeile 3201: Zeile 3270:
 'roles/common/vars/.gitkeep' -> 'roles/kea_dhcp/vars/.gitkeep' 'roles/common/vars/.gitkeep' -> 'roles/kea_dhcp/vars/.gitkeep'
 </code> </code>
 +++++
  
 Bei Bedarf können wir uns die Struktur die somit angelegt wurde mit nachfolgendem Befehl anzeigen lassen. Bei Bedarf können wir uns die Struktur die somit angelegt wurde mit nachfolgendem Befehl anzeigen lassen.
Zeile 3232: Zeile 3302:
 Wie wir sehen ist die Rolle durchaus überschaubar, im Task **''main.yaml''** verweisen wir lediglich auf die eigentlichen Tasks **''vorbereitung''**, **''dhcp4''**, **''dhcp6''** und **''firewalld''** Wie wir sehen ist die Rolle durchaus überschaubar, im Task **''main.yaml''** verweisen wir lediglich auf die eigentlichen Tasks **''vorbereitung''**, **''dhcp4''**, **''dhcp6''** und **''firewalld''**
    $ vim roles/kea_dhcp/tasks/main.yml    $ vim roles/kea_dhcp/tasks/main.yml
-++++ roles/kea_dhcp/tasks/main.yml+++++ roles/kea_dhcp/tasks/main.yml |
  
 {{gh> https://gitlab.nausch.org/django/example_kea/-/blob/main/roles/kea_dhcp/tasks/main.yml }} {{gh> https://gitlab.nausch.org/django/example_kea/-/blob/main/roles/kea_dhcp/tasks/main.yml }}
  
 ++++ ++++
-FIXME  
  
-Bei der Konfiguration unseres **radvd** haben wir in unserem Konfigurationsbeispiel, ob nur eine **GUA** oder eine **ULA** oder eben beide Adresstypen genutzt werden sollenZusätzlich haben wir noch die Wahl ob eine IPv6 mit Hilfe von **[[https://www.rfc-editor.org/rfc/rfc4862|SLAAC]]** oder **[[https://www.rfc-editor.org/rfc/rfc8415|Statful DHCPv6]]** bezogen werden soll. +Die Installation des Kea DHCP-Servers wird in der ersten Task-Gruppe mit dem tag **''vorbereitung''** vorgenommen. 
 +   $ vim roles/kea_dhcp/tasks/vorbereitung.yml 
 +++++ roles/kea_dhcp/tasks/vorbereitung.yml |
  
-<WRAP center round tip 80%> +{{gh> https://gitlab.nausch.org/django/example_kea/-/blob/main/roles/kea_dhcp/tasks/vorbereitung.yml }}
-Für die Überlegungen welche Adressen und wie diese bezogen werden, hilf unter anderem der **[[https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Internetsicherheit/isi_lana_leitfaden_IPv6_pdf.pdf?__blob=publicationFile|Leitfaden für eine sichere IPv6-Netzwerkarchitektur]]** vom **[[https://www.bsi.bund.de|Bundesamt für Sicherheit in der Informationstechnik]]**. +
-</WRAP>+
  
-Die Konfiguration welcher Adresstyp und ob **SLAAC** und|oder **DHCPv6** zum Einsatz kommen wird, wird im Inventory mit den beiden Variablen **''radvd_gua_mode''** und **''radvd_ula_mode''** gesetzt:+++++
  
-GUA-/LUA-Mode bei IPv6-Adressen:                                                                                                          +Für die Konfiguration des Kea-DHCP4-Daemon werden die nötigen Schritte in der Task-Gruppe mit dem tag **''dhcp4''** definiert. 
-  * **''noone''** = weder SLAAC noch DHCPv6, keine Adresse +   $ vim roles/kea_dhcp/tasks/dhcp4.yml 
-  * **''slaac''** = Adresse via SLAAC generieren +++++ roles/kea_dhcp/tasks/dhcp4.yml |
-  * **''dhcp6''** = Adresse via DHCPv6 beziehen+
  
 +{{gh> https://gitlab.nausch.org/django/example_kea/-/blob/main/roles/kea_dhcp/tasks/dhcp4.yml }}
  
-Um sicher zu stellen, dass die beiden Variablen **''radvd_gua_mode''** und **''radvd_ula_mode''** mit validen Daten gefüttert werden, überprüfen wir in einem Task die Gültigkeit der Daten. +++++
-   $ vim roles/radvd/tasks/variablencheck.yml+
  
-{{gh> https://gitlab.nausch.org/django/example_radvd/-/blob/main/roles/radvd/tasks/variablencheck.yml }}+Der Kea-DHCP4-Daemon wird mit Hilfe der Task-Gruppe mit dem tag **''dhcp6''** konfiguriert. 
 +   $ vim roles/kea_dhcp/tasks/dhcp6.yml 
 +++++ roles/kea_dhcp/tasks/dhcp6.yml |
  
-Die eigentliche Installation und Konfiguration erfolgt dann im Task **''install.yml''** +{{gh> https://gitlab.nausch.org/django/example_kea/-/blob/main/roles/kea_dhcp/tasks/dhcp6.yml }}
-   $ vim roles/radvd/tasks/install.yml+
  
-{{gh> https://gitlab.nausch.org/django/example_radvd/-/blob/main/roles/radvd/tasks/install.yml }}+++++
  
-Die Anpassung an unserer Firewall-Konfiguration  erfolgt im Task **''firewalld''**+Nun brauchen wir noch eine Beschreibung der Aufgaben für die Konfiguration der firewalld-Regeln für beide Kea Daemons
-   $ vim roles/radvd/tasks/firewalld.yml+   $ vim roles/kea_dhcp/tasks/firewalld.yml 
 +++++ roles/kea_dhcp/tasks/firewalld.yml |
  
-{{gh> https://gitlab.nausch.org/django/example_radvd/-/blob/main/roles/radvd/tasks/firewalld.yml }}+{{gh> https://gitlab.nausch.org/django/example_kea/-/blob/main/roles/kea_dhcp/tasks/firewalld.yml }}
  
-Die beiden Templates **''radvd_single_config.j2''** und **''radvd_both_config.j2''** werden verwendet entsprechend der Auswahl ob nun Nur **GUA** oder **ULA** verwendet werden sollen oder beide. +++++
-Das Template **''radvd_single_config.j2''** für die Generierung der Konfigurationsdatei **''/etc/radvd.conf''**, wenn nur eine der beiden Adressarten gewählt wurde, hat folgenden Aufbau. +
-   $ vim roles/radvd/templates/radvd_single_config.j2+
  
-{{gh> https://gitlab.nausch.org/django/example_radvd/-/blob/main/roles/radvd/templates/radvd_single_config.j2 }}+Sollte bei der Abarbeitung des Playbook eine oder beide Konfigurationsdateien **''kea-dhcp4.conf''** und **''kea-dhcp6.conf''** verändert werden, ist natürlich hierbei ein Restart der betreffenden Kea-Daemon notwendig. Hierzu verwenden wir die **[[https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_handlers.html|Ansible Playbook Handlers]]**. Diese Handler werden in den beiden Tasks zur Erstellung der Kea-Konfigurationsdateien mit Hilfe eines **handler**-Calls aufgerufen, sofern sich die Datei verändert hat
  
-Sollen sowohl **GUA** wie **ULA** zum Einsatz kommen wird das zweite Template **''radvd_both_config.j2''** herangezogen+Zu guter Letzt brauchen wir noch eine Konfiguration der Aufgaben die bei einem **''notify''** abgearbeitet werden sollen. 
-   $ vim roles/radvd/templates/radvd_both_config.j2+   $ vim roles/kea_dhcp/handlers/main.yml 
 +++++ roles/kea_dhcp/handlers/main.yml | 
 + 
 +{{gh> https://gitlab.nausch.org/django/example_kea/-/blob/main/roles/kea_dhcp/handlers/main.yml }} 
 + 
 +++++ 
 + 
 +Für die Erstellung der jeweiligen Konfigurationsdateien **''/etc/kea/kea-dhcp4.conf''** und **''/etc/kea/kea-dhcp6.conf''** brauchen wir nun noch jeweils ein **[[https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_templating.html|Jinja2]]** Templates. Mit Hilfe dieser beiden Templates und der darin enthaltenen Schleifendefinitionen werden dann mit Hilfe der Daten aus dem Inventory die zuvor genannten Konfigurationsdateien erzeugt
 +   $ vim roles/kea_dhcp/templates/dhcp4.j2 
 +++++ roles/kea_dhcp/templates/dhcp4.j2 | 
 + 
 +{{gh> https://gitlab.nausch.org/django/example_kea/-/blob/main/roles/kea_dhcp/templates/dhcp4.j2 }} 
 + 
 +++++ 
 + 
 +   $ vim roles/kea_dhcp/templates/dhcp6.j2 
 +++++ roles/kea_dhcp/templates/dhcp6.j2 | 
 + 
 +{{gh> https://gitlab.nausch.org/django/example_kea/-/blob/main/roles/kea_dhcp/templates/dhcp6.j2 }} 
 + 
 +++++ 
 + 
 +=== Ausführung - Playbooklauf === 
 +Die orchestrierte Variante der Installation und Konfiguration unserer **kea**-Daemon gestaltet sich ab sofort sehr einfach, brauchen wir doch lediglich die Konfigurationswerte im Inventory zu hinterlegen und zu pflegen und letztendlich das Playbook entsprechend aufzurufen, wenn z.B. ein Client im Intranet hinzugefügt, entfernt oder ausgetauscht wird:  
 +   $ ansible-playbook playbooks/kea_dhcp.yml 
 + 
 +<html><pre class="code"> 
 +<font style="color: rgb(0, 0, 0)">[16:43:13] Gathering Facts</font> 
 +<font style="color: rgb(25, 100, 5)">↳  vml010110 | SUCCESS | 2.19s</font> 
 +<font style="color: rgb(0, 0, 0)">[16:43:15] kea-dhcp : Installation des Kea DHCP-Servers.</font> 
 +<font style="color: rgb(25, 100, 5)">↳  vml010110 | SUCCESS | 7ms</font> 
 +<font style="color: rgb(0, 0, 0)">[16:43:15]     ↳ vorbereitung: Vorhandenes System aktualisieren.</font> 
 +<font style="color: rgb(196, 160, 0)">↳  vml010110 | CHANGED | 2.45s</font> 
 +<font style="color: rgb(0, 0, 0)">[16:43:17]     ↳ vorbereitung: Installation der benötigten kea Pakete.</font> 
 +<font style="color: rgb(25, 100, 5)">↳  vml010110 | SUCCESS | 1.63s</font> 
 +<font style="color: rgb(0, 0, 0)">[16:43:19] kea-dhcp : Konfiguration des Kea DHCP4-Servers.</font> 
 +<font style="color: rgb(25, 100, 5)">↳  vml010110 | SUCCESS | 12ms</font> 
 +<font style="color: rgb(0, 0, 0)">[16:43:19]     ↳ dhcp4: Checken ob es bereits eine Backupdatei der kea-dhcp4.conf gibt.</font> 
 +<font style="color: rgb(25, 100, 5)">↳  vml010110 | SUCCESS | 609ms</font> 
 +<font style="color: rgb(0, 0, 0)">[16:43:19]     ↳ dhcp4: Backupdatei der Konfigurationsdatei kea-dhcp4.conf erstellen.</font> 
 +<font style="color: rgb(3, 99, 84)">vml010110 | SKIPPED | 9ms</font> 
 +<font style="color: rgb(0, 0, 0)">[16:43:20]     ↳ dhcp4: Individuelle Konfigurationsdatei kea-dhcp4.conf erzeugen und kopieren.</font> 
 +<font style="color: rgb(25, 100, 5)">↳  vml010110 | SUCCESS | 1.19s</font> 
 +<font style="color: rgb(0, 0, 0)">[16:43:21]     ↳ dhcp4: Sicherstellen, dass der kea-dhcp4 Daemon reboot(-fest) startet.</font> 
 +<font style="color: rgb(25, 100, 5)">↳  vml010110 | SUCCESS | 918ms<font> 
 +<font style="color: rgb(0, 0, 0)">[16:43:22] kea-dhcp : Konfiguration des Kea DHCP6-Servers.</font> 
 +<font style="color: rgb(25, 100, 5)">↳  vml010110 | SUCCESS | 10ms<font> 
 +<font style="color: rgb(0, 0, 0)">[16:43:22]     ↳ dhcp6: Checken ob es bereits eine Backupdatei der kea-dhcp6.conf gibt.</font> 
 +<font style="color: rgb(25, 100, 5)">↳  vml010110 | SUCCESS | 524ms<font> 
 +<font style="color: rgb(0, 0, 0)">[16:43:22]     ↳ dhcp6: Backupdatei der Konfigurationsdatei kea-dhcp6.conf erstellen.</font> 
 +<font style="color: rgb(3, 99, 84)">vml010110 | SKIPPED | 14ms<font> 
 +<font style="color: rgb(0, 0, 0)">[16:43:22]     ↳ dhcp6: Individuelle Konfigurationsdatei kea-dhcp6.conf erzeugen und kopieren.</font> 
 +<font style="color: rgb(196, 160, 0)">↳  vml010110 | CHANGED | 1.31s<font> 
 +<font style="color: rgb(0, 0, 0)">[16:43:24]     ↳ dhcp6: Sicherstellen, dass der kea-dhcp4 Daemon reboot(-fest) startet.</font> 
 +<font style="color: rgb(25, 100, 5)">↳  vml010110 | SUCCESS | 826ms</font> 
 +<font style="color: rgb(0, 0, 0)">[16:43:24] kea-dhcp : Konfiguration der firewalld-Regeln für beide Kea Daemons.</font> 
 +<font style="color: rgb(25, 100, 5)">↳  vml010110 | SUCCESS | 27ms</font> 
 +<font style="color: rgb(0, 0, 0)">[16:43:24]     ↳ firewalld: Konfiguration der firewalld Regeln in Zone_1 für die Kea-Daemon.</font> 
 +<font style="color: rgb(25, 100, 5)">↳  vml010110 | SUCCESS | 5.09s</font> 
 +<font style="color: rgb(0, 0, 0)">[16:43:30]     ↳ firewalld: Konfiguration der firewalld Regeln in Zone_2 für die Kea-Daemon./font> 
 +<font style="color: rgb(25, 100, 5)">↳  vml010110 | SUCCESS | 5.12s</font> 
 +<font style="color: rgb(0, 0, 0)">[16:43:35]     ↳ firewalld: Zum Schluss den aktuellen permanenten Regelsatz final neu laden.</font> 
 +<font style="color: rgb(196, 160, 0)">↳  vml010110 | CHANGED | 918ms</font> 
 +<font style="color: rgb(25, 100, 5)">triggering handler | kea-dhcp : Restart dhcp6</font> 
 +<font style="color: rgb(196, 160, 0)">↳  vml010110 | CHANGED | 1.76s</font> 
 +<font style="color: rgb(0, 0, 0)">[16:43:36] system</font> 
 +<font style="color: rgb(25, 100, 5)">-- Play recap --</font> 
 +<font style="color: rgb(196, 160, 0)">vml010110                  </font><font style="color: rgb(0, 0, 0)">: </font><font style="color: rgb(25, 100, 5)">ok=17   </font><font style="color: rgb(196, 160, 0)">changed=4    </font>unreachable=0    failed=0    <font style="color: rgb(3, 99, 84)">skipped=2</font>    <font style="color: rgb(0, 0, 0)">rescued=0    ignored=0</font> 
 +</pre> 
 +</html>
  
-{{ghhttps://gitlab.nausch.org/django/example_radvd/-/blob/main/roles/radvd/templates/radvd_both_config.j2 }}+==== Ergebniskontrolle ==== 
 +Ob die Konfigurationsdateien valide erstellt und auch von den Kea-Daemons erfolgreich geladen worden sind, kontrollieren wir zum Beispiel auf dem Zielhost mit einem Blick in die betreffenden Konfigurationsdateien, mit Hilfe der Option **''-t''** beim jeweiligen kea-binarys, oder mit Hilfe der **''status''**-Abfrage des betreffenden Kea-Daemons. 
 +  * **kea-dhcp4** <code# bat /etc/kea/kea-dhcp4.conf</code><code> # kea-dhcp4 -t /etc/kea/kea-dhcp4.conf</code><code> # systemctl status kea-dhcp4</code> 
 +  * **kea-dhcp6** <code> # bat /etc/kea/kea-dhcp6.conf</code><code> # kea-dhcp6 -t /etc/kea/kea-dhcp6.conf</code><code> # systemctl status kea-dhcp6</code>
  
 +====== Links ======
 +  * **[[linux:ansible:detail|zurück zum Kapitel "Ansible - Erweiterte Konfigurationsbeispiele"]] <= **
 +  * **=> [[linux:dhcpd|weiter zum Kapitel "DNS Server für IPv4|6 unter Arch Linux einrichten und nutzen"]] <= **
 +  * **[[linux:start#ansible|Zurück zur "Ansible"-Übersicht]]**
 +  * **[[wiki:start|Zurück zu >>Projekte und Themenkapitel<<]]**
 +  * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**
  
  • linux/kea.1729346853.txt.gz
  • Zuletzt geändert: 19.10.2024 14:07.
  • von django