Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung |
linux:kea [19.10.2024 09:31. ] – [Konfigurationsdatei /etc/kea-dhcp6.conf] django | linux:kea [14.03.2025 13:17. ] (aktuell) – [Ergebniskontrolle] django |
---|
| |
|< 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'' | |
| |
| |
==== 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. |
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 |
] | ] |
} | } |
} | }</file> |
| |
| Wollen wir die Kondfigurationsdate ohne die Kommentare sehen, grep'en wir einfach entsprechend danach. |
| # grep -Ev '(^.*//|^$)' /etc/kea/kea-dhcp6.conf |
| |
| ++++ Beispielkonfigurationsdatei ohne Kommentare | |
| <file java /etc/kea/kea-dhcp6.conf>{ |
| "Dhcp6": { |
| "interfaces-config": { |
| "interfaces": [ "eth1" ] |
| }, |
| |
| "control-socket": { |
| "socket-type": "unix", |
| "socket-name": "/var/lib/kea/kea6-ctrl-socket" |
| }, |
| "lease-database": { |
| "type": "memfile", |
| "persist": true, |
| "name": "/var/lib/kea/kea-leases6.csv", |
| "lfc-interval": 3200, |
| "max-row-errors": 100 |
| }, |
| |
| "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 |
| }, |
| |
| "valid-lifetime": 3600, |
| "renew-timer": 1800, |
| "rebind-timer": 3200, |
| "preferred-lifetime": 3000, |
| |
| "option-data": [ |
| { |
| "name": "dns-servers", |
| "data": "fd00:0:0:7:10:0:10:110" |
| }, |
| |
| { |
| "name": "domain-search", |
| "data": "nausch.org" |
| } |
| ], |
| "subnet6": [ |
| { |
| "interface": "eth1", |
| |
| "id": 62, |
| "subnet": "fd00:0:0:7::/64", |
| "pools": [ { "pool": "fd00:0:0:7:10:0:10:300/120" } ], |
| "option-data": [ |
| { |
| "name": "dns-servers", |
| "data": "fd00:0:0:7:10:0:10:110" |
| }, |
| { |
| "name": "sntp-servers", |
| "data": "fd00:0:0:7:10:0:10:110" |
| } |
| ], |
| "reservations": [ |
| { |
| "duid": "00:03:00:01:ac:1f:6b:00:d3:9b", |
| "ip-addresses": [ "fd00:0:0:7:10:0:10:2" ], |
| "hostname": "pml010002.intra.nausch.org" |
| }, |
| { |
| "duid": "00:03:00:01:d8:eb:97:33:48:62", |
| "ip-addresses": [ "fd00:0:0:7:10:0:10:3" ], |
| "hostname": "pnc010003.intra.nausch.org" |
| }, |
| { |
| "duid": "00:03:00:01:64:66:b3:c9:98:7c", |
| "ip-addresses": [ "fd00:0:0:7:10:0:10:6" ], |
| "hostname": "pnc010006.intra.nausch.org" |
| }, |
| { |
| "duid": "00:03:00:01:6c:cd:d6:b8:52:be", |
| "ip-addresses": [ "fd00:0:0:7:10:0:10:7" ], |
| "hostname": "pnc010007.intra.nausch.org" |
| }, |
| { |
| "duid": "00:03:00:01:00:0b:6a:32:32:95", |
| "ip-addresses": [ "fd00:0:0:7:10:0:10:100" ], |
| "hostname": "pml010100.intra.nausch.org" |
| }, |
| { |
| "duid": "00:02:00:00:ab:11:3e:4a:0e:2c:c1:5b:e2:64", |
| "ip-addresses": [ "fd00:0:0:7:10:0:10:102" ], |
| "hostname": "pml010102.intra.nausch.org" |
| }, |
| { |
| "duid": "00:03:00:01:52:54:00:41:11:02", |
| "ip-addresses": [ "fd00::7:10:0:10:110" ], |
| "hostname": "vml010110.intra.nausch.org" |
| } |
| ] |
| } |
| ], |
| "loggers": [ |
| { |
| "name": "kea-dhcp6", |
| "output_options": [ |
| { |
| "output": "syslog" |
| } |
| ], |
| "severity": "INFO", |
| "debuglevel": 0 |
| } |
| ] |
| } |
| }</file> |
| ++++ |
| |
| |
| |
| Bevor wir nun unseren **kea-dhcp6**-Daemon starten, führen wir noch einen Konfigurationstest durch. Wir prüfen also nun die Konfigurationsdatei unseres **kea-dhcp6** auf syntaktische Fehler. |
| # kea-dhcp6 -t /etc/kea/kea-dhcp6.conf |
| <code>2024-10-19 11:42:46.735 INFO [kea-dhcp6.hosts/13028.126477756442496] HOSTS_BACKENDS_REGISTERED the following host backend types are available: mysql postgresql |
| 2024-10-19 11:42:46.736 WARN [kea-dhcp6.dhcpsrv/13028.126477756442496] DHCPSRV_MT_DISABLED_QUEUE_CONTROL disabling dhcp queue control when multi-threading is enabled. |
| 2024-10-19 11:42:46.736 WARN [kea-dhcp6.dhcp6/13028.126477756442496] DHCP6_RESERVATIONS_LOOKUP_FIRST_ENABLED Multi-threading is enabled and host reservations lookup is always performed first. |
| 2024-10-19 11:42:46.736 INFO [kea-dhcp6.dhcpsrv/13028.126477756442496] DHCPSRV_CFGMGR_NEW_SUBNET6 a new subnet has been added to configuration: fd00:0:0:7::/64 with params: t1=1800, t2=3200, preferred-lifetime=3000, valid-lifetime=3600, rapid-commit is false |
| 2024-10-19 11:42:46.738 INFO [kea-dhcp6.dhcpsrv/13028.126477756442496] DHCPSRV_CFGMGR_SOCKET_TYPE_SELECT using socket type raw |
| 2024-10-19 11:42:46.738 INFO [kea-dhcp6.dhcpsrv/13028.126477756442496] DHCPSRV_CFGMGR_ADD_IFACE listening on interface eth1</code> |
| |
| === Start des kea-dhcp6 === |
| Nun können wir beruhigt und guten Mutes unseren **kea-dhcp6** Daemon starten. |
| # systemctl start kea-dhcp6.service |
| |
| Im **Journal** wir der Start entsprechend dokumentiert. |
| |
| <html><pre class="code">Oct 19 11:49:48 vml000110 systemd[1]: Started ISC Kea IPv6 DHCP daemon. |
| Oct 19 11:49:49 vml000110 kea-dhcp6[13092]: 2024-10-19 11:49:49.027 INFO [kea-dhcp6.dhcp6/13092.138845348149120] DHCP6_STARTING Kea DHCPv6 server version 2.6.1 (stable) starting |
| Oct 19 11:49:49 vml000110 kea-dhcp6[13092]: 2024-10-19 11:49:49.030 INFO [kea-dhcp6.commands/13092.138845348149120] COMMAND_RECEIVED Received command 'config-set' |
| Oct 19 11:49:49 vml000110 kea-dhcp6[13092]: INFO [kea-dhcp6.hosts.138845348149120] HOSTS_BACKENDS_REGISTERED the following host backend types are available: mysql postgresql |
| Oct 19 11:49:49 vml000110 kea-dhcp6[13092]: <font style="color: rgb(201, 214, 95)"><b>WARN [kea-dhcp6.dhcpsrv.138845348149120] DHCPSRV_MT_DISABLED_QUEUE_CONTROL disabling dhcp queue control when multi-threading is enabled.</b></font> |
| Oct 19 11:49:49 vml000110 kea-dhcp6[13092]: <font style="color: rgb(201, 214, 95)"><b>WARN [kea-dhcp6.dhcp6.138845348149120] DHCP6_RESERVATIONS_LOOKUP_FIRST_ENABLED Multi-threading is enabled and host reservations lookup is always performed first.</b></font> |
| Oct 19 11:49:49 vml000110 kea-dhcp6[13092]: INFO [kea-dhcp6.dhcpsrv.138845348149120] DHCPSRV_CFGMGR_NEW_SUBNET6 a new subnet has been added to configuration: fd00:0:0:7::/64 with params: t1=1800, t2=3200, preferred-lifetime=3000, valid-lifetime=3600, rapid-commit is false |
| Oct 19 11:49:49 vml000110 kea-dhcp6[13092]: INFO [kea-dhcp6.dhcpsrv.138845348149120] DHCPSRV_CFGMGR_SOCKET_TYPE_SELECT using socket type raw |
| Oct 19 11:49:49 vml000110 kea-dhcp6[13092]: INFO [kea-dhcp6.dhcpsrv.138845348149120] DHCPSRV_CFGMGR_ADD_IFACE listening on interface eth1 |
| Oct 19 11:49:49 vml000110 kea-dhcp6[13092]: INFO [kea-dhcp6.commands.138845348149120] COMMAND_ACCEPTOR_START Starting to accept connections via unix domain socket bound to /var/lib/kea/kea6-ctrl-socket |
| Oct 19 11:49:49 vml000110 kea-dhcp6[13092]: INFO [kea-dhcp6.dhcp6.138845348149120] DHCP6_CONFIG_COMPLETE DHCPv6 server has completed configuration: added IPv6 subnets: 1; DDNS: disabled |
| Oct 19 11:49:49 vml000110 kea-dhcp6[13092]: INFO [kea-dhcp6.dhcpsrv.138845348149120] DHCPSRV_MEMFILE_DB opening memory file lease database: lfc-interval=3200 max-row-errors=100 name=/var/lib/kea/kea-leases6.csv persist=true type=memfile universe=6 |
| Oct 19 11:49:49 vml000110 kea-dhcp6[13092]: INFO [kea-dhcp6.dhcpsrv.138845348149120] DHCPSRV_MEMFILE_LEASE_FILE_LOAD loading leases from file /var/lib/kea/kea-leases6.csv.2 |
| Oct 19 11:49:49 vml000110 kea-dhcp6[13092]: INFO [kea-dhcp6.dhcpsrv.138845348149120] DHCPSRV_MEMFILE_LEASE_FILE_LOAD loading leases from file /var/lib/kea/kea-leases6.csv |
| Oct 19 11:49:49 vml000110 kea-dhcp6[13092]: INFO [kea-dhcp6.dhcpsrv.138845348149120] DHCPSRV_MEMFILE_BUILD_EXTENDED_INFO_TABLES6 building extended info tables saw 13 leases, extended info sanity checks modified 0 leases and 0 leases were entered into tables |
| Oct 19 11:49:49 vml000110 kea-dhcp6[13092]: INFO [kea-dhcp6.dhcpsrv.138845348149120] DHCPSRV_MEMFILE_LFC_SETUP setting up the Lease File Cleanup interval to 3200 sec |
| Oct 19 11:49:49 vml000110 kea-dhcp6[13092]: INFO [kea-dhcp6.dhcp6.138845348149120] DHCP6_USING_SERVERID server is using server-id 00:01:00:01:2d:c7:a3:0e:52:54:00:41:11:01 and stores in the file /var/lib/kea/kea-dhcp6-serverid |
| Oct 19 11:49:49 vml000110 kea-dhcp6[13092]: INFO [kea-dhcp6.dhcpsrv.138845348149120] DHCPSRV_CFGMGR_USE_ALLOCATOR using the iterative allocator for IA_NA leases in subnet fd00:0:0:7::/64 |
| Oct 19 11:49:49 vml000110 kea-dhcp6[13092]: INFO [kea-dhcp6.dhcpsrv.138845348149120] DHCPSRV_CFGMGR_USE_ALLOCATOR using the iterative allocator for IA_TA leases in subnet fd00:0:0:7::/64 |
| Oct 19 11:49:49 vml000110 kea-dhcp6[13092]: INFO [kea-dhcp6.dhcpsrv.138845348149120] DHCPSRV_CFGMGR_USE_ALLOCATOR using the iterative allocator for IA_PD leases in subnet fd00:0:0:7::/64 |
| Oct 19 11:49:49 vml000110 kea-dhcp6[13092]: <font style="color: rgb(201, 214, 95)"><b>WARN [kea-dhcp6.dhcp6.138845348149120] DHCP6_MULTI_THREADING_INFO enabled: yes, number of threads: 4, queue size: 64</b></font> |
| Oct 19 11:49:49 vml000110 kea-dhcp6[13092]: INFO [kea-dhcp6.dhcp6.138845348149120] DHCP6_STARTED Kea DHCPv6 server version 2.6.1 started</pre> |
| </html> |
| |
| Bei Bedarf können wir natürlich auch den Status unseres Daemons jederzeit abfragen. |
| # systemctl status kea-dhcp6.service |
| |
| <html><pre class="code"> |
| <font style="color: rgb(29, 180, 29)"><b>●</b></font> kea-dhcp6.service - ISC Kea IPv6 DHCP daemon |
| Loaded: loaded (/usr/lib/systemd/system/kea-dhcp6.service; </font><font style="color: rgb(29, 180, 29)"><b>enabled</b></font>; preset: <font style="color: rgb(201, 214, 95)"><b>disabled</b></font>) |
| Active:<font style="color: rgb(29, 180, 29)"><b>active (running)</b></font> since Sat 2024-10-19 11:49:48 CEST; 3min 16s ago |
| Invocation: 0d82ea986a164eea91930cafef01d523 |
| Docs: man:kea-dhcp6(8) |
| Main PID: 13092 (kea-dhcp6) |
| Tasks: 9 (limit: 9510) |
| Memory: 3M (peak: 3.5M) |
| CPU: 66ms |
| CGroup: /system.slice/kea-dhcp6.service |
| └─13092 /usr/bin/kea-dhcp6 -c /etc/kea/kea-dhcp6.conf |
| |
| Oct 19 11:49:49 vml000110 kea-dhcp6[13092]: <font style="color: rgb(201, 214, 95)"><b>WARN [kea-dhcp4.dhcp4.136533820646528] DHCP4_MULTI_THREADING_INFO enabled: yes, number of threads: 4, queue size: 64</b></font> |
| Oct 19 11:49:49 vml000110 kea-dhcp6[13092]: INFO [kea-dhcp6.dhcp6.138845348149120] DHCP6_STARTED Kea DHCPv6 server version 2.6.1 started |
| Oct 19 11:50:00 vml000110 kea-dhcp6[13092]: INFO [kea-dhcp6.dhcp6.138845313959616] DHCP6_QUERY_LABEL received query: duid=[00:01:00:01:29:0f:e9:34:b8:27:eb:b2:56:1f], [no hwaddr info], tid=0x3e3337 |
| Oct 19 11:50:00 vml000110 kea-dhcp6[13092]: INFO [kea-dhcp6.packets.138845313959616] DHCP6_PACKET_RECEIVED duid=[00:01:00:01:29:0f:e9:34:b8:27:eb:b2:56:1f], [no hwaddr info], tid=0x3e3337: RENEW (type 5) received from fe80::a112:c604:f325:26dc to ff02::1:2 on interface eth1 |
| Oct 19 11:50:00 vml000110 kea-dhcp6[13092]: INFO [kea-dhcp6.leases.138845313959616] DHCP6_LEASE_RENEW duid=[00:01:00:01:29:0f:e9:34:b8:27:eb:b2:56:1f], [no hwaddr info], tid=0x3e3337: lease for address fd00::7:10:0:10:36 and iaid=3957113288 has been allocated |
| Oct 19 11:50:00 vml000110 kea-dhcp6[13092]: INFO [kea-dhcp6.packets.138845313959616] DHCP6_PACKET_SEND duid=[00:01:00:01:29:0f:e9:34:b8:27:eb:b2:56:1f], [no hwaddr info], tid=0x3e3337: trying to send packet REPLY (type 7) from [ff02::1:2]:547 to [fe80::a112:c604:f325:26dc]:546 on interface eth1 |
| Oct 19 11:51:52 vml000110 kea-dhcp6[13092]: INFO [kea-dhcp6.dhcp6.138845305566912] DHCP6_QUERY_LABEL received query: duid=[00:03:00:01:1c:ed:6f:bb:f3:9f], [no hwaddr info], tid=0xd5b5b1 |
| Oct 19 11:51:52 vml000110 kea-dhcp6[13092]: INFO [kea-dhcp6.packets.138845305566912] DHCP6_PACKET_RECEIVED duid=[00:03:00:01:1c:ed:6f:bb:f3:9f], [no hwaddr info], tid=0xd5b5b1: RENEW (type 5) received from fe80::1eed:6fff:febb:f39f to ff02::1:2 on interface eth1 |
| Oct 19 11:51:52 vml000110 kea-dhcp6[13092]: INFO [kea-dhcp6.leases.138845305566912] DHCP6_LEASE_RENEW duid=[00:03:00:01:1c:ed:6f:bb:f3:9f], [no hwaddr info], tid=0xd5b5b1: lease for address fd00::7:10:0:10:5 and iaid=1874588575 has been allocated |
| Oct 19 11:51:52 vml000110 kea-dhcp6[13092]: INFO [kea-dhcp6.packets.138845305566912] DHCP6_PACKET_SEND duid=[00:03:00:01:1c:ed:6f:bb:f3:9f], [no hwaddr info], tid=0xd5b5b1: trying to send packet REPLY (type 7) from [ff02::1:2]:547 to [fe80::1eed:6fff:febb:f39f]:546 on interface eth1 |
| </pre></html> |
| |
| Verbindet sich nun ein uns unbekannter Host und kontaktiert unseren **kea-dhcp6**-Daemon wird der erfolgreiche Handshake im **Journal** protokolliert. |
| # journalctl -fu kea-dhcp6 |
| |
| <code>Oct 19 12:10:53 vml000110 kea-dhcp6[13178]: INFO [kea-dhcp6.dhcp6.136335342069440] DHCP6_QUERY_LABEL received query: duid=[00:01:00:01:2e:46:d3:f8:f4:a8:0d:20:b1:37], [no hwaddr info], tid=0x86bd1b |
| Oct 19 12:10:53 vml000110 kea-dhcp6[13178]: INFO [kea-dhcp6.packets.136335342069440] DHCP6_PACKET_RECEIVED duid=[00:01:00:01:2e:46:d3:f8:f4:a8:0d:20:b1:37], [no hwaddr info], tid=0x86bd1b: RENEW (type 5) received from fe80::9ae3:7d16:5806:aff0 to ff02::1:2 on interface eth1 |
| Oct 19 12:10:53 vml000110 kea-dhcp6[13178]: INFO [kea-dhcp6.leases.136335342069440] DHCP6_LEASE_RENEW duid=[00:01:00:01:2e:46:d3:f8:f4:a8:0d:20:b1:37], [no hwaddr info], tid=0x86bd1b: lease for address fd00::7:10:0:10:304 and iaid=170694673 has been allocated |
| Oct 19 12:10:53 vml000110 kea-dhcp6[13178]: INFO [kea-dhcp6.packets.136335342069440] DHCP6_PACKET_SEND duid=[00:01:00:01:2e:46:d3:f8:f4:a8:0d:20:b1:37], [no hwaddr info], tid=0x86bd1b: trying to send packet REPLY (type 7) from [ff02::1:2]:547 to [fe80::9ae3:7d16:5806:aff0]:546 on interface eth1 |
| </code> |
| |
| Dem Client wurde also die IP-Adresse **''fd00::7:10:0:10:304''** aus unserem definierten Pool zugewiesen, da wir dessen DUID **''00:01:00:01:2e:46:d3:f8:f4:a8:0d:20:b1:37''** nicht kennen! |
| |
| Verbindet sich jedoch nun ein uns bekannter Client, dessen DUID **''00:03:00:01:d8:eb:97:33:48:62''** wir bei den **Reservierungen** der IP-Adresse **''fd00::7:10:0:10:3''** zugeordnet hatten, mit unserem Kea-Host, sehen wir im Journal entsprechend: |
| # journalctl -fu kea-dhcp4 |
| <code>Oct 19 12:11:14 vml000110 kea-dhcp6[13178]: INFO [kea-dhcp6.dhcp6.136335333676736] DHCP6_QUERY_LABEL received query: duid=[00:03:00:01:d8:eb:97:33:48:62], [no hwaddr info], tid=0xcec735 |
| Oct 19 12:11:14 vml000110 kea-dhcp6[13178]: INFO [kea-dhcp6.packets.136335333676736] DHCP6_PACKET_RECEIVED duid=[00:03:00:01:d8:eb:97:33:48:62], [no hwaddr info], tid=0xcec735: RENEW (type 5) received from fe80::2e3a:fdff:fe2e:bd0b to ff02::1:2 on interface eth1 |
| Oct 19 12:11:14 vml000110 kea-dhcp6[13178]: INFO [kea-dhcp6.alloc-engine.136335333676736] ALLOC_ENGINE_V6_HR_ADDR_GRANTED reserved address fd00::7:10:0:10:3 was assigned to client duid=[00:03:00:01:d8:eb:97:33:48:62], [no hwaddr info], tid=0xcec735 |
| Oct 19 12:11:14 vml000110 kea-dhcp6[13178]: INFO [kea-dhcp6.leases.136335333676736] DHCP6_LEASE_RENEW duid=[00:03:00:01:d8:eb:97:33:48:62], [no hwaddr info], tid=0xcec735: lease for address fd00::7:10:0:10:4 and iaid=4247698699 has been allocated |
| Oct 19 12:11:14 vml000110 kea-dhcp6[13178]: INFO [kea-dhcp6.packets.136335333676736] DHCP6_PACKET_SEND duid=[00:03:00:01:d8:eb:97:33:48:62], [no hwaddr info], tid=0xcec735: trying to send packet REPLY (type 7) from [ff02::1:2]:547 to [fe80::2e3a:fdff:fe2e:bd0b]:546 on interface eth1</code> |
| |
| Der Host hat also seine vordefinierte **feste IPv6-Adresse** **''fd00::7:10:0:10:3''** vom **kea-dhcp4**-Damon erfolgreich zugewiesen bekommen! |
| |
| ===== Orchestrierung - Installation und Konfiguration der beiden Kea-Daemon mit Hilfe von Ansible ===== |
| ==== Aufgabenstellung ==== |
| Natürlich wird man im Jahr 2024 nicht mehr ernsthaft, manuell Server aufsetzen und betreiben wollen. Vielmehr wird man auf ein Orchestrierungswerkzeug wie z.B. **[[linux:ansible:start|Ansible]]** zurückgreifen. Setzen wir einen neue virtuellen Server unter Arch Linux neu auf, oder wollen wir bei einem bestehenden Host die Konfiguration aktualisieren, verwenden wir wie zuvor schon angeschnitten [[https://www.ansible.com/|Ansible]] als Orchestrierungswerkzeug. So ist sichergestellt dass zum einen all unsere Hosts entsprechend gleich aufgebaut, konfiguriert und betrieben werden, es also keine Bastel-/Frickellösung geben wird. |
| |
| Wir werden uns nun nachfolgend die Server-Installation und -konfiguration genauer betrachten. |
| |
| ==== Lösung ==== |
| |
| <WRAP center round tip 80%> |
| 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> |
| |
| Nach Anpassung der Daten im Inventory kann man anschliessend direkt **[[#ausfuehrung_-_playbooklauf|zur Ausführung schreiten]]**. |
| </WRAP> |
| |
| === Vorbereitung - (Server-)Daten im Inventory === |
| Bei unserem Konfigurationsbeispiel hier gehen wir von folgenden Host-Parametern aus: |
| * **''zone: intra''** |
| * **''hostname: vml010110''** |
| |
| Die Konfigurationsdatei unseres **inventory** in unsere, Ansible-Verzeichnis beinhaltet demnach unter anderem: |
| $ vim inventories/production/hosts |
| ++++ inventories/production/hosts | |
| <file bash inventories/production/hosts># Inventory Datei für die System-Umgebung im SOHO |
| # |
| # Hinweise: |
| # - Kommentare beginnen mit einem '#'-Zeichen |
| # - leere Zeilen werden ignoriert |
| # - Host- und Gruppendefinitionen werden mit [] abgegrenzt |
| # - Hosts können über ihren Hostnamen, FQN oder ihrer IP-Adresse definiert |
| # - übergeordnete Gruppen werden durch [:children] abgegrenzt |
| # |
| # Host-Definitionen |
| |
| # Hosts ohne Gruppenzuordnung |
| localhost |
| |
| [edmz] |
| vml000210 |
| |
| [idmz] |
| vml000110 |
| |
| [intra] |
| pnc010007 |
| vml010110 |
| |
| |
| # Host-Gruppen-Definitionen |
| # (zu welcher Gruppe gehören Untergruppen bzw. Hosts) |
| |
| [linux:children] |
| intra |
| edmz |
| idmz |
</file> | </file> |
++++ | ++++ |
FIXME | |
Bevor wir nun unseren **kea-dhcp4** starten, führen wir noch einen Konfigurationstest durch. Wir prüfen also nun die Konfigurationsdatei unseres **kea-dhcp4** auf syntaktische Fehler. | Die beiden Beispiel-Hosts aus der Gruppe|Zone **''intra''** in diesem Inventory symbolisieren folgende unterschiedlichen Knoten. |
# kea-dhcp4 -t /etc/kea/kea-dhcp4.conf | * 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. |
<code>2024-07-04 17:23:55.327 INFO [kea-dhcp4.hosts/1913.135232873002112] HOSTS_BACKENDS_REGISTERED the following host backend types are available: mysql postgresql | * 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. |
2024-07-04 17:23:55.328 WARN [kea-dhcp4.dhcpsrv/1913.135232873002112] DHCPSRV_MT_DISABLED_QUEUE_CONTROL disabling dhcp queue control when multi-threading is enabled. | |
2024-07-04 17:23:55.328 WARN [kea-dhcp4.dhcp4/1913.135232873002112] DHCP4_RESERVATIONS_LOOKUP_FIRST_ENABLED Multi-threading is enabled and host reservations lookup is always performed first. | Wir legen uns also nun die Hostdefinitionsdatei für unseren Switch im SOHO an. |
2024-07-04 17:23:55.328 INFO [kea-dhcp4.dhcpsrv/1913.135232873002112] DHCPSRV_CFGMGR_NEW_SUBNET4 a new subnet has been added to configuration: 10.0.10.0/24 with params: t1=1800, t2=3200, valid-lifetime=3600 | $ vim inventories/production/host_vars/pnc010007 |
2024-07-04 17:23:55.330 INFO [kea-dhcp4.dhcpsrv/1913.135232873002112] DHCPSRV_CFGMGR_NEW_SUBNET4 a new subnet has been added to configuration: 10.0.0.0/24 with params: t1=1800, t2=3200, valid-lifetime=3600 | ++++ inventories/production/host_vars/pnc010007 | |
2024-07-04 17:23:55.330 INFO [kea-dhcp4.dhcpsrv/1913.135232873002112] DHCPSRV_CFGMGR_SOCKET_TYPE_SELECT using socket type raw | |
2024-07-04 17:23:55.330 INFO [kea-dhcp4.dhcpsrv/1913.135232873002112] DHCPSRV_CFGMGR_SOCKET_TYPE_SELECT using socket type raw | {{gh> https://gitlab.nausch.org/django/example_kea/-/blob/main/inventories/production/host_vars/pnc010007 }} |
2024-07-04 17:23:55.331 INFO [kea-dhcp4.dhcpsrv/1913.135232873002112] DHCPSRV_CFGMGR_ADD_IFACE listening on interface net0 | |
2024-07-04 17:23:55.331 INFO [kea-dhcp4.dhcpsrv/1913.135232873002112] DHCPSRV_CFGMGR_ADD_IFACE listening on interface net1</code> | ++++ |
| |
| Als nächstes legen wir die Datei für den KVM-Host, auf dem unser Kea-Daemon laufen soll an und definieren darin die zugehörigen Eigenschaften. |
| $ vim inventories/production/host_vars/vml010110/kvm_vhost |
| ++++ inventories/production/host_vars/vml010110/kvm_vhost | |
| |
| {{gh> https://gitlab.nausch.org/django/example_kea/-/blob/main/inventories/production/host_vars/vml010110/kvm_vhost }} |
| |
| ++++ |
| |
| Die für die beiden **kea-Daemon** relevanten Konfigurationsparameter legen wir in der Inventrory-Datei **''inventories/production/host_vars/vml010110/kea''** ab. |
| $ vim inventories/production/host_vars/vml010110/kea |
| ++++ inventories/production/host_vars/vml010110/kea | |
| |
| {{gh> https://gitlab.nausch.org/django/example_kea/-/blob/main/inventories/production/host_vars/vml010110/kea }} |
| |
| ++++ |
| |
| Unser Beispiels-Inventory hat also nunmehr folgenden Aufbau: |
| <code>inventories/production/ |
| ├── hosts |
| └── host_vars |
| ├── pnc010007 |
| └── vml010110 |
| ├── kea |
| └── kvm_vhost |
| |
| 3 directories, 4 files</code> |
| |
| === Playbook === |
| 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 |
| ++++ playbooks/kea_dhcp.yml | |
| |
| {{gh> https://gitlab.nausch.org/django/example_kea/-/blob/main/playbooks/kea_dhcp.yml }} |
| |
| ++++ |
| |
| === 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''**. |
| $ cp -avr roles/common/ roles/kea_dhcp |
| |
| ++++ Ausgabe von cp -avr roles/common/ roles/kea_dhcp | |
| <code>'roles/common/' -> 'roles/kea_dhcp' |
| 'roles/common/defaults' -> 'roles/kea_dhcp/defaults' |
| 'roles/common/defaults/.gitkeep' -> 'roles/kea_dhcp/defaults/.gitkeep' |
| 'roles/common/files' -> 'roles/kea_dhcp/files' |
| 'roles/common/files/.gitkeep' -> 'roles/kea_dhcp/files/.gitkeep' |
| 'roles/common/handlers' -> 'roles/kea_dhcp/handlers' |
| 'roles/common/handlers/.gitkeep' -> 'roles/kea_dhcp/handlers/.gitkeep' |
| 'roles/common/library' -> 'roles/kea_dhcp/library' |
| 'roles/common/library/.gitkeep' -> 'roles/kea_dhcp/library/.gitkeep' |
| 'roles/common/lookup_plugins' -> 'roles/kea_dhcp/lookup_plugins' |
| 'roles/common/lookup_plugins/.gitkeep' -> 'roles/kea_dhcp/lookup_plugins/.gitkeep' |
| 'roles/common/meta' -> 'roles/kea_dhcp/meta' |
| 'roles/common/meta/.gitkeep' -> 'roles/kea_dhcp/meta/.gitkeep' |
| 'roles/common/module_utils' -> 'roles/kea_dhcp/module_utils' |
| 'roles/common/module_utils/.gitkeep' -> 'roles/kea_dhcp/module_utils/.gitkeep' |
| 'roles/common/tasks' -> 'roles/kea_dhcp/tasks' |
| 'roles/common/tasks/main.yml' -> 'roles/kea_dhcp/tasks/main.yml' |
| 'roles/common/templates' -> 'roles/kea_dhcp/templates' |
| 'roles/common/templates/.gitkeep' -> 'roles/kea_dhcp/templates/.gitkeep' |
| 'roles/common/vars' -> 'roles/kea_dhcp/vars' |
| 'roles/common/vars/.gitkeep' -> 'roles/kea_dhcp/vars/.gitkeep' |
| </code> |
| ++++ |
| |
| Bei Bedarf können wir uns die Struktur die somit angelegt wurde mit nachfolgendem Befehl anzeigen lassen. |
| $ tree roles/kea_dhcp/ |
| |
| ++++ Ausgabe von tree roles/kea_dhcp/ | |
| <code>roles/kea_dhcp/ |
| ├── defaults |
| ├── files |
| ├── handlers |
| │ └── main.yml |
| ├── library |
| ├── lookup_plugins |
| ├── meta |
| ├── module_utils |
| ├── tasks |
| │ ├── dhcp4.yml |
| │ ├── dhcp6.yml |
| │ ├── firewalld.yml |
| │ ├── main.yml |
| │ └── vorbereitung.yml |
| ├── templates |
| │ ├── dhcp4.j2 |
| │ └── dhcp6.j2 |
| └── vars |
| |
| 11 directories, 8 files |
| </code> |
| ++++ |
| |
| 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 |
| ++++ roles/kea_dhcp/tasks/main.yml | |
| |
| {{gh> https://gitlab.nausch.org/django/example_kea/-/blob/main/roles/kea_dhcp/tasks/main.yml }} |
| |
| ++++ |
| |
| 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 | |
| |
| {{gh> https://gitlab.nausch.org/django/example_kea/-/blob/main/roles/kea_dhcp/tasks/vorbereitung.yml }} |
| |
| ++++ |
| |
| Für die Konfiguration des Kea-DHCP4-Daemon werden die nötigen Schritte in der Task-Gruppe mit dem tag **''dhcp4''** definiert. |
| $ vim roles/kea_dhcp/tasks/dhcp4.yml |
| ++++ roles/kea_dhcp/tasks/dhcp4.yml | |
| |
| {{gh> https://gitlab.nausch.org/django/example_kea/-/blob/main/roles/kea_dhcp/tasks/dhcp4.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 | |
| |
| {{gh> https://gitlab.nausch.org/django/example_kea/-/blob/main/roles/kea_dhcp/tasks/dhcp6.yml }} |
| |
| ++++ |
| |
| Nun brauchen wir noch eine Beschreibung der Aufgaben für die Konfiguration der firewalld-Regeln für beide Kea Daemons. |
| $ vim roles/kea_dhcp/tasks/firewalld.yml |
| ++++ roles/kea_dhcp/tasks/firewalld.yml | |
| |
| {{gh> https://gitlab.nausch.org/django/example_kea/-/blob/main/roles/kea_dhcp/tasks/firewalld.yml }} |
| |
| ++++ |
| |
| 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. |
| |
| Zu guter Letzt brauchen wir noch eine Konfiguration der Aufgaben die bei einem **''notify''** abgearbeitet werden sollen. |
| $ 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> |
| |
| ==== 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]]** |
| |