Kea issueshttps://gitlab.isc.org/isc-projects/kea/-/issues2019-02-07T17:00:17Zhttps://gitlab.isc.org/isc-projects/kea/-/issues/445add support for mongo db2019-02-07T17:00:17ZGhost Useradd support for mongo db---
name: mongodb
about: add mongodb support to kea dhcp server
---
**Some initial questions**
- could not find this request anywhere in issues or on the web
- sure, there are other databases support; but that's not the point
**Is you...---
name: mongodb
about: add mongodb support to kea dhcp server
---
**Some initial questions**
- could not find this request anywhere in issues or on the web
- sure, there are other databases support; but that's not the point
**Is your feature request related to a problem? Please describe.**
- Reduction of the numbers of databases on the client's systems
**Describe the solution you'd like**
- allow kea administrators to configure mongodb in kea
**Describe alternatives you've considered**
- Not really.
**Additional context**
- No.
**Funding its development**
- Sure to some very small degree.
**Participating in development**
- design discussions and testing
**Contacting you**
- Private messages to my gitlab.isc.org registered email address are fine.outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/581ISC DHCP "decline"2019-04-18T15:36:10ZFrancis DupontISC DHCP "decline"According to ISC DHCP dhcpd config doc:
```
The declines keyword
allow declines;
deny declines;
ignore declines;
The DHCPDECLINE message is used by DHCP clients to indicate that the lease the se...According to ISC DHCP dhcpd config doc:
```
The declines keyword
allow declines;
deny declines;
ignore declines;
The DHCPDECLINE message is used by DHCP clients to indicate that the lease the server has
offered is not valid. When the server receives a DHCPDECLINE for a particular address, it
normally abandons that address, assuming that some unauthorized system is using it. Unfor-
tunately, a malicious or buggy client can, using DHCPDECLINE messages, completely exhaust
the DHCP server's allocation pool. The server will eventually reclaim these leases, but not
while the client is running through the pool. This may cause serious thrashing in the DNS,
and it will also cause the DHCP server to forget old DHCP client address allocations.
The declines flag tells the DHCP server whether or not to honor DHCPDECLINE messages. If it
is set to deny or ignore in a particular scope, the DHCP server will not respond to DHCPDE-
CLINE messages.
The declines flag is only supported by DHCPv4 servers. Given the large IPv6 address space
and the internal limits imposed by the server's address generation mechanism we don't think
it is necessary for DHCPv6 servers at this time.
Currently, abandoned IPv6 addresses are reclaimed in one of two ways:
a) Client renews a specific address:
If a client using a given DUID submits a DHCP REQUEST containing
the last address abandoned by that DUID, the address will be
reassigned to that client.
b) Upon the second restart following an address abandonment. When
an address is abandoned it is both recorded as such in the lease
file and retained as abandoned in server memory until the server
is restarted. Upon restart, the server will process the lease file
and all addresses whose last known state is abandoned will be
retained as such in memory but not rewritten to the lease file.
This means that a subsequent restart of the server will not see the
abandoned addresses in the lease file and therefore have no record
of them as abandoned in memory and as such perceive them as free
for assignment.
The total number addresses in a pool, available for a given DUID value, is internally lim-
ited by the server's address generation mechanism. If through mistaken configuration, mul-
tiple clients are using the same DUID they will competing for the same addresses causing the
server to reach this internal limit rather quickly. The internal limit isolates this type
of activity such that address range is not exhausted for other DUID values. The appearance
of the following error log, can be an indication of this condition:
"Best match for DUID <XX> is an abandoned address, This may be a
result of multiple clients attempting to use this DUID"
where <XX> is an actual DUID value depicted as colon separated
string of bytes in hexadecimal values.
```ISC DHCP Migrationhttps://gitlab.isc.org/isc-projects/kea/-/issues/586disable dhcpdecline via configuration option2019-04-25T16:01:56ZGhost Userdisable dhcpdecline via configuration optionI disabled the DHCPDECLINE feature in the KEA source.
In our FTTH access network IP conflict never ever can happen, because of the dhcp snooping
based IP- and ARP anti spoofing, so processing the DHCPDECLINE messages from the clients is ...I disabled the DHCPDECLINE feature in the KEA source.
In our FTTH access network IP conflict never ever can happen, because of the dhcp snooping
based IP- and ARP anti spoofing, so processing the DHCPDECLINE messages from the clients is just a vulnerability.
I suggest the DHCPDECLINE feature should be disable via configuration option, global or/and subnet level.outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/718RESTful API for Kea Control Agent (GSoC 2019)2019-08-06T11:08:58ZJames WangRESTful API for Kea Control Agent (GSoC 2019)Kea Control Agent currently implements an RPC-style API where all work is done by POSTing a command with arguments. This issue explores how to implement a true RESTful style API for Kea CA.
* Original [proposal](https://summerofcode.wit...Kea Control Agent currently implements an RPC-style API where all work is done by POSTing a command with arguments. This issue explores how to implement a true RESTful style API for Kea CA.
* Original [proposal](https://summerofcode.withgoogle.com/dashboard/project/6159304481046528/details/) for this project
* The draft API reference can be found [here](https://gitlab.isc.org/Rinne0410/kea/wikis/API-references). It will be moved to main Wiki once finalized
* The underlying implementation design can be found [here](https://gitlab.isc.org/Rinne0410/kea/wikis/New-API-design)outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/541auto-generated config parsing tests are currently limited to "Dhcp4Parser*.*"2019-08-08T16:20:44ZThomas Markwalderauto-generated config parsing tests are currently limited to "Dhcp4Parser*.*"The following discussion from !254 should be addressed:
- [ ] @marcin started a [discussion](https://gitlab.isc.org/isc-projects/kea/merge_requests/254#note_48600): (+4 comments)
> Now that you trained me how to re-generate the un...The following discussion from !254 should be addressed:
- [ ] @marcin started a [discussion](https://gitlab.isc.org/isc-projects/kea/merge_requests/254#note_48600): (+4 comments)
> Now that you trained me how to re-generate the unit tests in get_config_unittests.cc I wonder if enabling this test that calls `extractConfig` should result in re-generating the tests?outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/739More metadata checks in MySQL CB unit tests2019-08-08T16:23:54ZFrancis DupontMore metadata checks in MySQL CB unit testsAs we already do in CB cmds hook add more metadata checks in MySQL CB unit tests (reference https://gitlab.isc.org/isc-projects/kea/merge_requests/424#note_68391)As we already do in CB cmds hook add more metadata checks in MySQL CB unit tests (reference https://gitlab.isc.org/isc-projects/kea/merge_requests/424#note_68391)outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/879Implement SLAAC (stateless IPv6 configuration) daemon2019-09-05T15:54:40ZTomek MrugalskiImplement SLAAC (stateless IPv6 configuration) daemonThis is an experiment we (@fdupont, @godfryd, @tomek) did during a hackathon in Prague. For details, see
https://gitlab.isc.org/isc-projects/kea/wikis/hackathon/slaac.
This ticket is created to slowly evolve the code into something tha...This is an experiment we (@fdupont, @godfryd, @tomek) did during a hackathon in Prague. For details, see
https://gitlab.isc.org/isc-projects/kea/wikis/hackathon/slaac.
This ticket is created to slowly evolve the code into something that could one day be accepted as experimental feature in Kea.outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/902Configuration Backend in DHCPv4 dhcp4_subnet not display2019-10-03T19:12:39ZGhost UserConfiguration Backend in DHCPv4 dhcp4_subnet not display![image](/uploads/78df9669353f2e41db6aac33097f6b65/image.png)
this is sql dhcp4_options tables
this is post confi-get , not code 3 display in subnet id 216,99
"subnet4": [
{
"4o6-interface": "...![image](/uploads/78df9669353f2e41db6aac33097f6b65/image.png)
this is sql dhcp4_options tables
this is post confi-get , not code 3 display in subnet id 216,99
"subnet4": [
{
"4o6-interface": "",
"4o6-interface-id": "",
"4o6-subnet": "",
"id": 99,
"option-data": [
{
"always-send": false,
"code": 3,
"csv-format": true,
"data": "192.168.0.1",
"name": "routers",
"space": "dhcp4"
}
],
"pools": [
{
"option-data": [],
"pool": "192.168.0.10-192.168.0.100"
}
],
"relay": {
"ip-addresses": []
},
"reservations": [],
"subnet": "192.168.0.0/24"
},
{
"4o6-interface": "",
"4o6-interface-id": "",
"4o6-subnet": "",
"id": 100,
"option-data": [],
"pools": [
{
"option-data": [],
"pool": "192.168.1.10-192.168.1.100"
}
],
"relay": {
"ip-addresses": []
},
"reservations": [],
"subnet": "192.168.1.0/24"
},
{
"4o6-interface": "",
"4o6-interface-id": "",
"4o6-subnet": "",
"id": 216,
"option-data": [
{
"always-send": false,
"code": 6,
"csv-format": true,
"data": "172.22.1.253",
"name": "domain-name-servers",
"space": "dhcp4"
},
{
"always-send": false,
"code": 4,
"csv-format": true,
"data": "10.10.10.50",
"name": "time-servers",
"space": "dhcp4"
}
],
"pools": [
{
"option-data": [],
"pool": "172.30.216.10-172.30.216.20"
}
],
"relay": {
"ip-addresses": []
},
"reservations": [],
"subnet": "172.30.216.0/21"
}
],outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/927Improve parsing of commas within text strings2019-10-17T15:43:43ZMichael McNallyImprove parsing of commas within text stringsOur friend Shawn, on support ticket [#15079](https://support.isc.org/Ticket/Display.html?id=15079) was having a bit of awkwardness trying to define some string-valued options in which the strings contained commas.
He wrote:
>>>
We have ...Our friend Shawn, on support ticket [#15079](https://support.isc.org/Ticket/Display.html?id=15079) was having a bit of awkwardness trying to define some string-valued options in which the strings contained commas.
He wrote:
>>>
We have a customer attempting to put a comma separated string into an option defined as text in Kea. Kea appears to be treating the comma as a delimiter for arrays and discarding the comma and the text after the comma. It appears that you may have addressed this issue somewhat in 1.6.0 but I wanted to check if there is any way to escape or otherwise allow for commas in text strings in 1.5.0.
For example given this option definition
```
{
"space": "dhcp4",
"code": 176,
"type": "string",
"name": "test"
}
```
And this specification for the option value
```
{
"name": "test",
"code": 177,
"data": "foo,bar"
}
```
We are only seeing "foo" put into the packet sent to the client. I have tried single quoting the text
"'foo,bar'" and escaping the comma "foo\,bar" and neither seem to work.
>>>
In a subsequent response on the same ticket he mentions that he has found a way to successfully escape the commas using multiple backslashes but this is likely to be a situation encountered by other operators who may find it similarly confusing, therefore we should consider (ideally) improving the parsing of commas that are within string literals OR (if not) at least better documenting how to use them.outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/929replace boost::shared_ptr/weak_ptr and similar components with std::shared_pt...2019-10-17T15:53:34ZRazvan Becheriureplace boost::shared_ptr/weak_ptr and similar components with std::shared_ptr/std::weak_ptr and respective std componentsAs the code uses std::shared_ptr and boost_shared_ptr, the code should use only c++11 stl (std) components (if provided).
From what I know, only multi index container is not implemented in stl. Everything else should be stl.As the code uses std::shared_ptr and boost_shared_ptr, the code should use only c++11 stl (std) components (if provided).
From what I know, only multi index container is not implemented in stl. Everything else should be stl.outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/938Implement RFC8539 (new softwire options)2019-10-24T15:54:34ZTomek MrugalskiImplement RFC8539 (new softwire options)There's a new [RFC 8539](https://tools.ietf.org/html/rfc8539) published. We should support it one day.
As there are currently no known customers or users and the complexity of its implementation is non-trivial, this is not a high priority.There's a new [RFC 8539](https://tools.ietf.org/html/rfc8539) published. We should support it one day.
As there are currently no known customers or users and the complexity of its implementation is non-trivial, this is not a high priority.outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/948hooks providing commands should check for control channel2019-11-28T16:39:45ZFrancis Duponthooks providing commands should check for control channelAs mentioned in #794 cb_cmds and in general any hooks mostly providing commands should check a control channel is configured as obviously they are useless without one... #794 recommends to refuse to load.As mentioned in #794 cb_cmds and in general any hooks mostly providing commands should check a control channel is configured as obviously they are useless without one... #794 recommends to refuse to load.outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/951Move Changelog to markdown2019-11-28T16:44:25ZTomek MrugalskiMove Changelog to markdownWe have issue numbers, MR links and commit-ids in the changelog. If we rename the file to ChangeLog.md, gitlab will turn them into clickable links.We have issue numbers, MR links and commit-ids in the changelog. If we rename the file to ChangeLog.md, gitlab will turn them into clickable links.outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/993Remove bad use of NULL or nullptr from Kea C++ code.2019-12-05T16:52:19ZFrancis DupontRemove bad use of NULL or nullptr from Kea C++ code.For the second we decided a long time ago to not use it. For the first it is far simpler: NULL simply does not exist in C++ (and BTW some systems do not define it for C++ which is with type problems from the cast another source of errors...For the second we decided a long time ago to not use it. For the first it is far simpler: NULL simply does not exist in C++ (and BTW some systems do not define it for C++ which is with type problems from the cast another source of errors with NULL).outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/1009Provide a standard queue choice for packet queue2019-12-12T16:57:24ZFrancis DupontProvide a standard queue choice for packet queueToday we have only the ring but even with an infinite (0) capacity it is not the same than a queue.
Whether this should stay internal to the dhcp library or available to DHCP server syntaxes is still a subject for discussion.Today we have only the ring but even with an infinite (0) capacity it is not the same than a queue.
Whether this should stay internal to the dhcp library or available to DHCP server syntaxes is still a subject for discussion.outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/1012Add a require at least version in config syntax2019-12-12T16:59:48ZFrancis DupontAdd a require at least version in config syntaxThis feature will provide a way to say the configuration file requires at least a specified Kea version. Useful for Keama and Stork, or in general for any tool which builds configuration files.This feature will provide a way to say the configuration file requires at least a specified Kea version. Useful for Keama and Stork, or in general for any tool which builds configuration files.outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/1029New built-in client class for incomplete unpacking2020-01-09T16:56:32ZFrancis DupontNew built-in client class for incomplete unpackingCurrent Kea accepts packets which have a not fatal error during unpacking. I believe it was added by @tmark: in such case the SkipRemainingOptionsError exception is thrown and processing continue.
I'd like to put such packets in a new b...Current Kea accepts packets which have a not fatal error during unpacking. I believe it was added by @tmark: in such case the SkipRemainingOptionsError exception is thrown and processing continue.
I'd like to put such packets in a new built-in class so a "not option[xxx].exist" can't be mislead: it will be enough to add "add not member("<new-class-name>')".
This allows too to classify such packets in the DROP class so by configuration accept or drop them.outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/1030client class added by hooks and expressions2020-01-16T16:36:32ZFrancis Dupontclient class added by hooks and expressionsA client class added by a hook in pkt4_receive can't be used in an expression because the main classification is done before the callout. This means it can be used only directly for subnet selection, e.g. if the hook adds the class "foo"...A client class added by a hook in pkt4_receive can't be used in an expression because the main classification is done before the callout. This means it can be used only directly for subnet selection, e.g. if the hook adds the class "foo" you can guard a subnet by "foo" but not by a class "not-foo" defined by the expression "not member('foo')".
The case of pool guard is more complex because it is possible to move to the host identifier classification point using "KNOWN" or "UNKNOWN" in the expression. Of course it is simpler for required classes which are evaluated late.
This is not beyond repair but if we want to change this IMHO it is better to reconsider the whole classification design as explained in #1028.outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/631Compile fails on illumos (OpenSolaris derivitive)2020-01-16T21:16:47ZGhost UserCompile fails on illumos (OpenSolaris derivitive)Currently the compile is failing on illumos (OpenSolaris fork, similar to Solaris 10), so far it look to be small things.
I will try to provide patches, although my C/C++ foo is bad.Currently the compile is failing on illumos (OpenSolaris fork, similar to Solaris 10), so far it look to be small things.
I will try to provide patches, although my C/C++ foo is bad.outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/671make v4 and v6 similar code as consistent as possible2020-03-31T09:04:05ZRazvan Becheriumake v4 and v6 similar code as consistent as possibleThere are a lot of files which are 90% the same code, so minor inconsistencies should be resolved:
```
src/bin/dhcp4/
main.cc
ctrl_dhcp4_srv.cc
ctrl_dhcp4_srv.h
dhcp4_lexer.ll
dhcp4_parser.yy
json_config_parser.cc
json_config_parser.h
dh...There are a lot of files which are 90% the same code, so minor inconsistencies should be resolved:
```
src/bin/dhcp4/
main.cc
ctrl_dhcp4_srv.cc
ctrl_dhcp4_srv.h
dhcp4_lexer.ll
dhcp4_parser.yy
json_config_parser.cc
json_config_parser.h
dhcp4_srv.cc
dhcp4_srv.h
```
vs
```
src/bin/dhcp6/
main.cc
ctrl_dhcp6_srv.cc
ctrl_dhcp6_srv.h
dhcp6_lexer.ll
dhcp6_parser.yy
json_config_parser.cc
json_config_parser.h
dhcp6_srv.cc
dhcp6_srv.h
```
The goal here is to detect minor bugs and fix them (some of the issues were fixed in v4 and not in v6, or there have been some conflicts and merges that broke the code on one v4 and not on v6, so the problems were solved only for one version).
This way we can easily detect missing functionality or wrong conflict resolutions.
The same should be considered for code in:
src/lib/dhcpsrv/parsers/dhcp_parsers.cc
the case for initSubnets for v4 and v6 (subnet id is mandatory for v4 but not for v6). This is handled differently.
As mentioned before, I use Beyond Compare to see differences in files, and can easily see functional differences where there should not be any.outstanding