Kea issueshttps://gitlab.isc.org/isc-projects/kea/-/issues2021-03-26T11:45:17Zhttps://gitlab.isc.org/isc-projects/kea/-/issues/1230design for Incremental lease retrieval2021-03-26T11:45:17ZTomek Mrugalskidesign for Incremental lease retrievalThere's a need in Stork to be able to retrieve incremental lease updates. The goal here is to be able to get the state of all leases once during Stork start-up and then somehow be able to retrieve only incremental updates.
There are sev...There's a need in Stork to be able to retrieve incremental lease updates. The goal here is to be able to get the state of all leases once during Stork start-up and then somehow be able to retrieve only incremental updates.
There are several ways how this could potentially be implemented:
1. we could use HA backup server functionality - Stork would configure itself as backup server and would receive updates as they appear. The benefit with this approach is less signalling when there's little traffic. Another benefit is that the update would become visible almost immediately. The downside is that if Stork becomes unavailable for some time (being restarted, system reboots etc), it would potentially miss some updates.
2. an alternative apprach is to implement lease-get-all-since or lease-get-recent, a new command that would retrieve only leases updated after certain timestamp. We already have the info in lease DB, we would have to implement a new query to retrieve it. This has the advantage of always getting all the leases. The downside is that we'd have to implement more (this should work for all backends). Also, this has a potential to be more distruptive for Kea (or more precisely the disruption would be more concentrated in discrete event rather than spread out as in the proposal 1).
Need to handle deleted leases as well.kea1.9.6Marcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/issues/1167Configuration Backend support for Class Definitions2021-07-26T16:54:49ZPeter DaviesConfiguration Backend support for Class DefinitionsCB support for saving Class Definitions is on the roadmap - this feature request has been created to help the customer trace the progress of this development se [RT](https://support.isc.org/Ticket/Display.html?id=16186)CB support for saving Class Definitions is on the roadmap - this feature request has been created to help the customer trace the progress of this development se [RT](https://support.isc.org/Ticket/Display.html?id=16186)kea1.9.10Marcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/issues/1126Lease pre-allocation design2023-03-27T14:06:19ZTomek MrugalskiLease pre-allocation designIt's been brought to our attention (see [support #15984](https://support.isc.org/Ticket/Display.html?id=15984)) that the well known deficiency of Kea running with pool utilization close to 100% has drastically degraded performance.
We h...It's been brought to our attention (see [support #15984](https://support.isc.org/Ticket/Display.html?id=15984)) that the well known deficiency of Kea running with pool utilization close to 100% has drastically degraded performance.
We have plenty of [performance improvement ideas](https://gitlab.isc.org/isc-projects/kea/-/wikis/performance1.7), but given the situation, we believe the pre-allocation concept will be the most useful to mitigate the poor performance at high pool utilization scenario.kea2.3.6Marcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/issues/1076config-backend-pull is not documented2020-01-27T13:45:42ZTomek Mrugalskiconfig-backend-pull is not documented#904 added `config-backend-pull` command, but it's not listed or documented in the API reference list.#904 added `config-backend-pull` command, but it's not listed or documented in the API reference list.kea1.7.4Tomek MrugalskiTomek Mrugalskihttps://gitlab.isc.org/isc-projects/kea/-/issues/1000Author (in the Kea ARM or as a Wiki piece or KB article), better guidance on ...2022-08-31T09:25:33ZCathy AlmondAuthor (in the Kea ARM or as a Wiki piece or KB article), better guidance on HA and HA + backup configurationsThis is follow-on from customer questions and requests for advice on setting up and managing resilient Kea HA environments.
See discussions and material in [Support ticket #15378](https://support.isc.org/Ticket/Display.html?id=15378) an...This is follow-on from customer questions and requests for advice on setting up and managing resilient Kea HA environments.
See discussions and material in [Support ticket #15378](https://support.isc.org/Ticket/Display.html?id=15378) and [Support ticket #15334](https://support.isc.org/Ticket/Display.html?id=15334).
Although the concepts of how to configure HA as load-balancing or primary/standby as well as 'and you can add a backup server too) are covered in the Kea Administrator Reference Manual, there's no overall discussion about different strategies for deploying resilient server configurations, how to test, monitor, what to consider, and what to actually do, in case of a failure scenario.
It would be excellent to have a document (or paper, or series of KB articles) that cover things like:
- Different resilient configurations
- Pros and Cons of each
- Implications for routers/relays
- Disaster scenarios and recovery from them - including what to do with relays, routers, server addressing, route advertisements (for wheeling in a replacement server at another location)
- How to promote a backup server to primary/sole server if the HA pair 'vanish'
- How to change HA server states manually (in a controlled manner, with guaranteed state change) for maintenance/upgrades
- How to test your HA environment
- Where/how anycast might fit in
- Where/how load-balancers fit in - and specific considerations for those
- Server environment replication - entire VMs
- Lease file replication
- Multiple Kea servers sharing the same leases back-end
- Multiple Kea servers sharing the same reservations back-end
- All the 'what if?'s
And so on...kea2.3.0Peter DaviesPeter Davieshttps://gitlab.isc.org/isc-projects/kea/-/issues/966Implement a generic hash utility2019-10-24T23:09:32ZFrancis DupontImplement a generic hash utilityFNV is an obvious candidate. The hash allocator will use it.FNV is an obvious candidate. The hash allocator will use it.kea1.7.1Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/917Add DIY use of CB schema is not recommended text (see 1.6.0 Release Notes sec...2019-09-26T15:00:28ZThomas MarkwalderAdd DIY use of CB schema is not recommended text (see 1.6.0 Release Notes sec 2) to ARMWe have another user/issue stemming from manual use of CB and subsequent "wrong" behavior. We need to add clear text in Section 5.2 "Kea Configuration Backend" similar to what is in 1.6.0 release notes
```
Management commands for the C...We have another user/issue stemming from manual use of CB and subsequent "wrong" behavior. We need to add clear text in Section 5.2 "Kea Configuration Backend" similar to what is in 1.6.0 release notes
```
Management commands for the Config Backend. The CB stores data in a MySQL schema that is public. It's possible to insert a configuration into the MySQL tables manually, or automatically using SQL scripts, but this requires a reasonably good knowledge of the schema. As an alternative, ISC has developed a new hooks library that provides management commands for config backends. It simplifies many typical operations, such as listing, adding, retrieving, and deleting of global parameters, shared networks, subnets, pools, options, and option definitions. For a complete list, see commands starting with "remote-" in Appendix A of the Kea Administrator Reference Manual. The cb_cmds hooks library is available to subscribers only. If you are not a subscriber and would like to subscribe, please contact info@isc.org and our sales team will assist you.
```
I suggest we had some additional language excerpted from Vicky's response on kea-users:
```
The schema for the configuration backend is documented in the code, here: https://gitlab.isc.org/isc-projects/kea/blob/master/src/share/database/scripts/mysql/dhcpdb_create.mysql We also have some related design documents in our public Gitlab - https://gitlab.isc.org/isc-projects/kea/wikis/designs/configuration-in-db-design.
So, a do-it-yourselfer can certainly populate the tables directly or develop their own system for modifying the tables. This is not recommended because, as Thomas pointed out, it is easy to screw things up directly modifying the database. But, the feature enabling the configuration backend is open source, and you are welcome to modify the open source however you like for your deployment.
We did just do a webinar on using the subscription CB-cmds hook library to manage the config backend. The recording is on the ISC channel at https://www.youtube.com/watch?v=gnVEO4ThE10. This is the way we recommend you manage the config backend.
```
Currently, Section 5.2 almost positions manual use of it as expected/normal.kea1.7.1Thomas MarkwalderThomas Markwalderhttps://gitlab.isc.org/isc-projects/kea/-/issues/867The dates on man pages are wrong2020-03-20T10:24:56ZRazvan BecheriuThe dates on man pages are wrongThe dates on man pages are wrong. They show Aug 19, rather than Aug 28 (which is the planned public release).
is should be possible to specify a release date (in the future) to generate man pages.The dates on man pages are wrong. They show Aug 19, rather than Aug 28 (which is the planned public release).
is should be possible to specify a release date (in the future) to generate man pages.kea1.7.6Wlodzimierz WencelWlodzimierz Wencelhttps://gitlab.isc.org/isc-projects/kea/-/issues/832Update contributor's guide to not point to jenkins2019-09-24T17:46:55ZTomek MrugalskiUpdate contributor's guide to not point to jenkinsWith premium/subscription content on jenkins, it's difficult to provide access to external users. Therefore we should not link to jenkins.
This ticket is about removing links to jenkins from our contributor's guide.With premium/subscription content on jenkins, it's difficult to provide access to external users. Therefore we should not link to jenkins.
This ticket is about removing links to jenkins from our contributor's guide.kea1.7.0Vicky Riskvicky@isc.orgVicky Riskvicky@isc.orghttps://gitlab.isc.org/isc-projects/kea/-/issues/814hammer: disable building debugsource rpm package2019-08-09T07:01:34ZMichal Nowikowskihammer: disable building debugsource rpm packageKea1.6-finalMichal NowikowskiMichal Nowikowskihttps://gitlab.isc.org/isc-projects/kea/-/issues/654perfdhcp does not print all the RTT stats on no received packets2019-08-16T10:15:18ZAndrei Pavelandrei@isc.orgperfdhcp does not print all the RTT stats on no received packetsWhen there are no received packets, an exception is thrown in `ExchangeStats::getAvgDelay()` which results in `min delay`, `avg delay` displayed like so:
```
min delay: inf ms
avg delay: Delay summary unavailable! No packets received.
``...When there are no received packets, an exception is thrown in `ExchangeStats::getAvgDelay()` which results in `min delay`, `avg delay` displayed like so:
```
min delay: inf ms
avg delay: Delay summary unavailable! No packets received.
```
`max delay`, `std deviation`, `collected packets` are missing.
Either display all or display none for easier automated parsing. I prefer displaying all. In that case, delays could get zero or inf values as they are impossible values. Or sure, display an error message.Kea1.6-finalWlodzimierz WencelWlodzimierz Wencelhttps://gitlab.isc.org/isc-projects/kea/-/issues/640Add AFL fuzzing support to Kea2020-01-15T11:01:16ZStephen MorrisAdd AFL fuzzing support to KeaSome early work was carried out to allow kea-dhcp6 to be fuzzed with American Fuzzy Lop using its persistent fuzzing mode.
This ticket has been created to complete the work and to extend it to kea-dhcp4.Some early work was carried out to allow kea-dhcp6 to be fuzzed with American Fuzzy Lop using its persistent fuzzing mode.
This ticket has been created to complete the work and to extend it to kea-dhcp4.kea1.7.4Stephen MorrisStephen Morrishttps://gitlab.isc.org/isc-projects/kea/-/issues/634compilation error after #584,!3382019-05-27T18:59:17ZWlodzimierz Wencelcompilation error after #584,!338https://jenkins.isc.org/job/kea-master-pairwise/158/execution/node/25/log/
```
make[4]: Leaving directory '/home/jenkins/workspace/kea-master-pairwise/src/bin/lfc'
Making all in keactrl
make[4]: Entering directory '/home/jenkins/workspa...https://jenkins.isc.org/job/kea-master-pairwise/158/execution/node/25/log/
```
make[4]: Leaving directory '/home/jenkins/workspace/kea-master-pairwise/src/bin/lfc'
Making all in keactrl
make[4]: Entering directory '/home/jenkins/workspace/kea-master-pairwise/src/bin/keactrl'
../../../tools/path_replacer.sh \
../../../src/bin/keactrl/kea-dhcp4.conf.pre kea-dhcp4.conf
../../../tools/path_replacer.sh \
../../../src/bin/keactrl/kea-dhcp6.conf.pre kea-dhcp6.conf
../../../tools/path_replacer.sh \
../../../src/bin/keactrl/kea-dhcp-ddns.conf.pre kea-dhcp-ddns.conf
../../../tools/path_replacer.sh \
../../../src/bin/keactrl/kea-ctrl-agent.conf.pre kea-ctrl-agent.conf
make[4]: *** No rule to make target 'kea-netconf.conf.pre', needed by 'kea-netconf.conf'. Stop.
make[4]: *** Waiting for unfinished jobs....
Replacing \@prefix\@ with /home/jenkins/workspace/kea-master-pairwise/kea-bin
```Kea1.6https://gitlab.isc.org/isc-projects/kea/-/issues/624Kea build with perfdhcp enabled fails2019-05-23T22:29:01ZGhost UserKea build with perfdhcp enabled fails---
name: Bug report
about: Kea build with perfdhcp enabled fails
---
If you believe your bug report is a security issue (e.g. a packet that can kill the server), DO NOT REPORT IT HERE. Please use https://www.isc.org/community/report-b...---
name: Bug report
about: Kea build with perfdhcp enabled fails
---
If you believe your bug report is a security issue (e.g. a packet that can kill the server), DO NOT REPORT IT HERE. Please use https://www.isc.org/community/report-bug/ instead or send mail to security-office(at)isc(dot)org.
**Describe the bug**
Kea build from source with perfdhcp enabled fails in `/kea/src/bin/perfdhcp/test_controll.cc:1016` with error:
```
make[5]: Entering directory '/kea/src/bin/perfdhcp'
CXX test_control.lo
test_control.cc: In member function 'void isc::perfdhcp::TestControl::runWrapped(bool) const':
test_control.cc:1016:24: error: missing sentinel in function call [-Werror=format=]
NULL);
```
**To Reproduce**
`Dockerfile`
```
FROM alpine
ENV LOG4CPLUS_VERSION=REL_2_0_2
ENV KEA_VERSION=600677b8111c1940f774c87d35b5c76efdbe1531
RUN apk add --no-cache --virtual .build-deps \
autoconf \
automake \
git \
libtool \
build-base \
boost-dev \
mysql-dev \
&& \
git clone --branch $LOG4CPLUS_VERSION --depth 1 --recursive https://github.com/log4cplus/log4cplus.git \
&& \
cd /log4cplus && \
./configure && \
make -j 4 && \
make install \
&& \
git clone https://gitlab.isc.org/isc-projects/kea.git /kea \
&& \
cd /kea && git checkout $KEA_VERSION && \
autoreconf --install && \
./configure --enable-static-link --with-mysql --enable-perfdhcp && \
make -j 4 && \
make install \
&& rm -rf /kea /log4cplus && \
apk del .build-deps
```
**Expected behavior**
Build should succeed
**Environment:**
- alpine image: caf27325b298
- Kea git commit: 600677b8111c1940f774c87d35b5c76efdbe1531
- gcc version: 8.3.0
**Describe the solution you'd like**
```diff
diff --git a/src/bin/perfdhcp/test_control.cc b/src/bin/perfdhcp/test_control.cc
index 9ae1e9dd45..edd65900cf 100644
--- a/src/bin/perfdhcp/test_control.cc
+++ b/src/bin/perfdhcp/test_control.cc
@@ -1013,7 +1013,7 @@ TestControl::runWrapped(bool do_stop /*= false */) const {
} else if (pid == 0) {
execlp(options_.getWrapped().c_str(),
do_stop ? "stop" : "start",
- NULL);
+ (void *)NULL);
}
}
}
```Kea1.6Tomek MrugalskiTomek Mrugalskihttps://gitlab.isc.org/isc-projects/kea/-/issues/601server-tag in kea configuration appears in two different places2019-07-22T10:52:29ZWlodzimierz Wencelserver-tag in kea configuration appears in two different placesWhile I was testing v6 config backend API I noticed that config returned by `config-get` command is returning value `server-tag` twice:
```
{
"arguments": {
"Dhcp6": {
"calculate-tee-times": true,
"control-socket": {
...While I was testing v6 config backend API I noticed that config returned by `config-get` command is returning value `server-tag` twice:
```
{
"arguments": {
"Dhcp6": {
"calculate-tee-times": true,
"control-socket": {
"socket-name": "/home/wlodek/installed/git/var/kea/control_socket",
"socket-type": "unix"
},
"decline-probation-period": 86400,
"dhcp-ddns": {
"enable-updates": false,
"generated-prefix": "myhost",
"hostname-char-replacement": "",
"hostname-char-set": "",
"max-queue-size": 1024,
"ncr-format": "JSON",
"ncr-protocol": "UDP",
"override-client-update": false,
"override-no-update": false,
"qualifying-suffix": "",
"replace-client-name": "never",
"sender-ip": "0.0.0.0",
"sender-port": 0,
"server-ip": "127.0.0.1",
"server-port": 53001
},
"dhcp-queue-control": {
"capacity": 500,
"enable-queue": false,
"queue-type": "kea-ring6"
},
"dhcp4o6-port": 0,
"expired-leases-processing": {
"flush-reclaimed-timer-wait-time": 25,
"hold-reclaimed-time": 3600,
"max-reclaim-leases": 100,
"max-reclaim-time": 250,
"reclaim-timer-wait-time": 10,
"unwarned-reclaim-cycles": 5
},
"hooks-libraries": [],
"host-reservation-identifiers": [
"hw-address",
"duid"
],
"interfaces-config": {
"interfaces": [
"enp0s9"
],
"re-detect": true
},
"lease-database": {
"type": "memfile"
},
"mac-sources": [
"any"
],
"option-data": [],
"option-def": [],
"preferred-lifetime": 3000,
"rebind-timer": 2000,
"relay-supplied-options": [
"65"
],
"renew-timer": 1000,
"reservation-mode": "all",
"sanity-checks": {
"lease-checks": "warn"
},
"server-id": {
"enterprise-id": 0,
"htype": 0,
"identifier": "",
"persist": true,
"time": 0,
"type": "LLT"
},
"server-tag": "", <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
"shared-networks": [
{
"calculate-tee-times": true,
"interface": "",
"name": "name-abc",
"option-data": [],
"preferred-lifetime": 3000,
"rapid-commit": false,
"rebind-timer": 2000,
"relay": {
"ip-addresses": []
},
"renew-timer": 1000,
"reservation-mode": "all",
"subnet6": [
{
"calculate-tee-times": true,
"id": 1,
"interface-id": "interface-abc",
"option-data": [],
"pd-pools": [],
"pools": [
{
"option-data": [],
"pool": "2001:db8:a::1/128"
}
],
"preferred-lifetime": 3000,
"rapid-commit": false,
"rebind-timer": 2000,
"relay": {
"ip-addresses": []
},
"renew-timer": 1000,
"reservation-mode": "all",
"reservations": [],
"subnet": "2001:db8:a::/64",
"t1-percent": 0.5,
"t2-percent": 0.8,
"valid-lifetime": 4000
}
],
"t1-percent": 0.5,
"t2-percent": 0.8,
"valid-lifetime": 4000
}
],
"subnet6": [],
"t1-percent": 0.5,
"t2-percent": 0.8,
"valid-lifetime": 4000
},
"Logging": {
"loggers": [
{
"debuglevel": 99,
"name": "kea-dhcp6",
"output_options": [
{
"flush": true,
"maxsize": 10240000,
"maxver": 1,
"output": "/home/wlodek/installed/git/var/kea/kea.log"
}
],
"severity": "DEBUG"
}
]
},
"server-tag": "" <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
},
"result": 0
}
```
one is in Dhcp6 map and one is in global map (the same issue is with v4)Kea1.6-beta2Wlodzimierz WencelWlodzimierz Wencelhttps://gitlab.isc.org/isc-projects/kea/-/issues/584Should not install YANG modules, kea-netconf.conf when --with-sysrepo is not ...2019-07-22T10:52:02ZTomek MrugalskiShould not install YANG modules, kea-netconf.conf when --with-sysrepo is not specified@ondrej reported some time ago that Kea always installs YANG modules and kea-netconf.conf, even when --with-sysrepo is not specified.@ondrej reported some time ago that Kea always installs YANG modules and kea-netconf.conf, even when --with-sysrepo is not specified.Kea1.6-beta2https://gitlab.isc.org/isc-projects/kea/-/issues/563Remove obsolete dependency in dbaccess_parser.cc2019-07-22T10:53:04ZFrancis DupontRemove obsolete dependency in dbaccess_parser.ccsrc/lib/database/dbaccess_parser.cc has an obsolete (i.e. still compiles when it is removed and no obvious use in the code) dependency on dhcpsrv/parsers/dhcp_parsers.h. I propose to remove it as the database library is built before the ...src/lib/database/dbaccess_parser.cc has an obsolete (i.e. still compiles when it is removed and no obvious use in the code) dependency on dhcpsrv/parsers/dhcp_parsers.h. I propose to remove it as the database library is built before the dhcpsrv one.
BTW a comment in db_log.h needs to be updated too according to a grep dhcpsrv in the directory.Kea1.6-beta2Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/546Parse Reconfig accept option and save client context in leases2019-03-27T21:16:52ZFrancis DupontParse Reconfig accept option and save client context in leasesFrom https://github.com/isc-projects/kea/pull/100From https://github.com/isc-projects/kea/pull/100Kea1.6Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/532Update https://kb.isc.org/docs/kea-performance-optimization with info from GL...2019-08-16T16:14:52ZCathy AlmondUpdate https://kb.isc.org/docs/kea-performance-optimization with info from GL #509#509 is another potential performance-improving option - we should include it in the performance considerations KB article [https://kb.isc.org/docs/kea-performance-optimization](https://kb.isc.org/docs/kea-performance-optimization)#509 is another potential performance-improving option - we should include it in the performance considerations KB article [https://kb.isc.org/docs/kea-performance-optimization](https://kb.isc.org/docs/kea-performance-optimization)Kea1.6-finalVicky Riskvicky@isc.orgVicky Riskvicky@isc.orghttps://gitlab.isc.org/isc-projects/kea/-/issues/462DHCPv6 support for cb_cmds hook2019-02-08T14:57:56ZFrancis DupontDHCPv6 support for cb_cmds hookKea1.6Francis DupontFrancis Dupont