Kea issueshttps://gitlab.isc.org/isc-projects/kea/-/issues2022-11-17T11:55:31Zhttps://gitlab.isc.org/isc-projects/kea/-/issues/2562Not consider lease database in lease process2022-11-17T11:55:31ZPhilipp BenderNot consider lease database in lease process---
name: Feature request
about: Suggest an idea for this project
---
**Some initial questions**
- Are you sure your feature is not already implemented in the latest Kea version? Pretty sure.
- Are you sure what you would like to do is...---
name: Feature request
about: Suggest an idea for this project
---
**Some initial questions**
- Are you sure your feature is not already implemented in the latest Kea version? Pretty sure.
- Are you sure what you would like to do is not possible using some other mechanisms? It is possible, but a built-in solution would be greater.
- Have you discussed your idea on kea-users or kea-dev mailing lists? No.
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
It is very important to describe what you would like to do and why?
```
We use a setup where we put hosts to automatically retrieve a fixed IP via host reservations. The hosts then boot from PXE and start a hardware-test or stresstest or whatever we defined before. Since the hosts change frequently we don't want the dhcp to save a lease. If we save the leases the dhcp may see a valid lease for this IP for another host which is already removed and don't assign the IP again until the lease is expired. We could decresc the lease time, but that only puts unnecessary stress on the network.
```
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
```
A built-in option to not save lease data to the backend, or not consider the leases for a lease process. The later option would be the better solution, since you can still see the leases which already happend.
```
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
```
Decreasing the lease time.
Using the MySQL engine "BLACKHOLE" for the lease table.
Remove the lease with a hook after the IP is leased.
```
**Additional context**
Add any other context about the feature request here.
**Funding its development**
Kea is run by ISC, which is a small non-profit organization without any government funding or any permanent sponsorship organizations. Are you able and willing to participate financially in the development costs?
```
Unfortunately I'm not able to participate financially.
```
**Participating in development**
Are you willing to participate in the feature development? ISC team always tries to make a feature as generic as possible, so it can be used in wide variety of situations. That means the proposed solution may be a bit different that you initially thought. Are you willing to take part in the design discussions? Are you willing to test an unreleased engineering code?
```
Yes I'm willing to participate in the feature development and to test an unreleased engineering code.
```
**Contacting you**
How can ISC reach you to discuss this matter further? If you do not specify any means such as e-mail, jabber id or a telephone, we may send you a message on github with questions when we have them.
```
Best way would be to contact me via github.
```outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/2555DHCP4_SUBNET_SELECTED : subnet ID is provided, can we have also the subnet na...2022-12-12T13:32:15ZVeroniqueDHCP4_SUBNET_SELECTED : subnet ID is provided, can we have also the subnet name ?Here is a DEBUG example for a DHCP4_SUBNET_SELECTED log:
```
2022-08-31 10:07:07.087 DEBUG [kea-dhcp4.packets/21553.140195413911744] DHCP4_SUBNET_SELECTED [hwtype=1 xx:xx:xx:xx:ff:3e], cid=[no info], tid=0x2316ee50: the subnet with ID 28...Here is a DEBUG example for a DHCP4_SUBNET_SELECTED log:
```
2022-08-31 10:07:07.087 DEBUG [kea-dhcp4.packets/21553.140195413911744] DHCP4_SUBNET_SELECTED [hwtype=1 xx:xx:xx:xx:ff:3e], cid=[no info], tid=0x2316ee50: the subnet with ID 2887444672 was selected for client assignments
```
It would be very helpful if we would also get the name of the subnet as defined in the the configuration file under the "subnet" field and/or (even better) the "user-context" field where we can put what ever is convenient to usoutstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/2553EVAL_RESULT INFO or DEBUG to provide client ID2022-09-08T13:34:12ZVeroniqueEVAL_RESULT INFO or DEBUG to provide client IDHello,
It would be helpful if the line INFO or DEBUG which is printed with the EVAL_RESULT information, would provide the client identifier (in my case I am interested to have the hardware address of the client, but it could be something...Hello,
It would be helpful if the line INFO or DEBUG which is printed with the EVAL_RESULT information, would provide the client identifier (in my case I am interested to have the hardware address of the client, but it could be something else).
It would help while grepping on the log file.
Many thanks.outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/2531test timer multiplicator2022-09-01T13:43:29ZFrancis Duponttest timer multiplicatorOn some systems a few tests fail because maximum delay timers fire too soon. This ticket adds a new environment variable to make these timers longer. Of course the default will be 1...On some systems a few tests fail because maximum delay timers fire too soon. This ticket adds a new environment variable to make these timers longer. Of course the default will be 1...outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/2523More libload unit tests for premium hooks2022-09-01T13:33:10ZFrancis DupontMore libload unit tests for premium hooks#2235 added new libload unit tests checking if a hook is used with the right server but for hooks registering new commands (the common case for these new tests) it is interesting (and easy) too to check if the commands are correctly regi...#2235 added new libload unit tests checking if a hook is used with the right server but for hooks registering new commands (the common case for these new tests) it is interesting (and easy) too to check if the commands are correctly registered after load and not registered before load and after unload.outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/2520Change v6 vendor-class option definition.2023-03-10T23:20:36ZFrancis DupontChange v6 vendor-class option definition.The idea is to change the DHCPv6 vendor-class (code 16) definition from uint32 + binary into uint32 + tuple array. This has a lot of advantages **but is not backward compatible**. Note if ISC DHCP allows arrays of records for Kea the arr...The idea is to change the DHCPv6 vendor-class (code 16) definition from uint32 + binary into uint32 + tuple array. This has a lot of advantages **but is not backward compatible**. Note if ISC DHCP allows arrays of records for Kea the array flag for a record type means the last field is an array. Currently there is only one standard option using tuples.
Quoting RFC 8415 figures 28 and 29 vendor-class option layout is:
```
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OPTION_VENDOR_CLASS | option-len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| enterprise-number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. .
. vendor-class-data .
. . . . .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
...
The vendor-class-data field is composed of a series of separate
items, each of which describes some characteristic of the client's
hardware configuration. Examples of vendor-class-data instances
might include the version of the operating system the client is
running or the amount of memory installed on the client.
Each instance of vendor-class-data is formatted as follows:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+-+-+-+-+-+-+
| vendor-class-len | opaque-data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+-+-+-+-+-+-+
```outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/2518RFC9243: YANG for DHCPv62022-10-14T11:17:11ZTomek MrugalskiRFC9243: YANG for DHCPv6Now that [rfc9243](https://datatracker.ietf.org/doc/html/rfc9243) has been published, it's a good time to consider whether we want to abandon Kea specific YANG model and migrate to a standard one or stick with it.
If you are a user who ...Now that [rfc9243](https://datatracker.ietf.org/doc/html/rfc9243) has been published, it's a good time to consider whether we want to abandon Kea specific YANG model and migrate to a standard one or stick with it.
If you are a user who deployed Kea with NETCONF, please share your thoughts on this.
Alternatively, we could support both models, but it seems more troublesome to maintain in the long term.outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/2449atomic lease limits2022-08-11T11:51:44ZAndrei Pavelandrei@isc.orgatomic lease limitsMake the checking of lease limits atomic to the lease allocation process, and thus resulting in a hard limit cap, as outlined below:
* [ ] Add the limits to the lease candidate's user context under path `ISC.limits` in the `leaseX_selec...Make the checking of lease limits atomic to the lease allocation process, and thus resulting in a hard limit cap, as outlined below:
* [ ] Add the limits to the lease candidate's user context under path `ISC.limits` in the `leaseX_select` callout.
* [ ] Add before-event triggers on the lease tables in MySQL and PostgreSQL that check the limits and prevent the subsequent INSERT or UPDATE statement if a limit is exceeded. If the INSERT or UPDATE is carried out, `ISC.limits` is removed from the user context.
* [ ] Signal the event of reaching a limit to the lease manager which logs its details.
* [ ] Make sure the event is properly handled as a frequent application logic event in the calling contexts (e.g. allocation engine, HA service, lease_cmds), as opposed to a technical failure which can disrupt the usual service or can be costly in terms of performance.outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/2427Kea HA hot-standby mode - standby peer not catching up2023-07-31T13:42:46ZfavqKea HA hot-standby mode - standby peer not catching upHi,
I'm testing a Kea HA setup in hot-standby mode, with the following settings:
* Kea 2.0.1 DHCPv4 + control agent.
* Two Kea instances: one "primary" and the other "standby".
* memfile backend with file persistence enabled.
* Lease...Hi,
I'm testing a Kea HA setup in hot-standby mode, with the following settings:
* Kea 2.0.1 DHCPv4 + control agent.
* Two Kea instances: one "primary" and the other "standby".
* memfile backend with file persistence enabled.
* Lease synchronization enabled in the HA setup.
* The only hooks libraries in use are ha and lease_cmds.
I ran perfdhcp simulating multiple clients against the primary. After a while of sending many requests to the primary, I see that both instances have stored leases, but the standby didn't completely catch up with the primary.
That is, when I inspect the leases on both instances using the lease4-get-all API command, I see that the number of leases did increase on both instances, but the standby has less leases than the primary.
If I manually call the ha-sync API command, or if I restart the standby, or if I reload the configuration in the standby, the standby does a sync and catches up with the primary, and the number of leases becomes equal again. However, if I then run perfdhcp repeatedly, standby eventually starts falling behind again.
Note that, when this happens, if I call the "ha-heartbeat" API command on both instances, they both report an "unsent-update-count" of 0.
A similar thing happens with DHCPv6.
Is this behavior expected? Is it normal for the standby to not catch up with the primary during HA operation, needing manual intervention ("ha-sync", restart or config reload) to catch up?
Thank you.outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/2417add support for option overload RFC33962022-05-19T14:01:36ZRazvan Becheriuadd support for option overload RFC3396Related to #2227.
long options should be stored in: sname space (64 bytes), and filename space (128 bytes)Related to #2227.
long options should be stored in: sname space (64 bytes), and filename space (128 bytes)outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/2413keactrl.start_all_servers_no_verbose_test fail2022-08-22T10:35:49Zsimon28likeactrl.start_all_servers_no_verbose_test fail---
name: Bug report
about: Create a report to help us improve
---
If you believe your bug report is a security issue (e.g. a packet that can kill the server), DO NOT REPORT IT HERE. Please use https://www.isc.org/community/report-bug/...---
name: Bug report
about: Create a report to help us improve
---
If you believe your bug report is a security issue (e.g. a packet that can kill the server), DO NOT REPORT IT HERE. Please use https://www.isc.org/community/report-bug/ instead or send mail to security-office(at)isc(dot)org.
**Describe the bug**
I'm not sure if it's the same reason as [#1986](https://gitlab.isc.org/isc-projects/kea/-/issues/1986).
I also encountered this problem on the ARM machine (debian).
I checked the 1986 issue, and it didn't seem to solve the problem.
**To Reproduce**
cd src/bin/keactrl/tests
make check
The error message is as follows:
```
Making check in .
make[1]: Entering directory '/home/stage/root/spack-stage-kea-1.6.2-56c7wz23h4dqfzoh65fb2wsnakggxzdw/spack-src/src/bin/keactrl/tests'
make check-local
make[2]: Entering directory '/home/stage/root/spack-stage-kea-1.6.2-56c7wz23h4dqfzoh65fb2wsnakggxzdw/spack-src/src/bin/keactrl/tests'
for shtest in keactrl_tests.sh ; do \
echo Running test: $shtest ; \
chmod +x /home/stage/root/spack-stage-kea-1.6.2-56c7wz23h4dqfzoh65fb2wsnakggxzdw/spack-src/src/bin/keactrl/tests/$shtest ; \
export KEA_LOCKFILE_DIR=/home/stage/root/spack-stage-kea-1.6.2-56c7wz23h4dqfzoh65fb2wsnakggxzdw/spack-src; \
export KEACTRL_BUILD_DIR=/home/stage/root/spack-stage-kea-1.6.2-56c7wz23h4dqfzoh65fb2wsnakggxzdw/spack-src; \
export KEA_PIDFILE_DIR=/home/stage/root/spack-stage-kea-1.6.2-56c7wz23h4dqfzoh65fb2wsnakggxzdw/spack-src; \
export KEACTRL_CONF=/home/stage/root/spack-stage-kea-1.6.2-56c7wz23h4dqfzoh65fb2wsnakggxzdw/spack-src/src/bin/keactrl/tests/keactrl_test.conf; \
/bin/bash /home/stage/root/spack-stage-kea-1.6.2-56c7wz23h4dqfzoh65fb2wsnakggxzdw/spack-src/src/bin/keactrl/tests/$shtest || exit ; \
done
Running test: keactrl_tests.sh
START TEST keactrl.version
PASSED keactrl.version
START TEST keactrl.version-command
Creating keactrl configuration file: /home/stage/root/spack-stage-kea-1.6.2-56c7wz23h4dqfzoh65fb2wsnakggxzdw/spack-src/src/bin/keactrl/tests/keactrl_test.conf.
PASSED keactrl.version-command
START TEST keactrl.start_all_servers_no_verbose_test
Creating Dhcp4 configuration file: /home/stage/root/spack-stage-kea-1.6.2-56c7wz23h4dqfzoh65fb2wsnakggxzdw/spack-src/src/bin/keactrl/tests/dhcp4_test_config.json.
Creating Dhcp6 configuration file: /home/stage/root/spack-stage-kea-1.6.2-56c7wz23h4dqfzoh65fb2wsnakggxzdw/spack-src/src/bin/keactrl/tests/dhcp6_test_config.json.
Creating D2 configuration file: /home/stage/root/spack-stage-kea-1.6.2-56c7wz23h4dqfzoh65fb2wsnakggxzdw/spack-src/src/bin/keactrl/tests/d2_test_config.json.
Creating Ca configuration file: /home/stage/root/spack-stage-kea-1.6.2-56c7wz23h4dqfzoh65fb2wsnakggxzdw/spack-src/src/bin/keactrl/tests/ca_test_config.json.
Creating Nc configuration file: /home/stage/root/spack-stage-kea-1.6.2-56c7wz23h4dqfzoh65fb2wsnakggxzdw/spack-src/src/bin/keactrl/tests/nc_test_config.json.
Creating keactrl configuration file: /home/stage/root/spack-stage-kea-1.6.2-56c7wz23h4dqfzoh65fb2wsnakggxzdw/spack-src/src/bin/keactrl/tests/keactrl_test.conf.
Kea log will be stored in /home/stage/root/spack-stage-kea-1.6.2-56c7wz23h4dqfzoh65fb2wsnakggxzdw/spack-src/src/bin/keactrl/tests/test.log.
Starting Kea: /home/stage/root/spack-stage-kea-1.6.2-56c7wz23h4dqfzoh65fb2wsnakggxzdw/spack-src/src/bin/keactrl/keactrl start -c /home/stage/root/spack-stage-kea-1.6.2-56c7wz23h4dqfzoh65fb2wsnakggxzdw/spack-src/src/bin/keactrl/tests/keactrl_test.conf -s all
INFO/keactrl: kea-dhcp4 appears to be running, see: PID 16511, PID file: /home/stage/root/spack-stage-kea-1.6.2-56c7wz23h4dqfzoh65fb2wsnakggxzdw/spack-src/dhcp4_test_config.kea-dhcp4.pid.
INFO/keactrl: kea-dhcp6 appears to be running, see: PID 16520, PID file: /home/stage/root/spack-stage-kea-1.6.2-56c7wz23h4dqfzoh65fb2wsnakggxzdw/spack-src/dhcp6_test_config.kea-dhcp6.pid.
INFO/keactrl: kea-dhcp-ddns appears to be running, see: PID 16532, PID file: /home/stage/root/spack-stage-kea-1.6.2-56c7wz23h4dqfzoh65fb2wsnakggxzdw/spack-src/d2_test_config.kea-dhcp-ddns.pid.
INFO/keactrl: Starting /home/stage/root/spack-stage-kea-1.6.2-56c7wz23h4dqfzoh65fb2wsnakggxzdw/spack-src/src/bin/agent/kea-ctrl-agent -c /home/stage/root/spack-stage-kea-1.6.2-56c7wz23h4dqfzoh65fb2wsnakggxzdw/spack-src/src/bin/keactrl/tests/ca_test_config.json
INFO/test_lib: wait_for_message DHCP6_CONFIG_COMPLETE: .2022-05-16 15:46:10.642 FATAL [kea-ctrl-agent.dctl/31077] DCTL_CONFIG_FILE_LOAD_FAIL Control-agent reason: unable to setup TCP acceptor for listening to the incoming HTTP requests: bind: Address already in use
Service failed: Could Not load configuration file: unable to setup TCP acceptor for listening to the incoming HTTP requests: bind: Address already in use
....................
Assertion failure: 1 != 0, for val1=1, val2=0
Timeout waiting for kea-dhcp6 to start. Expected wait_for_message return 1, returned 0.
Log file dump:
2022-05-16 15:46:10.641 INFO [kea-ctrl-agent.dctl/31077] DCTL_STARTING Control-agent starting, pid: 31077, version: 1.6.2
2022-05-16 15:46:10.642 ERROR [kea-ctrl-agent.dctl/31077] DCTL_PARSER_FAIL : unable to setup TCP acceptor for listening to the incoming HTTP requests: bind: Address already in use
FAILED keactrl.start_all_servers_no_verbose_test
```
**Expected behavior**
A clear and concise description of what you expected to happen:
The server is supposed to send back packet A with address B assigned.
**Environment:**
- Kea version: which release? 1.6.2
- OS: [e.g. Ubuntu 16.04 x64] 18.04.5 ARM
- Which features were compiled in (in particular which backends)
- If/which hooks where loaded inoutstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/2399kea-dhcp4 2.0.2 fails to always send custom option2022-05-19T13:39:39ZJohn Crichtonkea-dhcp4 2.0.2 fails to always send custom optionI´ve set up a dhcp IPv4 server, and set 3 custom options in a specific space, set a client class, and a subnet for this client, tried setting the 3 custom options as always send, but 2 of them do not get sent.
The always send should forc...I´ve set up a dhcp IPv4 server, and set 3 custom options in a specific space, set a client class, and a subnet for this client, tried setting the 3 custom options as always send, but 2 of them do not get sent.
The always send should force the option packet anyway.
```
"option-def": [ { "name": "PolycomVLAN",
"code": 128,
"space": "polycom",
"type": "string" },
{ "name": "PolycomVLANFixed",
"code": 129,
"space": "polycom",
"type": "string"
},
{ "name": "PolycomProvSer",
"code": 160,
"space": "polycom",
"type": "string" },
```
```
"client-classes": [ { "name": "Polycom-VVX1500",
"test": "option[vendor-class-identifier].text == 'Polycom-VVX1500'" } ]
```
```
{"subnet": "10.1.1.0/24",
"id": 1,
"pools": [ { "pool": "10.1.1.5 - 10.1.1.30" } ],
"client-class": "Polycom-VVX1500",
"option-data": [ { "always-send": true,
"code":128,
"space": "polycom",
"data": "VLAN-A=11;" },
{ "always-send": true,
"code":129,
"space": "polycom",
"data": "VLAN-A=11;" },
{ "code":160,
"space": "polycom",
"data": "ftp://<Redacted>" },
{ "name": "routers",
"data": "10.1.1.1" }
]
}
```
Kea:
2.0.2
tarball
linked with:
log4cplus 1.1.2
OpenSSL 1.1.1f 31 Mar 2020
database:
MySQL backend 12.0, library 10.3.34
Memfile backend 2.1
Hooks: libdhcp_lease_cmds.so / libdhcp_stat_cmds.so
Ubuntu 20.04.4 LTS
jon_lui@hotmail.comoutstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/2397perfdhcp -W doesn't limit the number of requests via -n if the rate is not me...2023-07-31T13:50:53ZAndrei Pavelandrei@isc.orgperfdhcp -W doesn't limit the number of requests via -n if the rate is not mentioned via -rExpectation, even when `-r` is not specified:
```shell
Running: perfdhcp -4 -l vethclient -n 100 -r 100 -W 1000000
***Statistics for: DISCOVER-OFFER***
sent packets: 100
received packets: 100
```
Reality:
```shell
Running: perfdhcp -4 -...Expectation, even when `-r` is not specified:
```shell
Running: perfdhcp -4 -l vethclient -n 100 -r 100 -W 1000000
***Statistics for: DISCOVER-OFFER***
sent packets: 100
received packets: 100
```
Reality:
```shell
Running: perfdhcp -4 -l vethclient -n 100 -W 1000000
***Statistics for: DISCOVER-OFFER***
sent packets: 2394
received packets: 97
```
Discovered while responding to https://lists.isc.org/pipermail/kea-users/2022-May/003432.html.outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/2378Add a callout point in HttpConnection::recordParameters2022-05-30T09:05:47ZFrancis DupontAdd a callout point in HttpConnection::recordParametersThe RBAC (#1263) role assignment can be extended using the custom value, a free member of HTTP request objects which comes with remote address, certification subject and issuer name, etc. The idea is to prepend a dedicated hook at the au...The RBAC (#1263) role assignment can be extended using the custom value, a free member of HTTP request objects which comes with remote address, certification subject and issuer name, etc. The idea is to prepend a dedicated hook at the auth callout point which for instance implements 'you need a TLS cert AND you need to connect from specific IP' by setting a custom value and configure RBAC to assign the role from it.
Now at the auth callout point all available informations are in the HTTP request object. This can be enough or not. The idea in this ticket is to get more information from the HttpConnection object including the Transaction sub-object. Perhaps it is an illusion as for instance TLS details are not available mainly because the TLS socket depends on the crypto backend...
So I propose to wait for a concrete customer request which can be only solved by such new callout point.outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/2361Kea does not accept BOOTP packets without options2022-07-29T14:04:28ZAndrei Pavelandrei@isc.orgKea does not accept BOOTP packets without optionsBOOTP packets that don't have any options, or more specifically, only the end option, code 255, are not accepted by Kea. The following exception is thrown:
`src/lib/dhcp/pkt4.cc:166-171`
```cpp
if (buffer_in.getLength() == buffer_i...BOOTP packets that don't have any options, or more specifically, only the end option, code 255, are not accepted by Kea. The following exception is thrown:
`src/lib/dhcp/pkt4.cc:166-171`
```cpp
if (buffer_in.getLength() == buffer_in.getPosition()) {
// this is *NOT* DHCP packet. It does not have any DHCPv4 options. In
// particular, it does not have magic cookie, a 4 byte sequence that
// differentiates between DHCP and RFC 951 BOOTP packets.
isc_throw(InvalidOperation, "Received BOOTP packet without vendor information extensions.");
}
```
Discovered while starting testing BOOTP with options in forge and seeing that the options aren't recognized. For a long time, we've been testing BOOTP without any intended options, but there was a cookie placed at the beginning of the variable section of the packet. That section was interpreted as a set of options. You can see in the following screenshot that the first byte of the cookie 0x63 is considered option code 99. And also that the real DHCP cookie is just before the options section placed there by scapy.
![image](/uploads/6686931198c610f7bb337d7e2419f6c1/image.png)
What we did in forge to circumvent this situation and not have option 99 eat all of the other options is put padding of four bytes instead of the fake cookie. Kea reads the cookie from the correct place, and added options after that are recognized, and Wireshark no longer considers the packet malformed.
So, is there a reason why it expects vendor information extensions? Are four bytes the minimum you can get in a vendor information extension? And why does the comment mention something else, the cookie?outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/2338Can't get DHCP option 002 0x1 windows lease work2022-08-18T12:35:09ZaworobelCan't get DHCP option 002 0x1 windows lease workHello,
I have a problem with usage of DHCP option 002 0x1 for my Windows clients in Kea 2.0.1
Indeed option does not seems to work, when a windows client is shutdown, it does not release is ip.
Maybe it is a problem with config syntax, ...Hello,
I have a problem with usage of DHCP option 002 0x1 for my Windows clients in Kea 2.0.1
Indeed option does not seems to work, when a windows client is shutdown, it does not release is ip.
Maybe it is a problem with config syntax, but i didn't find what is not correct.
Here is my config below.
Thanks in advance for your help :)
Best regards,
Arnaud.
```
"client-classes":[
{
"name":"MSFT_5_0",
"test":"option[60].hex == 'MSFT 5.0'",
"option-data":[
{
"name":"microsoft-release-lease",
"code":2,
"space":"vendor-encapsulated-options-space",
"csv-format":false,
"data":"1"
},
{
"name":"vendor-encapsulated-options",
"csv-format":false
}
]
}
],
"option-def":[
{
"name":"microsoft-release-lease",
"code":2,
"space":"vendor-encapsulated-options-space",
"type":"uint8"
}
]
```outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/2307use reference when calling getTags2022-05-30T11:19:30ZRazvan Becheriuuse reference when calling getTagsthe following code should be optimised:
```
auto tags = server_selector.getTags();
for (auto tag : tags) {
```
to
```
const auto& tags = server_selector.getTags();
for (const auto& tag : tags) {
```
the ge...the following code should be optimised:
```
auto tags = server_selector.getTags();
for (auto tag : tags) {
```
to
```
const auto& tags = server_selector.getTags();
for (const auto& tag : tags) {
```
the getTags returns a copy of a set:
```
std::set<data::ServerTag> getTags() const {
return (tags_);
}
```outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/2306PsqlBindArray::addTempString should be used for temp strings only2022-05-30T11:19:24ZRazvan BecheriuPsqlBindArray::addTempString should be used for temp strings onlythe use of PsqlBindArray::addTempString should be avoided if possible because it uses heap for a new string.
if the strings have long scope/lifetime, PsqlBindArray::add should be used insteadthe use of PsqlBindArray::addTempString should be avoided if possible because it uses heap for a new string.
if the strings have long scope/lifetime, PsqlBindArray::add should be used insteadoutstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/2282Wrong IPv6 subnet selected with matching relay addr2022-08-31T12:32:02ZSilvester van der LeerWrong IPv6 subnet selected with matching relay addrHi,
We have a strange issue using Kea-DHCP 1.8.2 where sometimes the wrong IPv6 subnet is sometimes selected, even when there is a matching relay address.
[kea-dhcp-config.txt](/uploads/b9f29bc40e0f7fc172f4115adeed49b3/kea-dhcp-config...Hi,
We have a strange issue using Kea-DHCP 1.8.2 where sometimes the wrong IPv6 subnet is sometimes selected, even when there is a matching relay address.
[kea-dhcp-config.txt](/uploads/b9f29bc40e0f7fc172f4115adeed49b3/kea-dhcp-config.txt)
This usually happens when de device goes offline, and comes back, when we restart the kea-dhcp6 server, the correct subnet is selected again and device comes online.
Can somebody clarify /help with this rather strange behavior? (i've attached the config)outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/2267Lease file syntax should be documented2022-02-10T14:38:30ZTomek MrugalskiLease file syntax should be documentedWe need a documentation for lease file syntax. In particular, the escaping should be covered.We need a documentation for lease file syntax. In particular, the escaping should be covered.outstanding