/
ChangeLog
14088 lines (11747 loc) · 543 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Kea 2.5.8 (development) released on April 30, 2024
2228. [build] piotrek
The library version numbers have been bumped up for the Kea 2.5.8
development release.
(Gitlab #3355)
2227. [func] fdupont
Implemented the stash-agent-options global parameter
for DHCPv4 (new feature from ISC DHCP allowing to
renew reserved address when the host reservation identifier
is based on the dhcp-agent-options option added by a relay.
(Gitlab #2976)
2226. [func] piotrek
Added information about transaction ID in all possible
places in loggers: alloc-engine, bad-packets, ddns,
eval, leases, options, packets.
(Gitlab #2820)
2225. [func] marcin
Ensure backward compatibility of High Availability
between Kea 2.5.8+ and earlier versions. It introduces
a new origin-id argument to the dhcp-enable, dhcp-disable
and ha-sync-complete-notify commands. It is ignored by the
earlier Kea versions. The origin argument is sent in addition
to the origin-id and has the format recognizable by the old
Kea versions.
(Gitlab #3344)
2224. [func] andrei
Printing the version now mentions if premium is included and
shows the git commit hash for the premium source code repository
if the executable is built from sources.
(Gitlab #3254)
2223. [bug] tmark
Fixed an issue in PerfMon hook library which causes
the kea6_server to crash when the server responds
to a client query for which no subnet was selected.
(Gitlab #3347)
2222. [bug] piotrek
Fixed a bug in host_cmds. When PostgreSQL was used as
hosts database storage, reservation-del command called
with given IPv6 host address and the subnet Id deleted
all IPv6 hosts in given subnet.
Corrected the issue so that now only given host
reservation is deleted.
(Gitlab #3294)
2221. [bug] tmark
Corrected an index on the dhcp4_servers table
in the PostgreSQL schema.
(Gitlab #2957)
2220. [bug] marcin
Exclude packets ignored during load balancing from the
pkt6-receive-drop statistics. The packets dropped by the
HA hook library during subnet selection are counted in
the pkt4-receive-drop and pkt6-receive-drop statistics.
(Gitlab #3125)
2219. [bug] marcin
Corrected an issue in processing the server-name argument
of the ha-sync command. The argument was ignored when the
synchronization with a backup server was performed.
(Gitlab #3276)
2218. [func] marcin
Addressed an inconsistent state of the High Availability
service that occurs when one of the terminated services is
restarted and another one is not. The restarted service waits 10
minutes for the partner restart. If the partner is not restarted
the service transitions to the terminated state to continue
responding to the DHCP traffic.
(Gitlab #3250)
2217. [func] fdupont
Extended the lenient-option-parsing compatibility
flag to ignore DHCPv4 fqdn (81) and DHCPv6 client-fqdn
(39) options with some invalid domain names (e.g.
beginning with an empty label).
(Gitlab #3289)
2216. [func] tmark
PerfMon hook library is now functional. It accumulates
and reports performance data, and supports alarms. Still
lacking are API commands.
(Gitlab #3297)
2215. [bug] tmark
Corrected an issue that can cause kea-dhcp-ddns to
stop processing queued requests. Thanks to Shawn
Routhier from Infoblox for reporting the issue.
(Gitlab #3295)
2214. [func] tmark
PerfMon hook library can now parse its configuration
and the ARM has been updated with more detailed
information. Functionality is still limited.
(Gitlab #3278)
Kea 2.5.7 (development) released on March 27, 2024
2213. [build] razvan
The library version numbers have been bumped up for the Kea 2.5.7
development release.
(Gitlab #3304)
2212. [build] tomek
The jinja dependency, used in building documentation, was
updated.
(Gitlab #3079)
2211. [bug] razvan, tmark
Corrected an issue in kea-dhcp4 and kea-dhcp6 that
causes an infinite loop when database does not exist
at startup introduced by #2692.
(Gitlab #3300)
2210. [func] piotrek
Added libkea-dhcp++, libkea-cfgclient, libkea-d2srv,
libkea-dhcpsrv, libkea-util and libkea-util-io headers that were
missing after Kea install. Now all needed headers are installed.
(Gitlab #3267)
2209. [func] fdupont
Some hooks using multi-threading postpone their startup until
after the configuration has been completed. If the hook
subsequently failed the startup, the error would not have been
properly propagated. The fix ensures that the errors are
reported during the configuration stage.
(Gitlab #2692)
Kea 2.5.6 (development) released on February 28, 2024
2208. [build] razvan
The library version numbers have been bumped up for the Kea 2.5.6
development release.
(Gitlab #3261)
2207. [func] piotrek
Kea now supports DNR options as specified in RFC9463,
RFC9461, RFC9460. The option may be configured using
convenient notation, where Kea takes care of complex
option encoding to be inline with RFCs.
(Gitlab #3141)
2206. [func] andrei
DHCP servers now initialize the database schema automatically on
startup or on reconfiguration if there is at least one database
backend configured and if the configured database is empty.
(Gitlab #3025)
2205. [func] tmark
Perfmon hook library now dumps the packet event stack
of query packets to debug logging after they have been
processed.
(Gitlab #3231)
2204. [func] tmark
The skeleton of a new open source hook library,
libdhcp_perfmon.so, has been added. The library is
still in development and does not yet provide any functionality.
(Gitlab #3242)
Kea 2.5.5 (development) released on January 31, 2024
2203. [build] razvan
The library version numbers have been bumped up for the Kea 2.5.5
development release.
(Gitlab #3235)
2202. [func] razvan
The Configuration Backend now supports scalar parameters
contained by top level global maps: 'compatibility',
'control-socket', 'dhcp-ddns', 'expired-leases-processing',
'multi-threading', 'sanity-checks', 'server-id' and
'dhcp-queue-control'.
(Gitlab #1790)
2201. [func] andrei
To facilitate setting multiple option-data entries with same code
and space, but different data, the set of keys for the
option-data list was extended with the "data" leaf in YANG
modules.
(Gitlab #3198)
2200. [func] piotrek
Kea now supports new DHCPv4 option code 121, Classless Static
Route option defined in RFC 3442.
Option may be defined in binary format and also as a string
using convenient static route notation.
(Gitlab #3074)
2199. [func] marcin
Added support for hub-and-spoke high availability configuration.
(Gitlab #3106, #3178)
2198. [func] razvan
A new log message
DHCPSRV_CFGMGR_IP_RESERVATIONS_UNIQUE_DUPLICATES_DETECTED is
shown when multiple reservations are detected for the same IP
address.
(Gitlab #3108)
2197. [func] razvan
Added support for database connection retry on server startup.
The new 'retry-on-startup' parameter controls this behavior along
with the other existing parameters: 'on-fail',
'max-reconnect-tries' and 'reconnect-wait-time'.
(Gitlab #3019)
2196. [func] tmark
The ping-check hook library can now be used with kea-dhcp4
in either multi-threaded or single-threaded mode.
(Gitlab #3107)
2195. [func] tmark
Added a new hook point to kea-dhcp4, "lease4_server_decline".
DHCPv4 leases declined by ping-check hook library are now
propagated to HA peers.
(Gitlab #3110)
Kea 2.5.4 (development) released on November 29, 2023
2194. [build] razvan
The library version numbers have been bumped up for the Kea 2.5.4
development release.
(Gitlab #3173)
2193. [func] tmark, piotrek
The ping-check hook library is now functional. It provides
the ability of kea-dhcp4 to check the availability of an
address prior to offering it to a client using ICMP ECHO
REQUESTs.
(Gitlab #3084)
2192. [func] razvan
The packet logging is now more consistent between DHCPv4 and
DHCPv6. Also, extra details are now logged.
(Gitlab #3109)
2191. [doc] andrei
The new RADIUS hook library is now operational. Documentation has
been updated. A section about differences to the old RADIUS hook
library is included.
(Gitlab #2442)
Kea 2.5.3 (development) released on October 25, 2023
2190. [build] razvan
The library version numbers have been bumped up for the Kea 2.5.3
development release.
(Gitlab #3118)
2189. [doc] tomek
Security reporting process described in a Github-friendly format.
There is no new information, mostly pointers to already existing
documents.
(Gitlab #3080)
2188. [bug] razvan
Fixed a race condition in free lease queue allocator.
(Gitlab #3111)
2187. [func] tmark
To facilitate use in containers, the restriction from listening
on 0.0.0.0 or :: addresses has been removed from kea-dhcp-ddns.
The server will now issue a warning if configured to use either
address.
(Gitlab #3116)
2186. [bug] andrei
Fixed interface redetection which had stopped working since
Kea 2.3.6.
(Gitlab #3017)
2185. [func] razvan
Added extended log messages: DHCP4_DISCOVER, DHCP4_REQUEST,
DHCP6_PROCESS_IA_NA_SOLICIT, DHCP6_PROCESS_IA_PD_SOLICIT, which
include the hint address in the client request. The log message
tag DHCP4_LEASE_ADVERT has been renamed to DHCP4_LEASE_OFFER.
(Gitlab #2918)
2184. [bug] razvan
Fixed a bug in evaluated expression parser which was not properly
handling escaped null characters.
(Gitlab #3086)
2183. [bug] andrei
Fixed a bug where one of the commands that retrieve statistic
values sent to the kea-ctrl-agent would get an overflow error in
the response if the inquired statistic was intended to have a big
integer data type, and if the integer value would not be
representable on 64 bits. Affected statistics are "total-nas" and
"total-pds", and the bug only manifests if the inquired pool, or
the inquired subnet's aggregated pool space, is large enough.
Prior to this fix, commands would get a correct response over
unix socket.
(Gitlab #3068)
Kea 2.5.2 (development) released on September 27, 2023
2182. [build] razvan
The library version numbers have been bumped up for the Kea 2.5.2
development release.
(Gitlab #3085)
2181. [func] razvan
Added additional tokens which evaluate string expressions:
"lcase" which converts to lower case and "ucase" which
converts to upper case.
(Gitlab #3048)
2180. [build] andrei
Apart from enabling log4cplus's own logging, and adding more
sanity checks in DNS code, the --enable-debug configure flag
now also makes the compiler produce more abundant debugging
information that can be read by a debugger.
(Gitlab #1520)
2179. [doc] piotrek
Updated Developer's Guide with information about new hook
point "lease4_offer".
(Gitlab #3067)
2178. [doc] andrei
Clarified in the ARM that DHCPv6 clients with unstable DUIDs can
be handled using the flex-id library. The configuration examples
that can help with that are found in the flex-id documentation.
(Gitlab #181)
2177. [func] piotrek
Implemented new DHCPv4 hook point "lease4_offer".
The callout is executed after the server has received
the DHCPDISCOVER and the DHCPOFFER has been constructed
but not yet sent to the client.
(Gitlab #3038, #3063)
2176. [doc] piotrek, razvan
Updated ARM docs with new configuration key "output-options" and
alias "output_options". All config examples, where previous
"output_options" key appeared, were updated.
(Gitlab #2904, #3004)
Kea 2.5.1 (development) released on August 30, 2023
2175. [build] razvan
The library version numbers have been bumped up for the Kea 2.5.1
development release.
(Gitlab #3026)
2174. [func] fdupont
Added a new information message which displays the
client and the transaction identification information
for received queries between message unpacking and
first classification.
(Gitlab #2854)
2173. [bug] tmark
Fixed a sporadic failure of IOSignaltest.mixedSignals
unit test. Test no longer relies on signals arriving
in order they are sent as it cannot be guaranteed.
(Gitlab #2954)
2172. [func] fdupont
Completed and improved logs showing what client classes
are assigned to queries during processing.
(Gitlab #2908)
Kea 2.5.0 (development) released on July 26, 2023
2171. [build] andrei
The library version numbers have been bumped up for the Kea 2.5.0
development release.
(Gitlab #2990)
2170. [build] fdupont
Moved from C++ 11 to C++ 14 as the minimal C++ version
which must be supported by the C++ compiler tobuild Kea.
(Gitlab #2876)
2169. [bug] marcin
Applied a workaround in the connection to MySQL that prevents
potential crashes in libmysqlclient library when connection
to the database is lost and re-established.
(Gitlab #2792)
2168. [func] fdupont
Cross-reference tables to bind relay and remote
identifiers from extended info of DHCPv6 leases
were added to SQL backends. A new command
"extended-info6-upgrade" (re)builds these tables
making leases visible to Bulk Lease Queries.
(Gitlab #2869)
2167. [func] tmark
The kea-dhcp<4/6> parameter, ddns-use-conflict-resolution,
has been deprecated and replaced with
ddns-conflict-resolution-mode. The new parameter supports
four modes of behavior pertaining to DDNS update conflict
resolution: check-with-dhcid, no-check-with-dhcid,
check-exists-with-dhcid, and no-check-without-dhcid.
Thanks to Shawn Routhier from Infoblox for contributing
the patch to implement this feature.
(Gitlab #2276)
Kea 2.4.0 (stable) released on July 05, 2023
2166. [build] mgodzina
The library version numbers have been bumped up for the Kea 2.4.0
stable release.
(Gitlab #2939)
2165. [bug] marcin
DHCP options configured in the host database are now returned
with their encapsulated options to the clients.
(Gitlab #2826)
2164. [bug] razvan
Added checks to catch invalid prefix/prefix-len combinations in
commands that create or update pools, leases, and reservations.
(Gitlab #2725)
2163. [build] slawek
Dropped the Kea connector for Python 2.
(Gitlab #2467)
2162. [doc] marcin
Documented renaming operation-target values in host_cmds hook
library. The "primary" was renamed to "memory", and the
"alternate" was renamed to "database".
(Gitlab #2901)
2161. [doc] fdupont
Clarified how Kea treats situations where there are multiple
reservations for the same host.
(Gitlab #2745)
2160. [doc] tomek
Added clarification about RFC3046 (Relay agent option) support,
with some examples how to use its content.
(Gitlab #2887)
2159. [bug] razvan
Fixed a crash when splitting long options or sending user defined
options when multi-threading is enabled. Also fixed some cases
when options are not properly split if the serialized data
reaches the end of the 255 bytes long boundary.
(Gitlab #2942)
2158. [func] piotrek
A new command named "reservation-get-by-address" is now available
in the host_cmds hook library. It returns all host reservations
for given IP address either in all subnets or in a given subnet.
(Gitlab #2795)
2157. [func]* fdupont
Added a warning issued when the configuration contains subnets
without explicit subnet identifiers (without "id" entry). The
auto-generated subnet identifiers are now deprecated.
(Gitlab #2866)
2156. [func] razvan
Added an optional 'pool-id' parameter that can be used to enable
per-pool statistics. Supported by kea-dhcp4 and kea-dhcp6 for all
pool types.
(Gitlab #2898)
2155. [func] fdupont, tomek
Added the config-hash-get command which returns the
SHA-256 hash of the current configuration, helping
in detecting changes. Updated config-get, config-set
commands to also return SHA-256 hash.
(Gitlab #2707)
2154. [doc] darren
Corrected minor typo in table in section 8.2.10 of the ARM where
type was shown as ipv6-address and should have said ipv4-address.
(Gitlab #2913)
2153. [doc] darren
Changed wording of documentation of ip-reservations-unique
flag to clarify which host reservation backends support false.
(Gitlab #2900)
2152. [doc] razvan
Added documentation and unittests for counters by pool ID.
(Gitlab #145, #2883)
2151. [bug] marcin
Corrected a bug in the host manager that affected getting a host
by an IPv6 address or delegated prefix. This query returned only
partial host information. It lacked other IPv6 reservations and
some DHCP options.
(Gitlab #2931)
2150. [bug] marcin
Fixed a bug in encapsulating DHCP options fetched from the config
backend. The suboptions are now included in the top-level options
they belong to.
(Gitlab #2881)
2149. [doc] andrei
The vendor options documentation has been improved.
(Gitlab #2793)
2148. [build] tmark
The include file, cfg_globals.h, has been added to the
to dhcpsrv/Makefile.am such that it now gets installed.
Prior to this it was omitted from installation.
(GitLab #2608)
2147. [doc] andrei
There are now more cross-references in the ARM. Commands and hook
libraries link to their own section. Programs link to their
manual pages.
(Gitlab #2554)
2146. [func] piotrek
Making DHCP4_PACKET_DROP_* and DHCP6_PACKET_DROP_* debug prints
more verbose. The prints are including now hwaddr for DHCP4 and
duid for DHCP6.
(Gitlab #2865)
2145. [bug] piotrek
Fixed a bug in kea-admin script where lack of lease type argument
was not caught correctly and kea-lfc was called without -4 or -6
DHCP version.
(Gitlab #2855)
Kea 2.3.8 (development) released on May 31, 2023
2144. [build] razvan
The library version numbers have been bumped up for the Kea 2.3.8
development release.
(Gitlab #2885)
2143. [func] razvan
Added v4 statistic counters per pool:
subnet[id].pool[id].assigned-addresses
subnet[id].pool[id].cumulative-assigned-addresses
subnet[id].pool[id].declined-addresses
subnet[id].pool[id].reclaimed-declined-addresses
subnet[id].pool[id].reclaimed-leases
subnet[id].pool[id].total-addresses
Added v6 statistic counters per pool:
subnet[id].pool[id].assigned-nas
subnet[id].pd-pool[id].assigned-pds
subnet[id].pool[id].cumulative-assigned-nas
subnet[id].pd-pool[id].cumulative-assigned-pds
subnet[id].pool[id].declined-addresses
subnet[id].pool[id].reclaimed-declined-addresses
subnet[id].pool[id].reclaimed-leases
subnet[id].pd-pool[id].reclaimed-leases
subnet[id].pool[id].total-nas
subnet[id].pd-pool[id].total-pds
Counters are stored in the lease storage and after schema
upgrade all existing leases are considered to be part of pool
ID 0. On lease update, the counters will be updated accordingly
including pool IDs and statistics will converge to real values
over time.
(Gitlab #145)
2142. [func] piotrek
New command option was added to perfdhcp: --or.
It allows to insert extra option(s) to relayed DHCPv6 message
at given level of encapsulation. For now only the first level of
encapsulation is supported.
(Gitlab #2834)
2141. [bug] razvan
The High Availability hook library is sending the 'origin'
parameter set to 'ha-partner' when sending lease update
commands which enables the forensic log hook library to
distinguish between administrator commands and HA partner
commands.
(Gitlab #2629)
2140. [func] slawek
Implemented functions to delete the host reservations from the
JSON configuration. Updated the host manager to fully support
altering the primary source (JSON configuration). Its methods
accept a new argument ("operation target") to specify the data
source (JSON configuration and/or hosts database) to query or
alter. Fixed a function that retrieves IPv6 host reservations
from the configuration by address.
(Gitlab #2815)
2139. [bug] marcin
Fixed a bug in the delegated prefix permutations that caused
allocating prefixes in the same order by the random and FLQ
allocators.
(Gitlab #2860)
2138. [bug] marcin
Fixed a bug in the DHCPv4 server that sent DHCPNAK to a client
in the INIT-REBOOT state when the server had no matching subnet
configuration for that client.
(Gitlab #2858)
2137. [func] fdupont
A new command "extended-info4-upgrade" makes old leases
from SQL DHCPV4 lease database visible to Bulk Lease Queries.
(Gitlab #2757)
2136. [func] tmark
The default value, in kea-dhcp6, for preferred-lifetime is
now calculated as: 0.625 * valid-lifetime. This calculation
is also used in the event that the specified value for
preferred-lifetime is greater than valid-lifetime. Prior to
this, the default value was 3600 seconds, and there was no
check against sending values greater than valid-lifetime.
(Gitlab #2835)
2135. [build] tomek
The CodeQL pipeline has been enabled on github. Developer's guide
updated with details.
(Gitlab #2760)
2134. [func] andrei
Statistics total-nas and total-pds were increased from 64-bit
values to 128-bit values to accurately represent large pools.
(Gitlab #2658)
2133. [func] andrei
Added missing YANG nodes: allocator, ddns-ttl-percent,
exclude-first-last-24, ignore-dhcp-server-identifier,
offer-lifetime, pd-allocator, read-timeout, tcp-user-timeout,
write-timeout.
Removed obsolete YANG nodes: contact-points, keyspace.
(Gitlab #2832)
2132. [bug] marcin
Fixed a bug in the allocation engine that could cause an invalid
lease assignment in the shared networks using subnets with
different allocator types.
(Gitlab #2843)
2131. [bug] razvan
Added support for 255 bytes long client-id and 130 bytes long
duid (2 bytes for type and at most 128 bytes for value).
(Gitlab #2786)
2130. [func] piotrek
Added support of DHCP Options for the Discovery of
Network-designated Resolvers (DNR) as per draft-ietf-add-dnr.
Kea can now handle DHCPv4 Option code 162 and DHCPv6 Option
code 144.
(Gitlab #2536)
2129. [func] andrei
New statistics were added to keep track of leases that have their
CLTT increased in memory and their expiration time left unchanged
in persistent storage as part of the lease caching feature. The
statistics are: v4-lease-reuse, subnet[id].v4-lease-reuse,
v6-ia-na-lease-reuse, subnet[id].v6-ia-na-lease-reuse,
v6-ia-pd-lease-reuse, subnet[id].v6-ia-pd-lease-reuse.
(Gitlab #2797)
2128. [bug]* razvan
In addition to logging them, the server now sets the
CalloutHandle status to DROP to indicate an error occurred when
it catches unhandled exceptions thrown by a callout.
(Gitlab #2805)
Kea 2.3.7 (development) released on April 26, 2023
2127. [build] razvan
The library version numbers have been bumped up for the Kea 2.3.7
development release.
(Gitlab #2837)
2126. [func] andrei
A new command named reservation-update is now available in the
host_cmds hook library. It updates an existing reservation.
(Gitlab #549)
2125. [func] marcin
Allocators can now be configured in the configuration backend.
(Gitlab #2823)
2124. [perf] andrei
When not explicitly configured, multi-threading mode and the HTTP
dedicated listener are enabled by default for the
high-availability hook library ("enable-multi-threading" and
"http-dedicated-listener" set to true).
(Gitlab #2749)
2123. [bug] razvan
Fixed a bug which was truncating relay suboptions (circuit-id
code 1 and remote-id code 2) if the data ended in 0x0. The
option definitions have been updated from OPT_STRING_TYPE to
OPT_BINARY_TYPE.
(Gitlab #2794)
2122. [bug] marcin
Fixed a bug in the HA hook library whereby the HA service could
sometimes terminate even after the partner's clock has been
corrected. The last clock skew is now ignored when a
communication failure with the partner occurs.
(Gitlab #2754)
2121. [func] marcin
Implemented Free Lease Queue allocator. It can be used for
address assignment in DHCPv4 and prefix delegation in DHCPv6.
The allocator is suitable when the DHCP servers work with
nearly depleted pools, and the time to find an available
lease becomes long with other allocators. The new allocator,
however, slows down the server startup and reconfiguration.
It also uses more memory.
(Gitlab #2780, #2764)
Kea 2.3.6 (development) released on March 29, 2023
2120. [build] razvan
The library version numbers have been bumped up for the Kea 2.3.6
development release.
(Gitlab #2807)
2119. [func] tmark
Added a new parameter, ddns-ttl-percent, to kea-dhcp4
and kea-dhcp6, that may be used to calculate DNS TTL
as a simple percentage of the lease life time.
(Gitlab #225)
2118. [bug] razvan
Fixed a bug which was changing the multi-threading settings when
running config-test command and the settings were different from
the server's configuration. This also fixes the rollback on the
multi-threading settings if there is a configuration error
detected. Also hooks now set DROP flag on the
dhcp4_srv_configured and dhcp6_srv_configured callouts if the
configuration is invalid or an error occured. Proper shutdown
of the HTTP listener is performed now instead of generating a
server crash if the provided address is not valid.
(Gitlab #2799)
2117. [func] fdupont
Added a new ignore-dhcp-server-identifier DHCPv4 compatibility
flag which when set to true (default is false) makes any query
to be accepted even when the address in the DHCP Server
Identifier option belongs to another server (standard behavior
is to drop such queries).
(Gitlab #2785)
2116. [func] piotrek
Added support of Secure Zero Touch Provisioning options as per
RFC8572. Kea can now handle DHCPv4 Option code #143 and DHCPv6
Option code #136.
(Gitlab #939)
2115. [func] tmark
Added the parameter, offer-lifetime, to kea-dhcp4. When
greater than zero, the server temporarily allocates and
persists leases during DHCPOFFER processing.
(Gitlab #2719)
2114. [func] razvan
Added the -T command line parameter to kea-dhcp4 and kea-dhcp6
for testing configuration files, similar to -t, but with extra
checks like checking database connections, checking hook
libraries parameters, and others.
(Gitlab #1671)
2113. [bug] razvan
The reload functionality (by sending SIGHUP) of the kea-dhcp4
and kea-dhcp6 servers has been enhanced to rollback to
previously working configuration if the new configuration is
invalid. There are still cases that can leave the server in an
unrecoverable state, and such case is indicated by a FATAL
log message. The same logic applies to the "config-set" command
available to the server through the control channel.
(Gitlab #2722)
2112. [doc] fdupont
Added in the ARM security a section explaining how
to tune the OpenSSL configuration file for Kea service
accepting commands over HTTPS.
(Gitlab #2784)
2111. [bug] fdupont
Fixed a bug which advertised re-assigned released leases
with zero lifetimes.
(Gitlab #2766)
2110. [func] fdupont
A new boolean configuration flag called "never-send" has been
added to the option data scope. When enabled, the option is not
sent in a response to the client, even if the client explicitly
requests it.
(Gitlab #719)
2109. [bug] fdupont
Compatibility flags e.g. lenient-option-parsing were not
saved by config-get and similar commands.
(Gitlab #2790)
2108. [func] fdupont
Added a new exclude-first-last-24 DHCPv4 compatibility flag
which when set to true (default is false) skips addresses
in .0 and .255 in subnets with prefix length less than 24
in the allocation engine routine picking a free address.
(Gitlab #720)
2107. [func] fdupont
The Kea DHCPv4 server can now handle multiple vivco-suboptions
options with different enterprise IDs.
(Gitlab #467)
2106. [bug] tmark
Corrected code that allowed lease6-get-* commands to return
IA_NA leases with prefix length values of zero and logic in
kea-dhcp6 that was incorrectly generating duplicate iaaddr
options with lifetimes of zero for such leases in REPLYs to
RENEWs.
(Gitlab #2660)
2105. [bug] tmark
kea-dhcp6 now consistently uses valid and preferred lifetime
values provided via classes. Prior to this it was not
utilizing class-supplied lifetimes when renewing existing
leases or when reusing expired leases.
(Gitlab #2739)
Kea 2.3.5 (development) released on February 22, 2023
2104. [build] andrei
The library version numbers have been bumped up for the Kea 2.3.5
development release.
(Gitlab #2768)
2103. [perf] andrei
When not explicitly configured, multi-threading is now enabled by
default for the core Kea DHCP service ("enable-multi-threading"
set to true). For now, HA+MT is still disabled by default
("enable-multi-threading" and "http-dedicated-listener" both
still set to false in the high-availability library parameters).
(Gitlab #2402)
2102. [func]* tmark
The logger to which kea-dhcp4 now logs EVAL_RESULT log
messages issued during packet classification has been
changed from "options4" to "dhcp4". This corrects an
inconsistency between kea-dhcp6 and kea-dhcp4 behavior.
(Gitlab #2720)
2101. [build] andrei
Shell tests and python tests no longer run if gtest is disabled.
This provides the ability to run distcheck without tests.
(Gitlab #2742)
2100. [doc] Kevin P. Fleming
Fixed several JSON examples in the Kea ARM.
(Gitlab #2494)
2099. [func]* tmark
An address reserved in a global reservation must now lie
within the range of the subnet or shared-network selected
by Kea. If it does not, the server will attempt to allocate an
address dynamically. This change applies to both kea-dhcp4 and
kea-dhcp6. Previously, the servers would grant a lease for any
globally reserved address without regard for its feasibility
within the selected subnet. Thanks to Kyle Birkeland for
reporting the issue and contributing the patch.
(Gitlab #2631, #2632)
2098. [doc] razvan
Updated client classification examples in the ARM with a case
where both operands of the evaluated expression are computed at
runtime.
(Gitlab #2664)
2097. [func] tmark
kea-dhcp4 and kea-dhcp6 will now accept renew-timer values that
exceed rebind-timer values but will ignore them and issue a
warning. Previously, the servers treated those values as a fatal
configuration error.
(Gitlab #2677)
2096. [bug] tmark
Corrected a bug which allowed options to be added to themselves
as suboptions.
(Gitlab #2538)
2095. [bug] marcin, tmark
Added a compile-time check of whether the PostgreSQL version
supports the "tcp-user-timeout" parameter. This parameter
is available in PostgreSQL version 12 and later. It is now
ignored for earlier versions and a suitable warning message
is issued.
(Gitlab #2734)
2094. [bug] razvan
Fixed a bug which caused the Kea server to crash when
using the high-availability hooks library and running reconfigure
commands. Thanks to Caciano Machado for reporting this bug and
providing detailed steps on how to replicate it.
(Gitlab #2575)
2093. [func] fdupont
It is now possible to add an "empty" host reservation without any
attribute (e.g. no address, no hostname, no client classes,
etc.). This is useful for determining the KNOWN class.
(Gitlab #2723)
2092. [bug] fdupont
Added logic to kea-dhcp4 and kea-dhcp6 to catch and log
database connection errors that occur during lease
reclamation. Previously, such errors caused the
reclamation timer to not get rescheduled.
(Gitlab #2682)
2091. [bug] marcin
Fixed a bug that caused a response to a config-get command
to lack the configured read-timeout, write-timeout, and
tcp-user-timeout parameters.
(Gitlab #2741)
2090. [build] andrei
Fixed the --with-site-packages configure flag, which previously
had no effect.
(Gitlab #2669)
Kea 2.3.4 (development) released on January 25, 2023
2089. [build] razvan
The library version numbers have been bumped for the Kea 2.3.4
development release.
(Gitlab #2726)
2088. [func]* tomek
The libreload command is now deprecated. The code is still there,
but it will be removed in the future versions.
(Gitlab #2693)
2087. [func] razvan
The Kea DHCPv4 server can now handle multiple vendor options
with different enterprise IDs and multiple vivso-suboptions.
(Gitlab #1518)
2086. [bug] andrei
A spacing issue in a prepared statement that prevented Config
Backend from working with PostgreSQL 15 and above has been fixed.
(Gitlab #2724)
2085. [func] tmark
kea-dhcp-ddns uses new log messages to clearly distinguish
between timeouts and other IO errors when communicating with
DNS servers.
(Gitlab #2589)
2084. [func] razvan
When the client adds a prefix length in the hint, the server
will try to select a pool with the delegated prefix length
equal to the respective value. If no pool is found, the server
will try to select a pool with a lower delegated prefix length
(a larger address space) and if none is found, it will try to
select a pool with a higher delegated prefix length (a smaller
address space).
(Gitlab #1958)
2083. [func] marcin
New database connection parameters, "read-timeout" and
"write-timeout", control the timeouts in communication with the
MySQL database. The "tcp-user-timeout" controls the timeout in
communication with the PostgreSQL database. Setting these
timeouts can prevent occasional Kea hangs due to issues with
the database connectivity.
(Gitlab #2688)
2082. [bug] razvan
The prefix address provided in the prefix and prefix length pair
from the pool configuration is now checked to match the first
address in the pool.
(Gitlab #2612)
2081. [func] tmark
The default value for the kea-dhcp-ddns parameter,
dns-server-timeout, has been increased from 100 ms to
500 ms. This was done to improve the out-of-the-box
user experience.
(Gitlab #2590)
2080. [func] tmark
Bulk Lease Query results can now include delegated prefixes.
Memfile queries used by Bulk Lease Query (BLQ) were modified
to include delegated prefixes when appropriate. Prior to
this they were returning only address leases.
(Gitlab #2713)
2079. [func] marcin
The lease allocation strategy is now configurable. It is possible
to select between iterative and random lease selection for the
address assignment and prefix delegation, respectively, at the
global, shared network, and subnet levels.
(Gitlab #2348, #969)