Kea issueshttps://gitlab.isc.org/isc-projects/kea/-/issues2018-09-19T12:51:11Zhttps://gitlab.isc.org/isc-projects/kea/-/issues/116get rid of interface-id for DHCPv42018-09-19T12:51:11ZFrancis Dupontget rid of interface-id for DHCPv4Defined in the DHCPv4 syntax but only for subnets (not shared networks as in DHCPv6) and unused.Defined in the DHCPv4 syntax but only for subnets (not shared networks as in DHCPv6) and unused.Kea1.5-beta1https://gitlab.isc.org/isc-projects/kea/-/issues/8Kea should print out info about opened ctrl socket2022-10-27T12:44:25ZMarcin SiodelskiKea should print out info about opened ctrl socketKea should print out information about control socket __acceptor__ being opened.
This should be printed on info level.
For the original ticket see https://kea.isc.org/ticket/5598Kea should print out information about control socket __acceptor__ being opened.
This should be printed on info level.
For the original ticket see https://kea.isc.org/ticket/5598Kea1.5-beta1Marcin SiodelskiMarcin Siodelski2018-07-12https://gitlab.isc.org/isc-projects/kea/-/issues/9kea-admin, keactrl doesn't report Kea version2022-10-27T12:44:25ZTomek Mrugalskikea-admin, keactrl doesn't report Kea versionThose two tools don't report their version as other components do (neither -v or -V is working).
For original ticket, see https://kea.isc.org/ticket/5411Those two tools don't report their version as other components do (neither -v or -V is working).
For original ticket, see https://kea.isc.org/ticket/5411Kea1.5-beta1https://gitlab.isc.org/isc-projects/kea/-/issues/285Ring default capacity is far too high.2020-08-13T13:10:10ZFrancis DupontRing default capacity is far too high.Current value is 500 which is more than far too high. I propose to use 5 i.e. the same than the minimum value.
UPDATE: The code changes it to 64, not 5.Current value is 500 which is more than far too high. I propose to use 5 i.e. the same than the minimum value.
UPDATE: The code changes it to 64, not 5.kea1.8.0Tomek MrugalskiTomek Mrugalskihttps://gitlab.isc.org/isc-projects/kea/-/issues/11keactrl test verifying version output for various daemons fails on macOS2022-10-27T12:44:25ZMarcin Siodelskikeactrl test verifying version output for various daemons fails on macOSWhile running unit test on the latest master branch I got the following output:
```
START TEST version-command
Assertion failure: -e keactrl: 1.4.0-git
kea-dhcp4: 1.4.0-git
kea-dhcp6: 1.4.0-git
kea-dhcp-ddns: 1.4.0-git
kea-ctrl-agent: 1...While running unit test on the latest master branch I got the following output:
```
START TEST version-command
Assertion failure: -e keactrl: 1.4.0-git
kea-dhcp4: 1.4.0-git
kea-dhcp6: 1.4.0-git
kea-dhcp-ddns: 1.4.0-git
kea-ctrl-agent: 1.4.0-git != keactrl: 1.4.0-git
kea-dhcp4: 1.4.0-P1
kea-dhcp6: 1.4.0-P1
kea-dhcp-ddns: 1.4.0-P1
kea-ctrl-agent: 1.4.0-P1, for val1=-e keactrl: 1.4.0-git
kea-dhcp4: 1.4.0-git
kea-dhcp6: 1.4.0-git
kea-dhcp-ddns: 1.4.0-git
kea-ctrl-agent: 1.4.0-git, val2=keactrl: 1.4.0-git
kea-dhcp4: 1.4.0-P1
kea-dhcp6: 1.4.0-P1
kea-dhcp-ddns: 1.4.0-P1
kea-ctrl-agent: 1.4.0-P1
Expected keactrl version to report -e, but it reported keactrl:
Expected keactrl version to report 1.4.0-git, but it reported kea-dhcp4:
Expected keactrl version to report 1.4.0-git, but it reported kea-dhcp6:
Expected keactrl version to report 1.4.0-git, but it reported kea-dhcp-ddns:
Expected keactrl version to report 1.4.0-git, but it reported kea-ctrl-agent:
Expected keactrl version to report 1.4.0-git, but it reported keactrl:
Expected keactrl version to report 1.4.0-git, but it reported kea-dhcp4:
Expected keactrl version to report 1.4.0-P1, but it reported kea-dhcp6:
Expected keactrl version to report 1.4.0-P1, but it reported kea-dhcp-ddns:
Expected keactrl version to report 1.4.0-P1, but it reported kea-ctrl-agent:
Expected keactrl version to report 1.4.0-P1, but it reported
FAILED version-command
```
The test needs to be change to be portable with macOS. Also, other OSes, such as BSD must be tested.Kea1.5-beta1Marcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/issues/35local d2 (dhcp-ddns) client config2019-10-30T15:37:54ZGhost Userlocal d2 (dhcp-ddns) client configCurrently the d2 (dhcp-ddns) config is global. The idea allows to make it locally, e.g.., in subnet and client class scopes. Cf Migration #5224.Currently the d2 (dhcp-ddns) config is global. The idea allows to make it locally, e.g.., in subnet and client class scopes. Cf Migration #5224.kea1.7.1Thomas MarkwalderThomas Markwalderhttps://gitlab.isc.org/isc-projects/kea/-/issues/14Global Host Reservations Task 4: Host Commands should accept global subnet id2018-09-17T12:47:06ZThomas MarkwalderGlobal Host Reservations Task 4: Host Commands should accept global subnet idHost Cmds need to accept a subnet-id value of SUBNET_ID_GLOBAL for either v4 or v6 subnet-ids, to allow manipulation of global reservations.
Replaces http://kea.isc.org/ticket/5707Host Cmds need to accept a subnet-id value of SUBNET_ID_GLOBAL for either v4 or v6 subnet-ids, to allow manipulation of global reservations.
Replaces http://kea.isc.org/ticket/5707Kea1.5-beta1Thomas MarkwalderThomas Markwalderhttps://gitlab.isc.org/isc-projects/kea/-/issues/15Global Host Reservations Task 5: data migration scripts to convert existing s...2021-11-11T12:02:57ZThomas MarkwalderGlobal Host Reservations Task 5: data migration scripts to convert existing subnet-id values of 0The changes made in 5704 to support global HRs necessitate migrating existing data. Specifically for MySQL and PostgreSQL, any columns with values of 0 for subnet IDs in hosts and options tables, need to replace with NULL, and for Cassan...The changes made in 5704 to support global HRs necessitate migrating existing data. Specifically for MySQL and PostgreSQL, any columns with values of 0 for subnet IDs in hosts and options tables, need to replace with NULL, and for Cassandra, they should be replaced with GLOBAL_ID_UNUSED.
Data migration steps need to be added to the schema upgrade scripts for 1.5.0 to accommodate this.
Replaces http://kea.isc.org/ticket/5708Kea1.5-beta1Thomas MarkwalderThomas Markwalderhttps://gitlab.isc.org/isc-projects/kea/-/issues/42Congestion handling2018-11-08T14:15:12ZGhost UserCongestion handlingI propose two ways to control the receive queue to avoid big backlogs which can happen when servicing is too slow (and the fact clients retransmit of course does not help at all).
First is the POSIX `setsockopt(SO_RCVBUF)` which sets th...I propose two ways to control the receive queue to avoid big backlogs which can happen when servicing is too slow (and the fact clients retransmit of course does not help at all).
First is the POSIX `setsockopt(SO_RCVBUF)` which sets the maximum size in bytes of the socket receive queue. When the queue is full (i.e. an incoming packet is bigger than the maximum minus the current size) new packets are dropped instead added at the end of the queue.
This allows to avoid big backlog but as it drops new packets it is not the best/only solution.
Second idea is to use `ioctl(FIONREAD)` which returns the current size in bytes of the receive queue (very efficient system call BTW). I propose to use it in two ways:
- when it returns a large value (threshold to determine) packets should be simply popped and dropped.
- after servicing a packet it is more efficient to look at if there is another one than to come back to select (a real performance pig). Of course only a limited (another parameter to determine) number of packets should be serviced because the select loop includes other services.
About the last part of the second idea I refer to the AFTR code where I implemented this.
Note there is a big theoretical and practical background on the way to manage queue in high load / congestion situations, e.g RED (Random Early Detection). A good subject for a student...
The earlier issue that covered initial discussion and some experiments is #49. Adding the number for easier reference.Kea1.5-beta1Thomas MarkwalderThomas Markwalderhttps://gitlab.isc.org/isc-projects/kea/-/issues/78Extend HA hooks library to synchronize leases by chunks, i.e. multiple fetche...2018-11-05T19:25:30ZGhost UserExtend HA hooks library to synchronize leases by chunks, i.e. multiple fetches of leasesOne of the major use cases for the lease_cmds hooks library is to provide a way to synchronize leases between HA enabled servers. Currently the HA hooks library will fetch the entire lease database which requires the lease_cmds hooks lib...One of the major use cases for the lease_cmds hooks library is to provide a way to synchronize leases between HA enabled servers. Currently the HA hooks library will fetch the entire lease database which requires the lease_cmds hooks library to create a JSON structure of the whole lease database. This eats the CPU and memory. In case of large number of leases in the database it may freeze the server for a long period of time.
In order to mitigate this issue the lease_cmds hooks librart must support fetching limited number of leases, e.g. 1000, 2000 leases etc. The controlling client should be able to specify last fetched leases with the limit and the server should return leases with addresses beyond this last fetched address. That way, the entire lease database may be returned in chunks with client specifying the start of the next chunk.
This ticket is about extending the HA hooks library to utilize this mechanism implemented with #5651 in the lease_cmds.Kea1.5-beta1https://gitlab.isc.org/isc-projects/kea/-/issues/81RADIUS hook issue? Duplicated attributes in RADIUS requests after reloading ...2019-01-01T14:16:36ZGhost UserRADIUS hook issue? Duplicated attributes in RADIUS requests after reloading configItay Rozenburg reports to us:
> Greetings Support
>
> 1) I think I found a bug in the radius hook.
>
> When I reload the configuration via rest api,
> The radius requests looks weird,
> You can see Some of the attributes twice ...Itay Rozenburg reports to us:
> Greetings Support
>
> 1) I think I found a bug in the radius hook.
>
> When I reload the configuration via rest api,
> The radius requests looks weird,
> You can see Some of the attributes twice in each request.
> Access-Request (1), id: 0x54, Authenticator: ****
> User-Name Attribute (1), length: 20, Value: xxxyyy
> User-Password Attribute (2), length: 18, Value: ***
> User-Password Attribute (2), length: 18, Value: ***
> Calling-Station-Id Attribute (31), length: 19, Value: aa:bb:cc:dd:ee:ff
> NAS-Identifier Attribute (32), length: 5, Value: kea
> NAS-Identifier Attribute (32), length: 5, Value: kea
> Connect-Info Attribute (77), length: 41, Value: ***xxx***
> Connect-Info Attribute (77), length: 41, Value: ***xxx***
> NAS-Port Attribute (5), length: 6, Value: 1480
> NAS-IP-Address Attribute (4), length: 6, Value: 10.1.1.1
>
> If I reload the process everything looks fine.Kea1.5-finalFrancis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/30Implement control socket for DDNS2019-01-11T16:33:25ZGhost UserImplement control socket for DDNSAfter the design (#3540) is done, we should implement control socket in DDNS server.
D2, our DHCP-DDNS update daemon, does not support control channel. CA does support it and has a section for D2 communication, tries to open a socket et...After the design (#3540) is done, we should implement control socket in DDNS server.
D2, our DHCP-DDNS update daemon, does not support control channel. CA does support it and has a section for D2 communication, tries to open a socket etc, but fails ultimately, because D2 is not able to listen on that socket.
The absolute minimum required are the following commands:
version-get
build-report
shutdown
Since it is unclear whether we'll be able to squeeze this into 1.3, adding this with low priority.Kea1.6https://gitlab.isc.org/isc-projects/kea/-/issues/283perfdhcp: indicated requests rate is not kept during testing2019-01-18T16:02:09ZMichal Nowikowskiperfdhcp: indicated requests rate is not kept during testingDue to accumulating time slips in sending procedure the actual requests rate is lower than indicated.
It can be even ~20% lower for higher rates. Examples: 2700 instead of 3000.Due to accumulating time slips in sending procedure the actual requests rate is lower than indicated.
It can be even ~20% lower for higher rates. Examples: 2700 instead of 3000.Kea1.6Michal NowikowskiMichal Nowikowskihttps://gitlab.isc.org/isc-projects/kea/-/issues/82Improve Kea test capabilities2019-01-25T19:18:24ZGhost UserImprove Kea test capabilitiesKea accepts the "-p" switch to change the port on which it listens. However, there appears to be no way to alter the port to which it sends replies. Similarly perfdhcp accepts the "-L" switch to alter the local port (the port on which ...Kea accepts the "-p" switch to change the port on which it listens. However, there appears to be no way to alter the port to which it sends replies. Similarly perfdhcp accepts the "-L" switch to alter the local port (the port on which it listens for responses? - this is not clear), but there appears to be no way to alter the port to which it sends packets.
Although full testing on the privileged ports using multiple systems would still need to be carried out before release, it would simplify a lot of development testing if Kea and perfdhcp could (with suitable switch settings) communicate via unprivileged ports on the loopback interface.Kea1.6Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/87Kea memory leak (radius)2018-12-06T23:26:42ZGhost UserKea memory leak (radius)we have 2 kea servers (1.4.0 P1) that work with one mysql server as the lease database.
host-cache + flex_id + radius hooks loaded.
Only one server is active.
My Users are stable,
About 1330 users and + 50 new users each day.
If I ...we have 2 kea servers (1.4.0 P1) that work with one mysql server as the lease database.
host-cache + flex_id + radius hooks loaded.
Only one server is active.
My Users are stable,
About 1330 users and + 50 new users each day.
If I reload the kea-dhcp4 process the memory goes down to 0.4%.
the host-cache fills up pretty fast to 1330 records, most of my users has lease "renew-timer": 200.
From that point the memory consumption rises about 3% each hour
[root@kea1rvt log]# date
Thu Aug 9 14:09:56 IDT 2018
[root@kea1rvt log]# ps -auxw | grep kea-dhcp4
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 21929 6.1 5.1 380612 200848 pts/1 S 12:36 5:46 /usr/local/sbin/kea-dhcp4 -c /usr/local/etc/kea/kea-dhcp4.conf
[root@kea1rvt log]# date
Thu Aug 9 14:57:04 IDT 2018
[root@kea1rvt log]# ps -auxw | grep kea-dhcp4
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 21929 6.1 7.4 468052 288272 pts/1 S 12:36 8:40 /usr/local/sbin/kea-dhcp4 -c /usr/local/etc/kea/kea-dhcp4.conf
[root@kea1rvt log]# date
Thu Aug 9 15:09:16 IDT 2018
[root@kea1rvt log]# ps -auxw | grep kea-dhcp4
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 21929 6.1 8.1 494848 315096 pts/1 R 12:36 9:25 /usr/local/sbin/kea-dhcp4 -c /usr/local/etc/kea/kea-dhcp4.conf
itayKea1.5-beta2Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/94CB: Implement MySQLConfigBackendDHCPv62019-02-22T22:59:34ZMarcin SiodelskiCB: Implement MySQLConfigBackendDHCPv6The MySQLConfigBackendDHCPv6 class implements Config Backend for MySQL as described in https://gitlab.isc.org/isc-projects/kea/wikis/designs/configuration-in-db-designThe MySQLConfigBackendDHCPv6 class implements Config Backend for MySQL as described in https://gitlab.isc.org/isc-projects/kea/wikis/designs/configuration-in-db-designKea1.6Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/1684Captive portal option - RFC 89102022-01-14T09:41:59ZVicky Riskvicky@isc.orgCaptive portal option - RFC 8910**Problem**
Typically used when public wifi access is provided, a captive portal provides 'captures' the client html traffic and redirects it to a web page that provides information, advertising, a log-in or registration feature, or a cl...**Problem**
Typically used when public wifi access is provided, a captive portal provides 'captures' the client html traffic and redirects it to a web page that provides information, advertising, a log-in or registration feature, or a click-to-accept statement of responsibility. Earlier implementations of captive portals involved MITM-type interception of traffic. Current recommended practice is to explicitly provision the captive portal api address to the client via explicit network provisioning (DHCP).
New (2020) [IETF work](https://datatracker.ietf.org/doc/html/rfc8910) has updated the specifications for captive portal signaling, changing the DHCP code point recommended for specifying the URL of the captive portal.
- [x] option 114 for DHCPv4, option 103 for DHCPv6. Note that the DHCPv4 option is new, it used to be 160.
- [ ] Kea should send this option, if configured, whether it is requested or not.
This is a new RFC, and it is likely a lot of clients won't be requesting it immediately.
"Clients that support the Captive Portal DHCP option SHOULD include
the option in the Parameter Request List in DHCPREQUEST messages.
DHCP servers MAY send the Captive Portal option without any explicit
request."
- [ ] Kea should ensure that the option value is a valid URI.
It should not be an IP address (this should be mentioned in the documentation).
Should we enforce the shorter URI limit for DHCPv6 so the same URI will work for both?
"As the maximum length of the URI that can be carried in IPv4 DHCP is 255
bytes, URIs longer than this SHOULD NOT be provisioned by any of the
IPv6 options described in this document. In IPv6-only environments,
this restriction can be relaxed."
- [ ] Include in the documentation the instruction to specify if no captive portal is present with the URI below.
? Perhaps we should make this URI the default, if nothing is configured?
text from the rfc
"Networks with no captive portals may explicitly indicate this
condition by using this option with the IANA-assigned URI for this
purpose. Clients observing the URI value
"urn:ietf:params:capport:unrestricted" may forego time-consuming
forms of captive portal detection."
- [ ] There is a related issue wrt Bootp options for captive portal, because that code point has also changed.
I dk if we should make changes to bootp at this time, because being a legacy service, it is unlikely clients will be updated to understand the new code point. But we should consider it.kea2.1.2Tomek MrugalskiTomek Mrugalskihttps://gitlab.isc.org/isc-projects/kea/-/issues/95CB: Implement PgSQLConfigBackendDHCPv42022-02-21T14:58:09ZMarcin SiodelskiCB: Implement PgSQLConfigBackendDHCPv4The PgSQLConfigBackendDHCPv4 class implements Config Backend for MySQL as described in https://gitlab.isc.org/isc-projects/kea/wikis/designs/configuration-in-db-designThe PgSQLConfigBackendDHCPv4 class implements Config Backend for MySQL as described in https://gitlab.isc.org/isc-projects/kea/wikis/designs/configuration-in-db-designkea2.1.3Tomek MrugalskiTomek Mrugalskihttps://gitlab.isc.org/isc-projects/kea/-/issues/57Fixes as a result of profiling the HTTP code and control channel2018-11-15T12:24:25ZGhost UserFixes as a result of profiling the HTTP code and control channelThere are the following issues pertaining to JSONFeed and Http parsers which per my profiling tests seems to be first candidates for fixing:
* JSONFeed::postBuffer expensive because of making new allocations all the time
* JSONFeed::pop...There are the following issues pertaining to JSONFeed and Http parsers which per my profiling tests seems to be first candidates for fixing:
* JSONFeed::postBuffer expensive because of making new allocations all the time
* JSONFeed::popNextFromBuffer makes many buffer de-allocations
* JSONFeed::innerJSONHandler should not transition if the state remains the same
* HttpResponseParser body handler is inefficient as it reads characters one by one
* Connection::doTransaction should not reinitialize the parser all the time as it triggers expensive reinitialization of the state machineKea1.5-beta2https://gitlab.isc.org/isc-projects/kea/-/issues/104CB: Add periodic fetch of the incremental DHCPv6 configuration changes2019-04-11T12:37:42ZMarcin SiodelskiCB: Add periodic fetch of the incremental DHCPv6 configuration changesThe Config Backend design: https://gitlab.isc.org/isc-projects/kea/wikis/designs/configuration-in-db-design#kea-configuration-backend-design calls for implementing a periodic fetch of configuration changes in the database. If there are c...The Config Backend design: https://gitlab.isc.org/isc-projects/kea/wikis/designs/configuration-in-db-design#kea-configuration-backend-design calls for implementing a periodic fetch of configuration changes in the database. If there are changes detected these changes are applied to the CfgMgr. This ticket covers implementing such mechanism in the DHCPv6 server.Kea1.6Thomas MarkwalderThomas Markwalderhttps://gitlab.isc.org/isc-projects/kea/-/issues/10Need to improve API documentation2022-10-27T12:44:25ZTomek MrugalskiNeed to improve API documentationAs reported by @McNally in https://kea.isc.org/ticket/5422:
On ISC Support ticket #12056, one of our Kea customers
has requested:
..our developers commented to me that they found it difficult to find
the appropriate syntax for ...As reported by @McNally in https://kea.isc.org/ticket/5422:
On ISC Support ticket #12056, one of our Kea customers
has requested:
..our developers commented to me that they found it difficult to find
the appropriate syntax for various API calls.
There's more on the support ticket, but it sounds as though a
general API document would be helpful to them, at least containing
calling specifications and pointers towards whatever other documentation
currently exists.
They recognize that this is not a short-term deliverable but would
find improvement in this area helpful.Kea1.5-beta1https://gitlab.isc.org/isc-projects/kea/-/issues/186add kea-netconf daemon to keactrl2018-12-10T21:38:57ZWlodzimierz Wenceladd kea-netconf daemon to keactrlI don't really know if it's planned or not but kea-netconf should be usable from keactrl.I don't really know if it's planned or not but kea-netconf should be usable from keactrl.Kea1.5-finalFrancis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/85stat commands missing in `List of available hooks libraries` table2018-12-06T23:24:04ZGhost Userstat commands missing in `List of available hooks libraries` tableThere are 9 entries in the table but 10 hooks described in the `Available Hooks Libraries'` section: the missing hook is `stat_cmds`.There are 9 entries in the table but 10 hooks described in the `Available Hooks Libraries'` section: the missing hook is `stat_cmds`.Kea1.5-beta2https://gitlab.isc.org/isc-projects/kea/-/issues/24script to install yang models2018-09-12T17:29:06ZFrancis Dupontscript to install yang models```pkg-config libsysrepo --variable=SR_REPOSITORY_LOC``` returns the sysrepo repository directory so we can:
- use it in configure to set a autoconf variable to it
- update the script in tools to do the same thing
- provide a scrip...```pkg-config libsysrepo --variable=SR_REPOSITORY_LOC``` returns the sysrepo repository directory so we can:
- use it in configure to set a autoconf variable to it
- update the script in tools to do the same thing
- provide a script in the `models` directory to install it. As it should be run once it is enough.
- update the documentation (i.e. `netconf.xml`)
- port this to kea-yangKea1.5-beta1Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/25move daemon code out of dhcpsrv library2018-09-10T09:33:46ZFrancis Dupontmove daemon code out of dhcpsrv library`daemon.{h,cc}` defines a few common things: get version, pid file, config file, ...
It should clearly be moved from the dhcpsrv library to somewhere else. A few proposals:
- move it the process library (make sense but add a dependenc...`daemon.{h,cc}` defines a few common things: get version, pid file, config file, ...
It should clearly be moved from the dhcpsrv library to somewhere else. A few proposals:
- move it the process library (make sense but add a dependency to old server code)
- move it to config (or similar) library
- move it to its own library
IMHO the last option is the best one but some can have a concern with an increasing number of libraries.Kea1.5-beta1Tomek MrugalskiTomek Mrugalskihttps://gitlab.isc.org/isc-projects/kea/-/issues/49During traffic spikes that exceed Kea's throughput capacity, handle backlog m...2018-11-07T05:52:39ZGhost UserDuring traffic spikes that exceed Kea's throughput capacity, handle backlog more effectivelyThe current Kea implementation processes the inbound socket buffer as a simple queue - first in, first out. When the server is under pressure and not handling client packets as fast as they are arriving, a backlog will build up.
If t...The current Kea implementation processes the inbound socket buffer as a simple queue - first in, first out. When the server is under pressure and not handling client packets as fast as they are arriving, a backlog will build up.
If the situation continues for long enough, the client packets that the server is handling will have already timed-out on the client side, so it is pointless to spend time processing them and moreover wasting time on these old packets prevents the server from handling newer packets until they too have timed out. Effectively, it stops responding to active clients because it never gets through the backlog fast enough to reach the most recent inbounds.
Even though the initial spike in traffic may have subsided, the degraded performance can mean that clients change their behaviour, adding retries to the backlog and/or reverting back to initial discovery - thus increasing the backlog of packets to be processed and making recovery unlikely without restarting the server to clear things down.
We need to handle this situation better so that even when swamped, Kea servers are able to process a proportion of recently-received client packets, instead of none of them because it's 'stuck' with the oldest ones instead.
Suggestions being mooted so far suggest either an independent socket reading thread (or process) to manage the inbound traffic and to pull it off the sockets/interfaces on which the Kea server is listening. This will prevent the UDP buffers from overflowing as well as allowing the socket reader to apply better logic to:
- discarding the oldest client packets in favour of the most recently received
- managing the 'waiting' buffers appropriately to the throughput capacity of the server
Maximum per-server throughput will be highly dependent on both configuration and the choice of back-end (e.g database, or memfile, and if database, how and where etc..) - so it would be good to have the I/O handler be tunable too - not discarding too soon for a fast server and so on.
There's no clear operational mitigation strategy for this, other than ensuring sufficient headroom when provisioning so that there are no peaks in client traffic that can overwhelm the server(s) maximum capacity.
(Notably, increasing inbound UDP buffers is likely to make the situation worse rather than better.)Kea1.5-beta1https://gitlab.isc.org/isc-projects/kea/-/issues/53Problems with maria database, fields in store proc wrong2018-11-21T20:46:59ZGhost UserProblems with maria database, fields in store proc wrongI have just upgraded to Opensuse 15, and since there are problems with boost in previous versions, I upgraded to the 14 beta.
However, with a mysql database, trying to populate the lease4 & lease6 tables fail with...
2018-05-28 11:53:0...I have just upgraded to Opensuse 15, and since there are problems with boost in previous versions, I upgraded to the 14 beta.
However, with a mysql database, trying to populate the lease4 & lease6 tables fail with...
2018-05-28 11:53:09.332 ERROR [kea-dhcp6.alloc-engine/11431] ALLOC_ENGINE_V6_ALLOC_ERROR duid=[00:01:00:01:1e:da:f1:1b:b8:27:eb:8f:fe:67], tid=0x2cec69: error during attempt to allocate an IPv6 address: unable to bind parameters for <INSERT INTO lease6(address, duid, valid_lifetime, expire, subnet_id, pref_lifetime, lease_type, iaid, prefix_len, fqdn_fwd, fqdn_rev, hostname, hwaddr, hwtype, hwaddr_source, state) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)>, reason: (error code 0)
&
2018-05-28 11:54:01.657 ERROR [kea-dhcp4.alloc-engine/11424] ALLOC_ENGINE_V4_ALLOC_ERROR [hwtype=1 b8:27:eb:da:12:3b], cid=[ff:eb:da:12:3b:00:01:00:01:1e:da:f1:13:b8:27:eb:8f:47:6e], tid=0xde2380dc: error during attempt to allocate an IPv4 address: unable to bind parameters for <INSERT INTO lease4(address, hwaddr, client_id, valid_lifetime, expire, subnet_id, fqdn_fwd, fqdn_rev, hostname, state) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)>, reason: (error code 0)
There seemed to be a similar problem mentioned in the forums, but there does not seem to anything which matches this.
It was mentioned something to do with timers, but I have them now set to:
"reclaim-timer-wait-time": 100,
"flush-reclaimed-timer-wait-time": 250,
"hold-reclaimed-time": 36000,
"max-reclaim-leases": 1000,
"max-reclaim-time": 2500,
"unwarned-reclaim-cycles": 5
...
"valid-lifetime": 36000,
"renew-timer": 9000,
"rebind-timer": 18000,
What is strange though, when I take a tcpdump of the connection, I see a number of packets setting SOME of the bind fields, most seem to be set to the the IP address which kea attempts to assign.
It's as if all the bind fields are corrupted.Kea1.5-beta2Marcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/issues/55legldb_create.* legldb_drop.* scripts in premium repo2018-12-10T21:52:56ZGhost Userlegldb_create.* legldb_drop.* scripts in premium repothere are 6 new databases scripts in premium repo:
* legldb_create.mysql legldb_drop.mysql
* legldb_create.cql legldb_drop.cql
* legldb_create.psql legldb_drop.psql
1. is there a typo in names? shouldn't it be legal_db* ?
2. why do we ...there are 6 new databases scripts in premium repo:
* legldb_create.mysql legldb_drop.mysql
* legldb_create.cql legldb_drop.cql
* legldb_create.psql legldb_drop.psql
1. is there a typo in names? shouldn't it be legal_db* ?
2. why do we need 6 scripts to add/remove one table from db schema? couldn't it be integrated to main kea db schema?
3. those scripts are not being installed - that have to be fixed.Kea1.5-finalFrancis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/338Bump up library version numbers for Kea 1.5.0 final release2018-12-11T19:53:40ZMarcin SiodelskiBump up library version numbers for Kea 1.5.0 final releaseThis is our usual work prior to the release to bump up library version numbers, install new headers and bump up hooks framework version.This is our usual work prior to the release to bump up library version numbers, install new headers and bump up hooks framework version.Kea1.5-finalMarcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/issues/337lease_cmds incorrectly parses lease expiration time provided in the lease-add...2018-12-11T19:20:21ZMarcin Siodelskilease_cmds incorrectly parses lease expiration time provided in the lease-add commandleaseX-add commands allow for specifying a lease expiration time, which can be greater than 0xFFFFFFFF. However the code casts it to uint32_t value which causes an error claiming that the provided value is out of range.leaseX-add commands allow for specifying a lease expiration time, which can be greater than 0xFFFFFFFF. However the code casts it to uint32_t value which causes an error claiming that the provided value is out of range.Kea1.5-finalhttps://gitlab.isc.org/isc-projects/kea/-/issues/327Split transmission and reception control buffers2018-12-11T18:35:13ZFrancis DupontSplit transmission and reception control buffers!135 modifies the dhcp library code splitting the transmission and reception control buffers so it is possible to send and receive in parallel. This fix is correct because in the current code the control buffer is shared. Note these cont...!135 modifies the dhcp library code splitting the transmission and reception control buffers so it is possible to send and receive in parallel. This fix is correct because in the current code the control buffer is shared. Note these control buffers are in inet and inet6 packet filters. There is also an unused one in the interface manager.
This issue takes the dhcp library of !135 (after review, comment fix and unused removal).Kea1.5-finalFrancis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/73Investigate latest coverity scan for Kea2019-07-31T18:39:20ZGhost UserInvestigate latest coverity scan for KeaSee etherpad notes from April 5 meeting. There are 42 new issues reported.
The goal of this ticket is to assess the issues, group them and create separate tickets for each group.See etherpad notes from April 5 meeting. There are 42 new issues reported.
The goal of this ticket is to assess the issues, group them and create separate tickets for each group.Kea1.6-finalhttps://gitlab.isc.org/isc-projects/kea/-/issues/204checking version of yang models2018-12-11T17:08:44ZWlodzimierz Wencelchecking version of yang modelsDo we plan for a tool/extension that will check version of an installed yang models? Something similar to kea-admin checking db schema.Do we plan for a tool/extension that will check version of an installed yang models? Something similar to kea-admin checking db schema.Kea1.5-finalFrancis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/297Old text about multiple classes guards2018-12-11T11:12:59ZFrancis DupontOld text about multiple classes guardsFor instance from the guide:
If a subnet is associated with some classes, only the clients belonging to any of these classes can use this subnet. If there are no classes specified for a subnet, any client connected to a given shared net...For instance from the guide:
If a subnet is associated with some classes, only the clients belonging to any of these classes can use this subnet. If there are no classes specified for a subnet, any client connected to a given shared network can use this subnet.Kea1.5-finalFrancis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/198User's guide update: JSON section needs a refresh2018-12-11T17:45:23ZTomek MrugalskiUser's guide update: JSON section needs a refreshThe section 5.1.2: JSON syntax (https://oldkea.isc.org/docs/kea-guide.html#json-format) mentions putting all configuration in one file. This is no longer recommended way, as it causes issues with config-write. The text should be rephrase...The section 5.1.2: JSON syntax (https://oldkea.isc.org/docs/kea-guide.html#json-format) mentions putting all configuration in one file. This is no longer recommended way, as it causes issues with config-write. The text should be rephrased to say that entries other than Dhcp4, Dhcp6 may be present (ca, d2, netconf).Kea1.5-finalMarcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/issues/284need dhcp6 example for netconf2018-12-11T20:43:43ZTomek Mrugalskineed dhcp6 example for netconfThe examples in doc/examples/netconf need some cleanup:
- there should be simple-dhcp6.json that demonstrates how to use DHCPv6
- the simple.json should be removed (it is anything but simple: defines all servers, including those that ar...The examples in doc/examples/netconf need some cleanup:
- there should be simple-dhcp6.json that demonstrates how to use DHCPv6
- the simple.json should be removed (it is anything but simple: defines all servers, including those that are not supported - D2 and CA), also defines hooksKea1.5-finalTomek MrugalskiTomek Mrugalskihttps://gitlab.isc.org/isc-projects/kea/-/issues/288RFC8415 released update users guide accordingly2018-12-06T16:03:59ZWlodzimierz WencelRFC8415 released update users guide accordinglyUsers guide mention some of RFCs (e.g. 3315 3633) that are obsolete by new RFC 8415. We need this updated.Users guide mention some of RFCs (e.g. 3315 3633) that are obsolete by new RFC 8415. We need this updated.Kea1.5-finalMarcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/issues/173Kea guide documentation correction needed2018-12-10T16:08:52ZGhost UserKea guide documentation correction neededHere is my setup for DB in **kea-dhcp4.conf **
Case : I have kea server running with below DB config but when my DB crashes[Manually i stopped db for test]. Kea log shows DB connection error and it started retrying for 50 tries as i co...Here is my setup for DB in **kea-dhcp4.conf **
Case : I have kea server running with below DB config but when my DB crashes[Manually i stopped db for test]. Kea log shows DB connection error and it started retrying for 50 tries as i configured but when i DB crash recover [Manually i started db]. kea unable to connect with DB still showing below mentioned error messages and not assigning lease to client !
```
}]
}],
"lease-database": {
"type": "mysql",
"name": "kea",
"user": "root",
"password": "",
"host": "10.25.133.13",
"port": 3306,
"max-reconnect-tries" : 50,
"reconnect-wait-time": 2000,
"connect-timeout": 5000,
"request-timeout": 12000,
"tcp-keepalive": 1,
"tcp-nodelay": true
},
"hosts-database": {
"type": "mysql",
"name": "kea",
"user": "root",
"password": "",
"host": "10.25.133.13",
"port": 3306,
"max-reconnect-tries" : 50,
"reconnect-wait-time": 2000,
"connect-timeout": 5000,
"request-timeout": 12000,
"tcp-keepalive": 1,
"tcp-nodelay": true
},
```
**Once kea started with DB Log output : [1st start ]**
```
DHCPSRV_MYSQL_DB opening MySQL lease database: connect-timeout=5000 host=10.25.133.13 **max-reconnect-tries=50 name=kea port=3306 reconnect-wait-time=2000 request-timeout=12000 tcp-keepalive=1 tcp-nodelay=true type=mysql universe=4 user=root**
2018-10-16 23:26:47.385 INFO [kea-dhcp4.hosts/12919] DHCPSRV_MYSQL_HOST_DB opening MySQL hosts database: connect-timeout=5000 host=10.25.133.13 max-reconnect-tries=50 name=kea port=3306 reconnect-wait-time=2000 request-timeout=12000 tcp-keepalive=1 tcp-nodelay=true type=mysql universe=4 user=root
2018-10-16 23:26:47.398 INFO [kea-dhcp4.ha-hooks/12919] HA_LOCAL_DHCP_DISABLE local DHCP service is disabled while the is in the WAITING state
2018-10-16 23:26:47.398 INFO [kea-dhcp4.ha-hooks/12919] HA_SERVICE_STARTED started high availability service in load-balancing mode as primary server
2018-10-16 23:26:47.399 INFO [kea-dhcp4.dhcp4/12919] DHCP4_STARTED Kea DHCPv4 server version 1.4.0 started
```
**Once DB crashed log output : [DB stopped ] **
```
ERROR [kea-dhcp4.dhcpsrv/12919] DHCPSRV_MYSQL_FATAL_ERROR Unrecoverable MySQL error occurred: unable to execute for <SELECT address, hwaddr, client_id, valid_lifetime, expire, subnet_id, fqdn_fwd, fqdn_rev, hostname, state FROM lease4 WHERE state != ? AND expire < ? ORDER BY expire ASC LIMIT ?>, reason: MySQL server has gone away (error code: 2006).
2018-10-16 23:33:49.235 INFO [kea-dhcp4.dhcpsrv/12919] DHCPSRV_MYSQL_DB opening MySQL lease database: connect-timeout=5000 host=10.25.133.13** max-reconnect-tries=50 name=kea port=3306 reconnect-wait-time=2000 request-timeout=12000 tcp-keepalive=1 tcp-nodelay=true type=mysql universe=4 user=root**
2018-10-16 23:33:49.236 ERROR [kea-dhcp4.dhcp4/12919] DHCP4_DB_RECONNECT_ATTEMPT_FAILED database reconnect failed: Can't connect to MySQL server on '10.25.133.13' (111)
2018-10-16 23:33:49.236 INFO [kea-dhcp4.dhcp4/12919] DHCP4_DB_RECONNECT_ATTEMPT_SCHEDULE** scheduling attempt 2 of 50 in 2000 seconds**
2018-10-16 23:33:49.236 ERROR [kea-dhcp4.dhcpsrv/12919] DHCPSRV_TIMERMGR_CALLBACK_FAILED running handler for timer reclaim-expired-leases caused exception: fatal database errror or connectivity lost
2018-10-16 23:33:53.240 ERROR [kea-dhcp4.alloc-engine/12919] ALLOC_ENGINE_V4_RECLAIMED_LEASES_DELETE_FAILED deletion of expired-reclaimed leases failed: no current lease manager is available
```
**Once DB recovered log output : [DB up and running ]
Still kea not connecting with db **
```
2018-10-16 23:35:33.359 ERROR [kea-dhcp4.alloc-engine/12919] ALLOC_ENGINE_V4_RECLAIMED_LEASES_DELETE_FAILED deletion of expired-reclaimed leases failed: no current lease manager is available
2018-10-16 23:35:58.390 ERROR [kea-dhcp4.alloc-engine/12919] ALLOC_ENGINE_V4_RECLAIMED_LEASES_DELETE_FAILED deletion of expired-reclaimed leases failed: no current lease manager is available
2018-10-16 23:36:23.419 ERROR [kea-dhcp4.alloc-engine/12919] ALLOC_ENGINE_V4_RECLAIMED_LEASES_DELETE_FAILED deletion of expired-reclaimed leases failed: no current lease manager is available
2018-10-16 23:36:48.449 ERROR [kea-dhcp4.alloc-engine/12919] ALLOC_ENGINE_V4_RECLAIMED_LEASES_DELETE_FAILED deletion of expired-reclaimed leases failed: no current lease manager is available
2018-10-16 23:37:13.479 ERROR [kea-dhcp4.alloc-engine/12919] ALLOC_ENGINE_V4_RECLAIMED_LEASES_DELETE_FAILED deletion of expired-reclaimed leases failed: no current lease manager is available
2018-10-16 23:37:38.499 ERROR [kea-dhcp4.alloc-engine/12919] ALLOC_ENGINE_V4_RECLAIMED_LEASES_DELETE_FAILED deletion of expired-reclaimed leases failed: no current lease manager is available
2018-10-16 23:38:03.528 ERROR [kea-dhcp4.alloc-engine/12919] ALLOC_ENGINE_V4_RECLAIMED_LEASES_DELETE_FAILED deletion of expired-reclaimed leases failed: no current lease manager is available
2018-10-16 23:38:28.557 ERROR [kea-dhcp4.alloc-engine/12919] ALLOC_ENGINE_V4_RECLAIMED_LEASES_DELETE_FAILED deletion of expired-reclaimed leases failed: no current lease manager is available
```
I believe Kea should automatically connect with lease DB once DB came UP/running !
**Is something am missing on conf or bug ?**Kea1.5-finalhttps://gitlab.isc.org/isc-projects/kea/-/issues/86Case sensitivity discrepancy between Option4ClientFqdn and Option6ClientFqdn2018-12-04T16:21:49ZGhost UserCase sensitivity discrepancy between Option4ClientFqdn and Option6ClientFqdnThere is a discrepancy between on Option4ClientFqdn and Option6ClienFqdn when it comes to constructing them from strings. The latter uses a lib::dns::Name() constructor variant which accepts a boolean flag as to whether or not it should...There is a discrepancy between on Option4ClientFqdn and Option6ClienFqdn when it comes to constructing them from strings. The latter uses a lib::dns::Name() constructor variant which accepts a boolean flag as to whether or not it should
"downcase" the string, the former does not do this.
This means a the FQDN sent by a V4 client will have its case preserved while
one sent by a v6 client will not.
We need to determine what the proper behavior should be and proceed accordingly.Kea1.5-finalMarcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/issues/1920MySQL schema update for storing classes in the config backend2021-07-05T09:32:08ZMarcin SiodelskiMySQL schema update for storing classes in the config backendThe [design document](https://gitlab.isc.org/isc-projects/kea/-/wikis/designs/client-classes-in-cb) describes extensions to the existing config backend schema to store client classes. This issue covers the implementation of the schema ch...The [design document](https://gitlab.isc.org/isc-projects/kea/-/wikis/designs/client-classes-in-cb) describes extensions to the existing config backend schema to store client classes. This issue covers the implementation of the schema changes. It is a part of the larger work requested #1167.kea1.9.10Marcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/issues/89CB: Create MySQL schema and upgrade scripts2018-09-18T06:09:26ZMarcin SiodelskiCB: Create MySQL schema and upgrade scriptsThis ticket covers updating MySQL schema to facilitate Config Backend feature for 1.5.0 release:
https://gitlab.isc.org/isc-projects/kea/wikis/designs/configuration-in-db-design#mysql
I adds new tables, scripts and upgrade scripts to M...This ticket covers updating MySQL schema to facilitate Config Backend feature for 1.5.0 release:
https://gitlab.isc.org/isc-projects/kea/wikis/designs/configuration-in-db-design#mysql
I adds new tables, scripts and upgrade scripts to MySQL.Kea1.5-beta1Marcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/issues/36define "same subnet"2020-08-29T09:25:33ZGhost Userdefine "same subnet"Define what is "same subnet" i.e. what makes two similar subnets allowed or forbidden.
Obviously same subnet ID should be forbidden.
Same subnet text representation (i.e., `192.168.0.0/24`) is more arguable.
Note this is a design/discus...Define what is "same subnet" i.e. what makes two similar subnets allowed or forbidden.
Obviously same subnet ID should be forbidden.
Same subnet text representation (i.e., `192.168.0.0/24`) is more arguable.
Note this is a design/discussion ticket (no branch, no code, no doc).outstandingFrancis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/40check what happens on empty hostname options2019-01-17T14:36:47ZGhost Usercheck what happens on empty hostname optionsCf ISC DHCP 43786 ticket where a specific handling was added to handle empty host-name (code 12) DHCPv4 options sent by not compliant (but existing in the real world) clients. Verify Kea code and if there is not yet a unit test about it ...Cf ISC DHCP 43786 ticket where a specific handling was added to handle empty host-name (code 12) DHCPv4 options sent by not compliant (but existing in the real world) clients. Verify Kea code and if there is not yet a unit test about it create a new one.Kea1.6Thomas MarkwalderThomas Markwalderhttps://gitlab.isc.org/isc-projects/kea/-/issues/58KB article about required classes2018-11-07T00:06:51ZGhost UserKB article about required classesKea1.5-beta1Cathy AlmondCathy Almondhttps://gitlab.isc.org/isc-projects/kea/-/issues/65library for yang <-> json configuration element translators2018-11-05T09:44:05ZGhost Userlibrary for yang <-> json configuration element translatorsNew library with yang <-> json translators for representation of configuration elements.
A priori one fro `src/lib/dhcpsrv/parsers` parse class.New library with yang <-> json translators for representation of configuration elements.
A priori one fro `src/lib/dhcpsrv/parsers` parse class.Kea1.5-beta1Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/75RADIUS documentation needs an update2018-11-27T13:35:28ZGhost UserRADIUS documentation needs an updateI've spotted couple small issues in section 14.4.8:
- It still mentions --with-tier2
- STEP 2 the last sentence misses word "download": To and compile this version, please use the following steps:
- The last sentence in Step 3 says tha...I've spotted couple small issues in section 14.4.8:
- It still mentions --with-tier2
- STEP 2 the last sentence misses word "download": To and compile this version, please use the following steps:
- The last sentence in Step 3 says that boost has no explicit make install step. But it has b2 install, so that remark doesn't make much sense.
Also, need to provide links to the bug fixes Francis reported back to FreeRADIUS.Kea1.5-beta2Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/20update addr_utilities.h comments2018-09-19T08:27:45ZFrancis Dupontupdate addr_utilities.h commentsaddr_utilities.h (now in asiolink) has some negative comments which no longer stand, e.g.:
@todo It currently works for v6 only and will throw if v4 address is passed.
when v4 support was implemented a long time ago...addr_utilities.h (now in asiolink) has some negative comments which no longer stand, e.g.:
@todo It currently works for v6 only and will throw if v4 address is passed.
when v4 support was implemented a long time ago...Kea1.5-beta1https://gitlab.isc.org/isc-projects/kea/-/issues/45fromJSON does not handle Unicode escapes.2018-12-11T15:24:31ZGhost UserfromJSON does not handle Unicode escapes.The corresponding code is missing but can be copied from flex scanners.
Note Unicode escapes are used too to encode control characters so are not limited to real Unicode input.The corresponding code is missing but can be copied from flex scanners.
Note Unicode escapes are used too to encode control characters so are not limited to real Unicode input.Kea1.5-finalFrancis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/29cryptolink random generator2018-11-07T04:29:27ZFrancis Dupontcryptolink random generatorAdd in the cryptolink library support for random generation (cf trac 3474).Add in the cryptolink library support for random generation (cf trac 3474).Kea1.5-beta1https://gitlab.isc.org/isc-projects/kea/-/issues/28Config backend: implement basic class hierarchy2019-01-19T20:41:55ZMarcin SiodelskiConfig backend: implement basic class hierarchyThis ticket is created while the design is still in progress and is mostly meant to create a PoC for the class config backend class hierarchy. It will be later turned into the actual/final implementation when the design is ready and appr...This ticket is created while the design is still in progress and is mostly meant to create a PoC for the class config backend class hierarchy. It will be later turned into the actual/final implementation when the design is ready and approved.Kea1.5-beta1Marcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/issues/63kea-dhcp4 server needs to support configurable client hostname sanitization2018-09-06T12:34:16ZGhost Userkea-dhcp4 server needs to support configurable client hostname sanitizationThe Infoblox SOW requires the ability to sanitize client host name values, sent by DHCPv4 clients, prior to using them to form the FQDN for DNS updates. Specifically, there should be two configuration parameters:
1. A regular expressio...The Infoblox SOW requires the ability to sanitize client host name values, sent by DHCPv4 clients, prior to using them to form the FQDN for DNS updates. Specifically, there should be two configuration parameters:
1. A regular expression (e.g. [A-za-z0-9]-) which describes the allowed characters
2. A replacement for characters that are disallowed (e.g. _ by -)
Does not apply to v6, or to v4 FQDN option values, as per RFC they cannot contain non-compliant characters.Kea1.5-beta1Thomas MarkwalderThomas Markwalderhttps://gitlab.isc.org/isc-projects/kea/-/issues/64a new hook to manage client class 'class_cmds'2018-11-05T16:48:10ZGhost Usera new hook to manage client class 'class_cmds'For yang/netconf and config backend we need a way to manage client-classes so a 'class_cmds' which provides the usual function: adding, querying (aka get) and deleting client classes from the running configuration.
Open questions:
- wh...For yang/netconf and config backend we need a way to manage client-classes so a 'class_cmds' which provides the usual function: adding, querying (aka get) and deleting client classes from the running configuration.
Open questions:
- where to put it? a priori support package
- what to do with dependent expressions? If a class is just removed this can lead to a configuration which cannot be reloaded so a priori expressions of following classes should be checked against dangling references.
- do we need a change/update? as the class order is critical IMHO we should provide one.
Note that class-list should simply return the list of configured class names. Add should append the new class to the end.Kea1.5-beta1Marcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/issues/67Need a mechanism to output binary expressions as hexadecimal strings2019-09-02T07:12:00ZGhost UserNeed a mechanism to output binary expressions as hexadecimal stringsA prospective user attempted to use the following expression for a value of a Radius attribute:
{
"name": "Password"
"expr": "pkt4.mac"
}
The value produced by pkt4.mac, is a series of binary bytes, which cannot be
expressed in a...A prospective user attempted to use the following expression for a value of a Radius attribute:
{
"name": "Password"
"expr": "pkt4.mac"
}
The value produced by pkt4.mac, is a series of binary bytes, which cannot be
expressed in a Radius authorization file. The radius server actually errors out stating the values do not match. We need a way to convert an expression result to a string literal such as:
"0xXXXXX" or "xx:xx:xx"
We could do it as perhaps a function:
hexString(pkt4.mac)
This would be useful beyond this particular case involving Radius.
As an aside using the same expression for User Name or Connection Id work because we convert it to a string, under the covers.Kea1.5-beta1Stephen MorrisStephen Morrishttps://gitlab.isc.org/isc-projects/kea/-/issues/83Update HA design with the ability to hold state2018-08-27T17:14:26ZGhost UserUpdate HA design with the ability to hold stateWe're going to implement a hold in a waiting state capability in HA.
As a first step, we need to to update the [requirements](../wikis/HARequriements) and the [design](../wikis/HADesign). This ticket covers this update.We're going to implement a hold in a waiting state capability in HA.
As a first step, we need to to update the [requirements](../wikis/HARequriements) and the [design](../wikis/HADesign). This ticket covers this update.Kea1.5-beta1https://gitlab.isc.org/isc-projects/kea/-/issues/92Move common classes pertaining to databases from libkea-dhcpsrv to their own ...2018-12-06T23:10:33ZMarcin SiodelskiMove common classes pertaining to databases from libkea-dhcpsrv to their own librariesConfiguration Backend structure described here: https://gitlab.isc.org/isc-projects/kea/wikis/designs/configuration-in-db-design#configuration-backend-structure calls for moving some of the existing classes from libkea-dhcpsrv to new lib...Configuration Backend structure described here: https://gitlab.isc.org/isc-projects/kea/wikis/designs/configuration-in-db-design#configuration-backend-structure calls for moving some of the existing classes from libkea-dhcpsrv to new libraries. For example: DatabaseConnection, DbLogger should go to libkea-database. This ticket covers such refactoring.Kea1.5-beta1Thomas MarkwalderThomas Markwalderhttps://gitlab.isc.org/isc-projects/kea/-/issues/263Changes that came out during sanity checks of 1.5.0-beta and should be applie...2018-11-26T20:26:18ZWlodzimierz WencelChanges that came out during sanity checks of 1.5.0-beta and should be applied before 1.5.0Please add commands here about glitches you found during sanity checks so it wont be forgot during 1.5.0Please add commands here about glitches you found during sanity checks so it wont be forgot during 1.5.0Kea1.5-beta2Marcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/issues/27CqlHostDataSource::del4 () and del6() fail when given a non-existent host res...2018-11-28T09:21:55ZThomas MarkwalderCqlHostDataSource::del4 () and del6() fail when given a non-existent host reservationNeither function checks for the case of host not found, and causes the server to SIGABRT. They should both be modified to simply return true if the host does not exist. This is in keeping with our philosophy that attempting to delete an...Neither function checks for the case of host not found, and causes the server to SIGABRT. They should both be modified to simply return true if the host does not exist. This is in keeping with our philosophy that attempting to delete an object that does not exist equates to a successful delete.
There are apparently no unit tests for this scenario and there most certainly should be. We need to verify that MySQL and PostgreSQL behave properly and have unit tests for this.Kea1.5-beta2Marcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/issues/115config-get API call returns error with some Cassandra backend options [ISC-su...2019-05-16T12:24:30ZBrian Conryconfig-get API call returns error with some Cassandra backend options [ISC-support #13375]I was unable to find an existing gitlab issue for Trac ticket 5710, so this is created to be it.
--- original details
When Kea is configured with a Cassandra backend, an error is returned on a config-get API call. I believe it is doing...I was unable to find an existing gitlab issue for Trac ticket 5710, so this is created to be it.
--- original details
When Kea is configured with a Cassandra backend, an error is returned on a config-get API call. I believe it is doing some config validation which is unaware of some DB options. Using the following lease configuration:
```json
"lease-database": {
"type": "cql",
"keyspace": "kea",
"contact-points": "127.0.0.1",
"port": 9042,
"tcp-keepalive": 1,
"tcp-nodelay": true,
"connect-timeout": 5000,
"max-reconnect-tries": 5,
"reconnect-wait-time": 2000
},
```
Here is the curl output of config-get:
```sh
$ curl -X POST -H "Content-Type: application/json" -d '{ "command": "config-get", "service": [ "dhcp4" ] }' http://localhost:8080/
[ { "result": 1, "text": "Error during command processing: unknown DB access parameter: max-reconnect-tries=5" } ]
```
If I remove max-connect-retries, it gives the same error for reconnect-wait-time. Removing that results in the same error for tcp-keepalive, then tcp-nodelay.
Once the configuration has those options removed:
```json
"lease-database": {
"type": "cql",
"keyspace": "kea",
"contact-points": "127.0.0.1",
"port": 9042,
//"tcp-keepalive": 1,
//"tcp-nodelay": true,
"connect-timeout": 5000
//"max-reconnect-tries": 5,
//"reconnect-wait-time": 2000
},
```
The config-get call works:
```sh
$ curl -X POST -H "Content-Type: application/json" -d '{ "command": "config-get", "service": [ "dhcp4" ] }' http://localhost:8080/
[ { "arguments": { "Dhcp4": { "client-classes": [ { "boot-file-name": "/dev/null", "name": "voip", "next-server": "192.0.2.254", "option-data": [ ], "option-def": [ ], "server-hostname": "hal", ...
```Kea1.5-beta1https://gitlab.isc.org/isc-projects/kea/-/issues/118Need to get rid of FAQ section2018-11-07T10:31:05ZTomek MrugalskiNeed to get rid of FAQ sectionKea user's guide has a FAQ section that never really took off. It should be removed. If there are any useful bits and pieces, it should be moved to KB.Kea user's guide has a FAQ section that never really took off. It should be removed. If there are any useful bits and pieces, it should be moved to KB.Kea1.5-beta1https://gitlab.isc.org/isc-projects/kea/-/issues/26HttpClient add timeout to connect2018-11-07T10:17:11ZMarcin SiodelskiHttpClient add timeout to connectThe HttpClient class kicks in a timer for detecting transaction timeout after the connection has been already established. A recent testing reveals an issue that some firewall setups may cause long delays in asynchronous connects which w...The HttpClient class kicks in a timer for detecting transaction timeout after the connection has been already established. A recent testing reveals an issue that some firewall setups may cause long delays in asynchronous connects which will never be interrupted by timeout. As a result there is no log indicating that's the connection can't be established and subsequent connections won't be attempted. This issue has been found during HA and mostly affects this feature right now.Kea1.5-beta1Marcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/issues/59configure.ac log message "checking for premium hooks..." is confusing to users2018-11-27T12:30:17ZGhost Userconfigure.ac log message "checking for premium hooks..." is confusing to usersThe configure script emits text like the following:
checking for premium hook forensic_log availability...... found
checking for premium hook flex_id availability...... found
checking for premium hook host_cmds availability...... found
...The configure script emits text like the following:
checking for premium hook forensic_log availability...... found
checking for premium hook flex_id availability...... found
checking for premium hook host_cmds availability...... found
checking for premium hook subnet_cmds availability...... no
checking for premium hook radius availability...... no
checking for premium hook host_cache availability...... no
The word "premium" here is confusing, as the list being checked for includes all non-open source hooks (i.e. premium, subscriber...). People purchasing the Premium tar ball think things are missing.
We should either remove the message or the word "premium". We've had at least one user contact us, thinking there is an issue.Kea1.5-beta2Marcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/issues/127Distribute yang models2018-10-19T09:56:06ZFrancis DupontDistribute yang modelsKea1.5-beta1https://gitlab.isc.org/isc-projects/kea/-/issues/129global reservation mode is DHCPv4 only.2019-09-02T07:12:00ZFrancis Dupontglobal reservation mode is DHCPv4 only.Looks like something forgotten as there is a global entry in reservations.Looks like something forgotten as there is a global entry in reservations.Kea1.5-beta1https://gitlab.isc.org/isc-projects/kea/-/issues/130Provide sample ('complete') json configuration files with all the keys presen...2018-10-24T13:12:45ZCathy AlmondProvide sample ('complete') json configuration files with all the keys present, demonstrating their usageA Support customer asked (in ticket https://support.isc.org/Ticket/Display.html?id=13388):
```
I would like to have a complete json configuration file with all the "keys" present. Is this something you can help me with?
i have searched...A Support customer asked (in ticket https://support.isc.org/Ticket/Display.html?id=13388):
```
I would like to have a complete json configuration file with all the "keys" present. Is this something you can help me with?
i have searched but not found a complete configuration for kea 1.3 & 1.4
```
The engineering response was to craft a v4 configuration containing all keys or almost all keys. It comes with the following warning:
`Note that this configuration may not be valid, even though it is valid JSON, because usually we don't specify all keys. It is meant to be an example of what parameters can be specified at what level.`
This feature request is to formalise the need for such a document, and to extend it to cover other areas of Kea Configuration, starting with v6, and potentially extending to the control agent.
Meanwhile, here is what was generated for v4:
```
{
"Dhcp4": {
"next-server": "192.0.2.123",
"boot-file-name": "/dev/null",
"client-classes": [
{
"boot-file-name": "",
"name": "phones_server1",
"next-server": "0.0.0.0",
"option-data": [],
"option-def": [],
"server-hostname": "",
"test": "member('HA_server1')"
},
{
"boot-file-name": "",
"name": "phones_server2",
"next-server": "0.0.0.0",
"option-data": [],
"option-def": [],
"server-hostname": "",
"test": "member('HA_server2')"
},
{
"boot-file-name": "",
"name": "laptops_server1",
"next-server": "0.0.0.0",
"option-data": [],
"option-def": [],
"server-hostname": "",
"test": "member('HA_server1')"
},
{
"boot-file-name": "",
"name": "laptops_server2",
"next-server": "0.0.0.0",
"option-data": [],
"option-def": [],
"server-hostname": "",
"test": "member('HA_server2')"
}
],
"control-socket": {
"socket-name": "/tmp/kea-dhcp4-ctrl.sock",
"socket-type": "unix"
},
"decline-probation-period": 86400,
"dhcp-ddns": {
"always-include-fqdn": false,
"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
},
"dhcp4o6-port": 0,
"echo-client-id": true,
"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": [
{
"library": "/home/marcin/devel/kea-build/lib/hooks/libdhcp_lease_cmds.so",
"parameters": {}
},
{
"library": "/home/marcin/devel/kea-build/lib/hooks/libdhcp_ha.so",
"parameters": {
"high-availability": [
{
"heartbeat-delay": 10000,
"max-ack-delay": 5000,
"max-response-delay": 10000,
"max-unacked-clients": 0,
"mode": "load-balancing",
"peers": [
{
"auto-failover": true,
"name": "server1",
"role": "primary",
"url": "http://192.168.56.33:8080/"
},
{
"auto-failover": true,
"name": "server2",
"role": "secondary",
"url": "http://192.168.56.66:8080/"
}
],
"send-lease-updates": true,
"state-machine": {
"states": [
{
"pause": "always",
"state": "waiting"
},
{
"pause": "once",
"state": "partner-down"
}
]
},
"sync-leases": true,
"sync-timeout": 60000,
"this-server-name": "server1"
}
]
}
}
],
"host-reservation-identifiers": [
"hw-address",
"duid",
"circuit-id",
"client-id"
],
"interfaces-config": {
"dhcp-socket-type": "udp",
"interfaces": [
"enp0s8"
],
"re-detect": true
},
"lease-database": {
"lfc-interval": 3600,
"name": "/home/marcin/devel/kea-build/kea-dhcp4.csv",
"persist": true,
"type": "memfile"
},
"option-data": [
{
"always-send": false,
"code": 6,
"csv-format": true,
"data": "192.0.3.1, 192.0.3.2",
"name": "domain-name-servers",
"space": "dhcp4"
}
],
"option-def": [],
"rebind-timer": 40,
"renew-timer": 30,
"sanity-checks": {
"lease-checks": "warn"
},
"shared-networks": [
{
"match-client-id": true,
"name": "my-secret-network",
"option-data": [],
"relay": {
"ip-addresses": []
},
"reservation-mode": "all",
"require-client-classes": [ "Client_foo" ],
"subnet4": [
{
"4o6-interface": "",
"4o6-interface-id": "",
"4o6-subnet": "",
"boot-file-name": "",
"id": 1,
"match-client-id": true,
"next-server": "0.0.0.0",
"option-data": [
{
"always-send": false,
"code": 3,
"csv-format": true,
"data": "192.0.3.1",
"name": "routers",
"space": "dhcp4"
}
],
"pools": [
{
"client-class": "phones_server1",
"option-data": [],
"pool": "192.1.0.1/16"
},
{
"client-class": "laptops_server1",
"option-data": [],
"pool": "192.2.0.1/16"
},
{
"client-class": "phones_server2",
"option-data": [],
"pool": "192.3.0.1/16"
},
{
"client-class": "laptops_server2",
"option-data": [],
"pool": "192.4.0.1/16"
}
],
"rebind-timer": 40,
"relay": {
"ip-addresses": [
"192.168.56.1"
]
},
"renew-timer": 30,
"reservation-mode": "all",
"reservations": [],
"require-client-classes": [ "Client_foo" ],
"server-hostname": "",
"subnet": "192.0.0.0/8",
"valid-lifetime": 6000
}
]
}
],
"subnet4": [],
"valid-lifetime": 6000
},
"Logging": {
"loggers": [
{
"debuglevel": 99,
"name": "kea-dhcp4",
"output_options": [
{
"flush": true,
"maxsize": 10240000,
"maxver": 1,
"output": "stdout"
}
],
"severity": "INFO"
},
{
"debuglevel": 99,
"name": "kea-dhcp4.ha_hooks",
"output_options": [
{
"flush": true,
"maxsize": 10240000,
"maxver": 1,
"output": "stdout"
}
],
"severity": "INFO"
},
{
"debuglevel": 99,
"name": "kea-dhcp4.commands",
"output_options": [
{
"flush": true,
"maxsize": 10240000,
"maxver": 1,
"output": "stdout"
}
],
"severity": "INFO"
},
{
"debuglevel": 99,
"name": "kea-dhcp4.http",
"output_options": [
{
"flush": true,
"maxsize": 10240000,
"maxver": 1,
"output": "stdout"
}
],
"severity": "INFO"
}
]
}
}
```Kea1.5-beta2Marcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/issues/134Small bugs from the new Xcode 10.0 compiler2018-09-27T12:49:19ZFrancis DupontSmall bugs from the new Xcode 10.0 compilerI updated yesterday the macOS Xcode to 10.0 and it finds now a few new warnings and I am using --with--werror...I updated yesterday the macOS Xcode to 10.0 and it finds now a few new warnings and I am using --with--werror...Kea1.5-beta1Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/136Add global host reservation examples2018-11-27T21:38:10ZFrancis DupontAdd global host reservation examplesFor at least 1.5-beta: there is no kea4 or kea6 examples with global host reservations.For at least 1.5-beta: there is no kea4 or kea6 examples with global host reservations.Kea1.5-beta2Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/137Improve Kea compilation time2018-09-27T12:46:27ZTomek MrugalskiImprove Kea compilation timeWhile playing around with kea compilation times, I found couple things that can be done to improve compilation time. This ticket is about
Ideas considered:
* config.h is breaking down ccache speed-up. It includes git commit-id, which i...While playing around with kea compilation times, I found couple things that can be done to improve compilation time. This ticket is about
Ideas considered:
* config.h is breaking down ccache speed-up. It includes git commit-id, which is different with every build. That file is included everywhere, which causes ccache to have a very poor hit rate.
* we build by default with debug symbols. This slows down compilation by almost 3 minutes on my (@tomek) dev systemKea1.5-beta1https://gitlab.isc.org/isc-projects/kea/-/issues/141Update Sysrepo docs to 0.7.5, libyang 0.16-r12018-09-25T09:05:27ZTomek MrugalskiUpdate Sysrepo docs to 0.7.5, libyang 0.16-r1After the recent releases that include Francis' fixes, we can move back to release versions.
The docs need to update the following:
- use libyang 0.16-r1
- use Sysrepo 0.7.5After the recent releases that include Francis' fixes, we can move back to release versions.
The docs need to update the following:
- use libyang 0.16-r1
- use Sysrepo 0.7.5Kea1.5-beta1Tomek MrugalskiTomek Mrugalskihttps://gitlab.isc.org/isc-projects/kea/-/issues/144Remove obsolete dns benchmarks in src/lib/dns/benchmarks2019-02-04T13:10:46ZTomek MrugalskiRemove obsolete dns benchmarks in src/lib/dns/benchmarksTrivial thing to do.
```
git rm -r src/lib/dns/benchmarks
```
will do the trick. This dir is not referenced in configure.ac or Makefile.amTrivial thing to do.
```
git rm -r src/lib/dns/benchmarks
```
will do the trick. This dir is not referenced in configure.ac or Makefile.amKea1.6https://gitlab.isc.org/isc-projects/kea/-/issues/181reallocate IPv6-Addr with one Host and different DUIDs not working2023-09-19T15:24:09ZGeorg W.reallocate IPv6-Addr with one Host and different DUIDs not working---
name: Bug report
about: Reallocate IPv6-Address not working properly with PXE (or multiple OS)
---
I've tried to get some help using the kea-users mailing list months ago but I didn't get a solution to this problem. For now, I comp...---
name: Bug report
about: Reallocate IPv6-Address not working properly with PXE (or multiple OS)
---
I've tried to get some help using the kea-users mailing list months ago but I didn't get a solution to this problem. For now, I compiled myself a workaround into the code to get the IPv6 leases by hw-addr and not by duid. Details following:
***Description***
The Kea dhcp6 daemon doesn't reallocate (active) IPv6-leases for an OS after a successful PXE IPv6 address allocation.
***Configuration***
(configuration file is attached)
- lease-database: postgresql
- hosts-database: postgresql
- mac-sources: client-link-addr-option only
- host-reservation-identifiers: hw-address only
***To Reproduce***
Steps to reproduce the behavior:
1. Run Kea dhcpv6-daemon with: ```"mac-sources": ["client-link-addr-option"]``` and ```"host-reservation-identifiers": ["hw-address"]``` and an IPv6 host reservation with hw-address as the specific reservation-id-type
2. boot the PXE-System (or the first OS) first, everything works fine
3. boot another OS (e.g. Debian) with this host, daemon answers with "Sorry, no address could be allocated."
***Expected behavior***
In the configuration file exists a parameter called "host-reservation-identifiers". Kea uses only these specific identifier types to get host reservations from the host database. To get all active Leases of a hostsystem, Kea should use the same Method like in the reservation procedure.
If the host boots up the first time with PXE, kea gets a request, gets the host-reservation and allocate this IPv6 with its hw-address. Now the host boots up with its real OS (e.g. Debian) and kea should search for a lease like it was searching for a host-reservation.
In our case:
Kea gets the mac-address from the clients client-link-addr-option and so Kea should search for active leases by the mac-address, because of the host-reservation-identifiers option.
***Environment***
- Kea version: 1.4.0 (from gitlab)
- OS: debian stretch
- used database back-end: postgresql
- no hooks were used
Atachements
***kea-dhcp6.conf***
```
{
"Dhcp6": {
"interfaces-config": {
"interfaces": [ "eth0/2001:db8::8d:37:c0:f6" ]
},
"control-socket": {
"socket-type": "unix",
"socket-name": "/tmp/kea-dhcp6-ctrl.sock"
},
"lease-database": {
"type": "postgresql",
"name": "kea",
"user": "keauser",
"password": "xxxxxx",
"host": "localhost",
"port": 5432
},
"hosts-database": {
"readonly": true,
"type": "postgresql",
"name": "kea",
"user": "keauser",
"password": "xxxxxx",
"host": "localhost",
"port": 5432
},
"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
},
"renew-timer": 1800,
"rebind-timer": 2880,
"valid-lifetime": 3600,
"mac-sources": ["client-link-addr-option"],
"host-reservation-identifiers": [ "hw-address" ],
"subnet6": [
{
"subnet": "2001:db8:0:24::/64",
"id": 24,
"reservations": [
]
}
]
},
// Logging configuration starts here. Kea uses different loggers to log various
// activities. For details (e.g. names of loggers), see Chapter 18.
"Logging":
{
"loggers": [
{
"name": "kea-dhcp6",
"output_options": [
{
"output": "/var/log/kea/kea-dhcp6.log",
"maxsize": 26214400,
"maxver": 8
}
],
"severity": "DEBUG",
"debuglevel": 99
}
]
}
}
```
***hosts-table***
| host_id | dhcp_identifier | dhcp_identifier_type | ... |
| -------- | -------- | -------- | -------- |
| 01 | 0x00163e01c01f | 0 | ... |
| 02 | 0x... | ... | ... |
***ipv6_reservations***
| reservation_id | address | prefix_len | type | dhcp_iaid | host_id |
| -------- | -------- | -------- | -------- | -------- | -------- |
| 01 | 2001:db8:0:24::ff | 128 | 0 | (null) | 01 |
| 02 | ... | ... | ... | ... | ... |
***Remarks***
I can push my short workaround, if you want o have a look at.kea2.5.2Andrei Pavelandrei@isc.orgAndrei Pavelandrei@isc.orghttps://gitlab.isc.org/isc-projects/kea/-/issues/148lib process servers without arguments2018-10-19T22:25:15ZFrancis Dupontlib process servers without argumentsAll servers that use CPL architecture (D2, CA, netconf) are unable to print out usage information when run without any parameters. Instead, they print out cryptic error message as shown below:
```$ kea-ctrl-agent
2018-10-01 22:28:51.285...All servers that use CPL architecture (D2, CA, netconf) are unable to print out usage information when run without any parameters. Instead, they print out cryptic error message as shown below:
```$ kea-ctrl-agent
2018-10-01 22:28:51.285 FATAL [kea-ctrl-agent.dctl/23508] DCTL_PID_FILE_ERROR
Control-agent could not create a PID file: Daemon::makePIDFileName config file name is not set
Service failed: Launch failed: Daemon::makePIDFileName config file name is not set'''Kea1.5-beta1https://gitlab.isc.org/isc-projects/kea/-/issues/151Better error message in JSON parser on \'2020-10-22T11:31:22ZTomek MrugalskiBetter error message in JSON parser on \'Here's an example @sgoldlust used when working on documentation:
```
"resp-syntax": "{
\"result\": 0,
\"text\": \"Info about IPv4 shared network \'floor13\' returned\"
}"
```
Our parser reported error Bad Escape, whithout reall...Here's an example @sgoldlust used when working on documentation:
```
"resp-syntax": "{
\"result\": 0,
\"text\": \"Info about IPv4 shared network \'floor13\' returned\"
}"
```
Our parser reported error Bad Escape, whithout really saying what is wrong.
I've debugged the issue and the problem came up to be it doesn't allow escaping apostrophe.
This is overly strict and should be relaxed. If we somehow decide that it's not allowed (why?),
then at the very least we need to improve the error to show which character is not allowed to be
escaped.
After discussion with @fdupont it seems the only thing to do is to improve the error logs.kea1.9.1Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/153Netconf agent development2018-11-07T06:16:52ZFrancis DupontNetconf agent developmentHome for MRs about netconf.Home for MRs about netconf.Kea1.5-beta1Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/105CB: Create basic config_cmds hooks library including basic management of subn...2019-01-15T08:32:34ZMarcin SiodelskiCB: Create basic config_cmds hooks library including basic management of subnets in the databaseThe Configuration Management section of the Config Backend design:
https://gitlab.isc.org/isc-projects/kea/wikis/designs/configuration-in-db-design#configuration-management
proposes to update subnet_cmds hooks library to be able to man...The Configuration Management section of the Config Backend design:
https://gitlab.isc.org/isc-projects/kea/wikis/designs/configuration-in-db-design#configuration-management
proposes to update subnet_cmds hooks library to be able to manage subnets within the database. This ticket covers such update of the subnet_cmds hooks library.Kea1.6Marcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/issues/99CB: Add capability to merge DHCPv4 configuration from database and from a file2021-10-22T11:39:06ZMarcin SiodelskiCB: Add capability to merge DHCPv4 configuration from database and from a filePart of the Config Backend feature is to change the logic of the DHCPv4 server during startup or reconfiguration to first read the partial config from a file and then connect to the database and fetch the rest of the configuration. Both ...Part of the Config Backend feature is to change the logic of the DHCPv4 server during startup or reconfiguration to first read the partial config from a file and then connect to the database and fetch the rest of the configuration. Both configurations have to be merged into a single configuration. This ticket covers such a merge of the data fetched from the database into the CfgMgr. It doesn't cover the changes in the server logic to trigger such merge. This will be done in a separate issue.Kea1.6Marcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/issues/154Netconf reload behavior is not defined2018-10-10T10:24:31ZFrancis DupontNetconf reload behavior is not definedNot a real problem as it does not need to be define/design ASAP.
Creating a MR to disable reload on SIGHUP.Not a real problem as it does not need to be define/design ASAP.
Creating a MR to disable reload on SIGHUP.Kea1.5-beta1Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/156debian9 64 compilation error2021-08-31T21:20:50ZWlodzimierz Wenceldebian9 64 compilation error```
uname -a
Linux debian9-64-2 4.9.0-8-amd64 #1 SMP Debian 4.9.110-3+deb9u4 (2018-08-21) x86_64 GNU/Linux
autoreconf -if && ./configure --enable-shell --with-pgsql --with-mysql --prefix=/home/wlodek/installed/git/
```
result:
```
Packa...```
uname -a
Linux debian9-64-2 4.9.0-8-amd64 #1 SMP Debian 4.9.110-3+deb9u4 (2018-08-21) x86_64 GNU/Linux
autoreconf -if && ./configure --enable-shell --with-pgsql --with-mysql --prefix=/home/wlodek/installed/git/
```
result:
```
Package:
Name: kea
Version: 1.4.0-git
Extended version: 1.4.0-git (git 3fc0d776ff2262cae0013de1ce4c776c54c32eba)
OS Family: Linux
Hooks directory: /home/wlodek/installed/git/lib/hooks
Premium hooks: yes
Included Hooks: forensic_log flex_id host_cmds subnet_cmds radius host_cache
C++ Compiler:
CXX: g++
CXX_VERSION: g++ (Debian 6.3.0-18+deb9u1) 6.3.0 20170516
CXX_STANDARD: 201402
DEFS: -DHAVE_CONFIG_H
CPPFLAGS: -DOS_LINUX -DBOOST_ASIO_HEADER_ONLY
CXXFLAGS: -g -O2
LDFLAGS: -lpthread
KEA_CXXFLAGS: -Wall -Wextra -Wnon-virtual-dtor -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare -pthread -Wno-missing-field-initializers -fPIC
Python:
PYTHON: /usr/bin/python3
PYTHON_VERSION: 3.5
Boost:
BOOST_VERSION: 1.62
BOOST_INCLUDES:
BOOST_LIBS: -lboost_system
OpenSSL:
CRYPTO_VERSION: OpenSSL 1.1.0f 25 May 2017
CRYPTO_CFLAGS:
CRYPTO_INCLUDES:
CRYPTO_LDFLAGS:
CRYPTO_LIBS: -lcrypto
Botan: no
Log4cplus:
LOG4CPLUS_VERSION: 1.1.2
LOG4CPLUS_INCLUDES: -I/usr/include
LOG4CPLUS_LIBS: -L/usr/lib -L/usr/lib64 -llog4cplus
Flex/bison:
FLEX: flex
BISON: bison -y
MySQL:
MYSQL_VERSION: 10.1.26
MYSQL_CPPFLAGS: -I/usr/include/mysql
MYSQL_LIBS: -L/usr/lib/x86_64-linux-gnu -lmariadbclient -lpthread -lz -lm -ldl
PostgreSQL:
PGSQL_VERSION: PostgreSQL 9.6.10
PGSQL_CPPFLAGS: -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include/tcl8.6 -I/usr/include/postgresql -I/usr/include/postgresql/9.6/server
PGSQL_LIBS: -L/usr/lib/x86_64-linux-gnu -lpq
```
compilation error:
```
make[6]: Entering directory '/home/wlodek/kea/src/bin/agent'
CXXLD kea-ctrl-agent
../../../src/lib/process/.libs/libkea-process.so: undefined reference to `isc::db::DatabaseConnection::toElementDbAccessString(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
collect2: error: ld returned 1 exit status
Makefile:666: recipe for target 'kea-ctrl-agent' failed
make[6]: *** [kea-ctrl-agent] Error 1
```
It looks like this change:
```
diff --git a/src/bin/agent/Makefile.am b/src/bin/agent/Makefile.am
index 31a2798d8..75059f357 100644
--- a/src/bin/agent/Makefile.am
+++ b/src/bin/agent/Makefile.am
@@ -83,6 +83,7 @@ kea_ctrl_agent_LDADD += $(top_builddir)/src/lib/log/libkea-log.la
kea_ctrl_agent_LDADD += $(top_builddir)/src/lib/util/threads/libkea-threads.la
kea_ctrl_agent_LDADD += $(top_builddir)/src/lib/util/libkea-util.la
kea_ctrl_agent_LDADD += $(top_builddir)/src/lib/exceptions/libkea-exceptions.la
+kea_ctrl_agent_LDADD += $(top_builddir)/src/lib/database/libkea-database.la
kea_ctrl_agent_LDADD += $(LOG4CPLUS_LIBS) $(CRYPTO_LIBS) $(BOOST_LIBS)
kea_ctrl_agent_LDFLAGS = $(AM_LDFLAGS) $(CRYPTO_LDFLAGS)
```
fix issueKea1.5-beta1https://gitlab.isc.org/isc-projects/kea/-/issues/158reservation is allowed for out-of-subnet address and/or non-existent subnet-id2020-05-27T08:08:16ZCathy Almondreservation is allowed for out-of-subnet address and/or non-existent subnet-idReported by a Support customer:
https://support.isc.org/Ticket/Display.html?id=13626
---
name: Bug report
about: Kea 1.4.0 P1
---
kea-dhcp4 API accepts the creation of reservations for non-existent subnet-IDs and/or for out-of-subnet ...Reported by a Support customer:
https://support.isc.org/Ticket/Display.html?id=13626
---
name: Bug report
about: Kea 1.4.0 P1
---
kea-dhcp4 API accepts the creation of reservations for non-existent subnet-IDs and/or for out-of-subnet ip addresses, tested with mysql backend for hosts.
To reproduce:
1) create a new subnet 192.0.0.0/24, with subnet id 999
REQUEST:
{
"arguments": {
"subnet4": [
{
"id": 999,
"match-client-id": true,
"option-data": [
{
"always-send": false,
"code": 3,
"csv-format": false,
"data": "c0000001",
"name": "routers",
"space": "dhcp4"
}
],
"pools": [
{
"pool": "192.0.0.2-192.0.0.254"
}
],
"rebind-timer": 2970,
"relay": {
"ip-addresses": [
"192.0.0.1"
]
},
"renew-timer": 1800,
"reservation-mode": "all",
"subnet": "192.0.0.0/24",
"valid-lifetime": 3600
}
]
},
"command": "subnet4-add",
"service": [
"dhcp4"
]
}
RESPONSE:
[ { "arguments": { "subnets": [ { "id": 999, "subnet": "192.0.0.0/24" } ] }, "result": 0, "text": "IPv4 subnet added" } ]
2) create a reservation for out-of-subnet address using 1.2.3.4 as IP and 999 as subnet-id
REQUEST:
{
"arguments": {
"reservation": {
"hw-address": "ca:fe:ca:fe:ca:fe",
"ip-address": "1.2.3.4",
"subnet-id": 999
}
},
"command": "reservation-add",
"service": [
"dhcp4"
]
}
RESPONSE:
[ { "result": 0, "text": "Host added." } ]
3) create a reservation for a non-existent subnet-id using 192.0.0.10 as IP and 123 as subnet-id
REQUEST:
{
"arguments": {
"reservation": {
"hw-address": "fa:ce:fa:ce:fa:ce",
"ip-address": "192.0.0.10",
"subnet-id": 123
}
},
"command": "reservation-add",
"service": [
"dhcp4"
]
}
RESPONSE:
[ { "result": 0, "text": "Host added." } ]
4) verify the presence of both reservations in the "hosts" tableKea1.5-beta2Marcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/issues/161move hooks subdirectory under Kea own directory2019-02-21T03:46:49ZAdam Osuchowskimove hooks subdirectory under Kea own directoryPlease consider moving Kea hooks directory on Linux installations from /usr/lib/hooks to /usr/lib/kea/hooks or /usr/libexec/kea/hooks. The directory /usr/lib/hooks is not connected to Kea in any sense and putting Kea files into it make m...Please consider moving Kea hooks directory on Linux installations from /usr/lib/hooks to /usr/lib/kea/hooks or /usr/libexec/kea/hooks. The directory /usr/lib/hooks is not connected to Kea in any sense and putting Kea files into it make mess. According to FHS (Filesystem Hierarchy Standard) referenced in LSB (Linux Standard Base, ISO 23360), software should put its extra files like binaries and libraries under these directories.Kea1.6Wlodzimierz WencelWlodzimierz Wencelhttps://gitlab.isc.org/isc-projects/kea/-/issues/177serialize netconf tests2018-11-26T16:55:46ZFrancis Dupontserialize netconf testsNetconf has both unit tests and shell tests which interfere badly when run in parallel.
The obvious round about is to not call make check with a -j parameter including make distcheck.
IMHO the problem belongs in Sysrepo which was not d...Netconf has both unit tests and shell tests which interfere badly when run in parallel.
The obvious round about is to not call make check with a -j parameter including make distcheck.
IMHO the problem belongs in Sysrepo which was not designed to support parallel activities on same objects.
If nobody (Stephen?) proposes something simpler I'll put the shell script into a separated directory.
Note I leave the classification of this to QA, i.e. is the constraint to not run make distcheck in parallel is a problem.Kea1.5-beta2https://gitlab.isc.org/isc-projects/kea/-/issues/164empty test in src/bin/dhcp6/tests/dhcp6_process_tests.sh2020-12-14T09:11:51ZWlodzimierz Wencelempty test in src/bin/dhcp6/tests/dhcp6_process_tests.shwhile running unit tests dhcp6_process_tests.sh is executing empty test:
```
START TEST dhcpv6.version
PASSED dhcpv6.version
```
line 487 in dhcp6_process_tests.sh (dhcp6_process_tests.sh.in) is declaring test: version_test "dhcpv6.versi...while running unit tests dhcp6_process_tests.sh is executing empty test:
```
START TEST dhcpv6.version
PASSED dhcpv6.version
```
line 487 in dhcp6_process_tests.sh (dhcp6_process_tests.sh.in) is declaring test: version_test "dhcpv6.version" but there is no function that can be executed.kea1.9.3Andrei Pavelandrei@isc.orgAndrei Pavelandrei@isc.orghttps://gitlab.isc.org/isc-projects/kea/-/issues/165Kea does not compile on NetBSD 8.02019-02-07T22:06:19ZFrancis DupontKea does not compile on NetBSD 8.0Trying to compile kea master branch on a fresh NetBSD 8.0 VM:
- fd_share.cc fails on CMSG_DATA (more after)
I'll add other problems/fixes here.Trying to compile kea master branch on a fresh NetBSD 8.0 VM:
- fd_share.cc fails on CMSG_DATA (more after)
I'll add other problems/fixes here.Kea1.6Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/208move Logging from global objects to global params2019-11-18T18:35:10ZFrancis Dupontmove Logging from global objects to global paramsFor instance for DHCPv4 this means to replace:
```
{
"Dhcp4": ...,
"Logging": ...,
}
```
by
```
{
"Dhcp4":
{
...,
"Logging": ...
}
}
```
There are a few open questions:
- when to announce this change: IMHO be...For instance for DHCPv4 this means to replace:
```
{
"Dhcp4": ...,
"Logging": ...,
}
```
by
```
{
"Dhcp4":
{
...,
"Logging": ...
}
}
```
There are a few open questions:
- when to announce this change: IMHO before 1.5 release
- when to allow both positions: IMHO same than the previous point
- when to remove compatibility with current position: IMHO at a future release, e.g. 1.7 or 1.8Kea1.6-beta2Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/150[ISC-support #13437] Have vendor option processing made accessible to classif...2019-09-13T13:17:38ZCathy Almond[ISC-support #13437] Have vendor option processing made accessible to classification for subnet allocationThere's a chicken-and-egg problem. Option 43 syntax is vendor specific, so Kea allows adding option definitions to client class, so you can have vendor dependent parsing. However, to use this the packet needs to be classified first. But...There's a chicken-and-egg problem. Option 43 syntax is vendor specific, so Kea allows adding option definitions to client class, so you can have vendor dependent parsing. However, to use this the packet needs to be classified first. But what if you want to use values in option 43 suboptions to assist with classification? Parsing them using "substring" relies on all client packets having the same vendor options/suboptions in the same order - this can't be guaranteed.
---
This feature request originated in Support ticket https://support.isc.org/Ticket/Display.html?id=13437
The use case from this production environment is from the same environment as presented in https://gitlab.isc.org/isc-projects/kea/issues/149.
In this instance, additional classification is desired, based on the vendor options.
A workaround was created adding further processing to an already-existing custom hook with callout at pkt4_receive.
The processing flow within this hook was extended to add something along the lines of:
```
Pkt4Ptr pkt;
callout_handle->getArgument("query4", pkt);
OptionPtr option43 = pkt->getOption(43);
OptionPtr option2 = option43->getOption(2);
if (option2) {
std::string payload(option2->getData().begin(), option2->getData().end());
if ((payload == "MTA") || (payload == "EMTA")) {
pkt->addClass("MTA");
}
}
```
(Note that the above syntax is example-only and not tested in production)Kea1.6-finalTomek MrugalskiTomek Mrugalskihttps://gitlab.isc.org/isc-projects/kea/-/issues/117configure script doesn't fail when --enable-generate-docs is used and docbook...2019-02-04T15:58:20ZWlodzimierz Wencelconfigure script doesn't fail when --enable-generate-docs is used and docbook-style-xsl is not installedwhen kea is configured with:
`./configure --enable-generate-docs --with-log4cplus=/opt/log4cplus`
but docbook-style-xsl is not installed, configure script finish with success and process of building documentation fail:
```
[jenkins@fedor...when kea is configured with:
`./configure --enable-generate-docs --with-log4cplus=/opt/log4cplus`
but docbook-style-xsl is not installed, configure script finish with success and process of building documentation fail:
```
[jenkins@fedora27-64-2 tools]$ cd ../doc/
[jenkins@fedora27-64-2 doc]$ make
Making all in guide
make[1]: Entering directory '/home/jenkins/workspace/kea-pipeline-multiconf-admin/doc/guide'
/usr/bin/elinks -dump -no-numbering -no-references kea-guide.html > kea-guide.txt
../../tools/system_messages -o kea-messages.xml \
`find ../.. -name "*.mes" -print`
/usr/bin/xsltproc --novalid --xinclude --nonet \
--path ../../doc \
-o kea-messages.html \
--stringparam generate.toc "book toc" \
--stringparam html.stylesheet kea-guide.css \
http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl \
kea-messages.xml
I/O error : Attempt to load network entity http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl
warning: failed to load external entity "http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl"
cannot parse http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl
make[1]: *** [Makefile:644: kea-messages.html] Error 4
make[1]: Leaving directory '/home/jenkins/workspace/kea-pipeline-multiconf-admin/doc/guide'
make: *** [Makefile:532: all-recursive] Error 1
```
configure script should detect missing package and exit with errorKea1.6Tomek MrugalskiTomek Mrugalskihttps://gitlab.isc.org/isc-projects/kea/-/issues/111configure options --with-mysql --with-pgsql --with-cql not working properly2019-01-29T09:57:05ZWlodzimierz Wencelconfigure options --with-mysql --with-pgsql --with-cql not working properlyWhile using --with-mysql and --with-pgsql configure options script should exit with an error when sufficient packages were not detected/not installed and currently it's not.
when using --with-cql configure option and required packages a...While using --with-mysql and --with-pgsql configure options script should exit with an error when sufficient packages were not detected/not installed and currently it's not.
when using --with-cql configure option and required packages are not installed script ends with:
```
checking for pkg-config... (cached) /usr/bin/pkg-config
Package cassandra was not found in the pkg-config search path.
Perhaps you should add the directory containing `cassandra.pc'
to the PKG_CONFIG_PATH environment variable
Package 'cassandra', required by 'world', not found
Package cassandra was not found in the pkg-config search path.
Perhaps you should add the directory containing `cassandra.pc'
to the PKG_CONFIG_PATH environment variable
Package 'cassandra', required by 'world', not found
Package cassandra was not found in the pkg-config search path.
Perhaps you should add the directory containing `cassandra.pc'
to the PKG_CONFIG_PATH environment variable
Package 'cassandra', required by 'world', not found
Package cassandra was not found in the pkg-config search path.
Perhaps you should add the directory containing `cassandra.pc'
to the PKG_CONFIG_PATH environment variable
Package 'cassandra', required by 'world', not found
checking for Cassandra CQL headers and library... no
configure: error: Needs Cassandra CQL library
```
which are redundant notificationsKea1.6https://gitlab.isc.org/isc-projects/kea/-/issues/168config manager clear does not clear the D2 client config.2019-09-20T06:49:56ZFrancis Dupontconfig manager clear does not clear the D2 client config.The source of the problem comes from the fact that the D2 client config is not part of the server config.
BTW if we decide to fix this it is rather easy (a few line of code to add).
It is a critical bug as it makes NetBSD to not pass d...The source of the problem comes from the fact that the D2 client config is not part of the server config.
BTW if we decide to fix this it is rather easy (a few line of code to add).
It is a critical bug as it makes NetBSD to not pass dhcpsrv unit tests.kea1.7.0Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/16Make Cassandra connection parameters configurable [ISC-support #13376]2019-04-11T15:21:22ZBrian ConryMake Cassandra connection parameters configurable [ISC-support #13376]The request from the customer:
> I have been spending some time setting Kea up with Cassandra across multiple datacenters, and I believe there is a configuration issue with the current CQL connection manager. It forces consistency to CA...The request from the customer:
> I have been spending some time setting Kea up with Cassandra across multiple datacenters, and I believe there is a configuration issue with the current CQL connection manager. It forces consistency to CASS_CONSISTENCY_QUORUM (and I believe it does so for both reads and writes).
>
> Cassandra considers a "cluster" to include all servers across all datacenters. In a deployment with 3 servers in Site1, 3 servers in Site2, and a replication factor of 3 at each site (each node holding a copy of all data), a quorum is 4 servers. This means that any read or write to Site1 must cross the country from Site1 to at least one node in Site2. This ensures strong consistency but doesn't work well with multi-datacenter latency. Worse yet, it means that a datacenter-wide failure of Site2 creates a failure of Site1 because a quorum can't be achieved, as only 3 servers would be available.
>
> I think CASS_CONSISTENCY_LOCAL_QUORUM is probably a better default- it still requires a quorum but is aware of the Cassandra network topology when calculating the servers required for a quorum. In this case, a write to Site1 would require 2 of the 3 servers at that site. This also works with Cassandra's 'SimpleStrategy' if multiple data centers aren't being used- and it would be equivalent to CASS_CONSISTENCY_QUORUM in SimpleStrategy. Replication across datacenters would be eventually consistent, but there would be strong consistency within a datacenter.
>
> Ideally, the consistency for reads and writes would be independently configurable via the backend configuration. This would let the user assess the risk of conflicts and pick the consistency that makes the most sense for their deployment.
https://docs.datastax.com/en/cassandra/3.0/cassandra/dml/dmlConfigConsistency.htmlKea1.6https://gitlab.isc.org/isc-projects/kea/-/issues/21flex-id - Better printing of non-printable charaters. (FLEX_ID_EXPRESSION_EVA...2019-02-04T16:22:50ZGhost Userflex-id - Better printing of non-printable charaters. (FLEX_ID_EXPRESSION_EVALUATED)---
name: Bug report
about: flex-id
---
**Describe the bug**
when the result of the flex-id hook is a mac address the log file display the result bad.
**To Reproduce**
configure flex-id with the following config:
"identi...---
name: Bug report
about: flex-id
---
**Describe the bug**
when the result of the flex-id hook is a mac address the log file display the result bad.
**To Reproduce**
configure flex-id with the following config:
"identifier-expression": "substring(relay4[2].hex,0,18)"
this is the result:
INFO [kea-dhcp4.flex-id/7886] FLEX_ID_EXPRESSION_EVALUATED Expression evaluated for packet to "¨^Qü<98>íÉ" (size: 6)
**Expected behavior**
the mac address will be logged currectly
**Environment:**
kea 1-4-0_p1
centos 7Kea1.6Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/174Warning for unused trace levels2019-07-25T14:27:21ZFrancis DupontWarning for unused trace levelsSome compilers and static analyzers emit this kind of warnings:
```
In file included from eval_log.cc:11:0:
../../../src/lib/eval/eval_log.h:22:11: warning: 'isc::dhcp::EVAL_DBG_TRACE' defined but not used [-Wunused-variable]
const int ...Some compilers and static analyzers emit this kind of warnings:
```
In file included from eval_log.cc:11:0:
../../../src/lib/eval/eval_log.h:22:11: warning: 'isc::dhcp::EVAL_DBG_TRACE' defined but not used [-Wunused-variable]
const int EVAL_DBG_TRACE = isc::log::DBGLVL_TRACE_BASIC;
^
```
A simple solution should be to make them extern for the declaration and move the definition to the xxx_log.cc as it is done for MessageIDs.
I'd like to get an opinion from QA people as they are impacted by this. BTW if adopted it should be a good item for a final milestone.Kea1.5-finalFrancis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/175HA standby server clock skew2019-07-25T15:33:25ZGhost UserHA standby server clock skewHA has two devices and uses the same NTP server. The two servers have the same time. The standby server reports the following error.
`2018-10-19 09:41:31.520 ERROR [kea-dhcp4.ha-hooks/9478] HA_TERMINATED HA service terminated because of...HA has two devices and uses the same NTP server. The two servers have the same time. The standby server reports the following error.
`2018-10-19 09:41:31.520 ERROR [kea-dhcp4.ha-hooks/9478] HA_TERMINATED HA service terminated because of the unacceptable clock skew; fix the problem and restart!`Kea1.6-finalThomas MarkwalderThomas Markwalderhttps://gitlab.isc.org/isc-projects/kea/-/issues/176Update to sysrepo 0.7.6 release2018-11-19T14:53:29ZFrancis DupontUpdate to sysrepo 0.7.6 releaseSome comments:
- avoid to overload #65
- if it is mainly about src/lib/yang there are impacts on src/bin/netconf too
- explicitly do not put in 1.5 milestoneSome comments:
- avoid to overload #65
- if it is mainly about src/lib/yang there are impacts on src/bin/netconf too
- explicitly do not put in 1.5 milestoneKea1.5-beta2Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/178Use detected python in shell unitests2018-11-28T14:45:12ZFrancis DupontUse detected python in shell unitestsI propose to replace python by @PYTHON@ in src/lib/shell/tests/Makefile.am so on (more and more common) systems where the default python is a python3 without a link to python (link which is explicitly **not** recommended to manually add)...I propose to replace python by @PYTHON@ in src/lib/shell/tests/Makefile.am so on (more and more common) systems where the default python is a python3 without a link to python (link which is explicitly **not** recommended to manually add) the shell unit tests can pass.
A good candidate for a final if we do not want it as soon as possible.Kea1.5-beta2Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/180Address some doxygen warnings / errors2018-11-05T08:06:52ZFrancis DupontAddress some doxygen warnings / errorsKea1.5-beta2https://gitlab.isc.org/isc-projects/kea/-/issues/182Remove always-include-fqdn configuration parameter from D2ClientConfig2018-11-20T13:52:16ZThomas MarkwalderRemove always-include-fqdn configuration parameter from D2ClientConfigDHCP DDNS configuration for Kea includes a parameter, always-include-fqdn. The intent to not include the FQDN option in the response back to a client, unless it was in the request's PRL. After some discussion this was deemed to be an unn...DHCP DDNS configuration for Kea includes a parameter, always-include-fqdn. The intent to not include the FQDN option in the response back to a client, unless it was in the request's PRL. After some discussion this was deemed to be an unneeded ability.
The current behavior will always include an FQDN option in the response if the request included an FQDN option.
This was formerly Trac issue: http://kea.isc.org/ticket/3294Kea1.5-beta2https://gitlab.isc.org/isc-projects/kea/-/issues/194libkea-process unnecessarily links with MySQL, PgSQL and CQL2018-11-01T10:35:39ZMarcin Siodelskilibkea-process unnecessarily links with MySQL, PgSQL and CQLPreviously, libkea-process depended on libkea-dhcpsrv. Therefore, it had to conditionally link with MySQL and co. After we reversed the dependency, so as the libkea-dhcpsrv now depends on libkea-process, linking with MySQL is no longer n...Previously, libkea-process depended on libkea-dhcpsrv. Therefore, it had to conditionally link with MySQL and co. After we reversed the dependency, so as the libkea-dhcpsrv now depends on libkea-process, linking with MySQL is no longer needed.Kea1.5-beta1Marcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/issues/195Document sample NETCONF operation2018-11-28T22:03:52ZTomek MrugalskiDocument sample NETCONF operationThe User's Guide does not have a clear, simple example how to use kea-netconf. We need a simple example that will cover:
- start kea-dhcp4
- load basic config into sysrepo using sysrepocfg
- start kea-netconf and explain what's going on...The User's Guide does not have a clear, simple example how to use kea-netconf. We need a simple example that will cover:
- start kea-dhcp4
- load basic config into sysrepo using sysrepocfg
- start kea-netconf and explain what's going on
- change the configuration a bit
- explain how kea-netconf picks up the changes
Also clean up example sysrepo configs (they're in src/bin/netconf/configs, should be moved to doc/examples/netconf).Kea1.5-beta2Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/201#!/bin/sh and #!/bin/bash in kea sources2019-09-07T03:18:59ZWlodzimierz Wencel#!/bin/sh and #!/bin/bash in kea sourceslooks like we can't decide which shell Kea should use it's script.
Most of them uses ```!#/bin/sh``` but some like e.g. tools/sysrepo_config_defines.sh.sample tools/cql_config_defines.sh.sample went with ```!#/bin/bash```.
My proposal...looks like we can't decide which shell Kea should use it's script.
Most of them uses ```!#/bin/sh``` but some like e.g. tools/sysrepo_config_defines.sh.sample tools/cql_config_defines.sh.sample went with ```!#/bin/bash```.
My proposal is change all scripts to use ```#!/bin/sh``` and keep it that way in the future.kea1.7.0Tomek MrugalskiTomek Mrugalskihttps://gitlab.isc.org/isc-projects/kea/-/issues/205improve Kea guide2018-11-07T16:08:53ZMichal Nowikowskiimprove Kea guide- update list of distros which are used for Kea testing- update list of distros which are used for Kea testingKea1.5-beta1https://gitlab.isc.org/isc-projects/kea/-/issues/219allow an option value to be set from an expression2019-10-25T09:31:24ZFrancis Dupontallow an option value to be set from an expressionISC DHCP has two ways to set an option value: the static one and the dynamic one where an expression is evaluated to give the value to use. Kea has the basic mechanism for expression evaluation so this feature should be implementable wit...ISC DHCP has two ways to set an option value: the static one and the dynamic one where an expression is evaluated to give the value to use. Kea has the basic mechanism for expression evaluation so this feature should be implementable without a large work.kea1.7.1Francis DupontFrancis Dupont