Kea issueshttps://gitlab.isc.org/isc-projects/kea/-/issues2022-11-02T15:08:41Zhttps://gitlab.isc.org/isc-projects/kea/-/issues/22stringop-truncation warnings2022-11-02T15:08:41ZFrancis Dupontstringop-truncation warningsG++ 8 has a new warning stringop truncation which is emitted when strncat or strncpy (only the second in kea) fails to terminate (i.e. append a null character) its result.
There are on Fedora 28 spurious warnings on local/unix socket ad...G++ 8 has a new warning stringop truncation which is emitted when strncat or strncpy (only the second in kea) fails to terminate (i.e. append a null character) its result.
There are on Fedora 28 spurious warnings on local/unix socket address or ifname because they are filled using strncpy.
I have a mixed feeling about this: IMHO the issue is not in Kea but in the system header files which should add a ```nonstring``` attribute but did not, so no action is a possible answer to this...backloghttps://gitlab.isc.org/isc-projects/kea/-/issues/37revamp subnet sanity checks2022-11-02T15:08:41ZGhost Userrevamp subnet sanity checksOn one side decides what should be checked:
- interface in shared network
- "same subnet" (cf #5423)
- malformed prefix
etc
And apply this to documentation and code in:
- plain subnet configuration
- in shared network subnet config...On one side decides what should be checked:
- interface in shared network
- "same subnet" (cf #5423)
- malformed prefix
etc
And apply this to documentation and code in:
- plain subnet configuration
- in shared network subnet configuration
- subnet REST API
Should be done after #5423 (definition of "same subnet") and client-class in pools.backloghttps://gitlab.isc.org/isc-projects/kea/-/issues/38Updating DNS entry on host reservation changing2022-11-02T15:08:42ZGhost UserUpdating DNS entry on host reservation changingI sent this questions to kea-users@lists.isc.org two days ago, but nothing happens and I can't see my message in thread list. So, I decided to create a new ticket.
My previous message:
I'm trying to bond Kea with BIND. When a new lease ...I sent this questions to kea-users@lists.isc.org two days ago, but nothing happens and I can't see my message in thread list. So, I decided to create a new ticket.
My previous message:
I'm trying to bond Kea with BIND. When a new lease is created or expired it works well. In this cases I get correct records in "forward" and "reverse" DNS zones. But, when I'm changing an IP-address in host reservation entry in MySQL database, a new address is allocated to the customer and new correct entries appear in DNS. However, an old entry for previous IP-address still remains in "reverse" DNS zone. Thus, now I have a "ghost" entry in my DNS.
I would manually remove the lease BEFORE changing the reservation entry. I guess it should work. But maybe there is a routine solution for this issue?backloghttps://gitlab.isc.org/isc-projects/kea/-/issues/39shared-network option takes precedence before option defined in client class2022-11-02T15:08:43ZGhost Usershared-network option takes precedence before option defined in client classWhen kea6 is configured with shared-network that contain option, and subnet (within that shared-network) which has assigned class with the same option defined - Kea ignores option defined in class.
Example configuration:
```
{
"Dhcp...When kea6 is configured with shared-network that contain option, and subnet (within that shared-network) which has assigned class with the same option defined - Kea ignores option defined in class.
Example configuration:
```
{
"Dhcp6":
{
"renew-timer":1000,
"rebind-timer":2000,
"preferred-lifetime":3000,
"valid-lifetime":4000,
"client-classes":[
{
"name":"Client_Class_1",
"test":"substring(option[1].hex,8,2)==0xf2f1",
"option-data":[
{
"csv-format":true,
"code":23,
"data":"2001:db8::888",
"name":"dns-servers",
"space":"dhcp6"
}
]
}
],
"interfaces-config":
{
"interfaces":["eth2"]
},
"lease-database":
{
"type":"memfile"
},
"shared-networks":[
{
"name":"name-abc",
"interface":"eth2",
"option-data":[
{
"csv-format":true,
"code":23,
"data":"2001:db8::1",
"name":"dns-servers",
"space":"dhcp6"
}
],
"subnet6":[
{
"subnet":"2001:db8:a::/64",
"client-class":"Client_Class_1",
"pools":[
{
"pool":"2001:db8:a::1-2001:db8:a::10"
}
]
}
]
}
]
}
}
```
Packet is evaluated correctly, option 23 has value that is configured on shared-network level, not what is in the class.
```
DEBUG [kea-dhcp6.eval/18704] EVAL_DEBUG_EQUAL Popping 0xF2F1 and 0xF2F1 pushing result 'true'
INFO [kea-dhcp6.dhcp6/18704] EVAL_RESULT Expression Client_Class_1 evaluated to 1
```
but message is created incorreclty:
```
DHCP6_RESPONSE_DATA responding with packet type 2 data is localAddr=[ff02::1:2]:547 remoteAddr=[fe80::800:27ff:fe00:1]:546
msgtype=2(ADVERTISE), transid=0xeda107
type=00001, len=00010: 00:03:00:01:66:55:44:33:f2:f1
type=00002, len=00014: 00:01:00:01:21:81:be:d4:08:00:27:19:b8:2a
type=00003(IA_NA), len=00040: iaid=39866, t1=1000, t2=2000,
options:
type=00005(IAADDR), len=00024: address=2001:db8:a::1, preferred-lft=3000, valid-lft=4000
type=00023, len=00016: 2001:db8::1
```
Entire logs and network capture attached.
Number of subnets within shared-network, or number of shared-networks makes no difference - bug occur.
When client has reservation with option X it correctly overrides option configured on shared-network level.backloghttps://gitlab.isc.org/isc-projects/kea/-/issues/41Kea should be able to print performance metrics2023-01-09T12:25:26ZGhost UserKea should be able to print performance metricsWhen debugging an issue, it became clear that finding out how long it takes Kea to process a packet and actually send a response is difficult. It requires matching different log entries, which sometimes is very problematic if there are m...When debugging an issue, it became clear that finding out how long it takes Kea to process a packet and actually send a response is difficult. It requires matching different log entries, which sometimes is very problematic if there are multiple packets sent from a client.
We should develop a way to measure how long it takes to process a packet. The easiest way will be to use a stopwatch (see src/lib/util/stopwatch.h). I think we should remember the timestamp somewhere in Pkt4 (and possibly Pkt6) very early when the packet is received (perhaps in Pkt4 constructor?) and then print the interval value once the response packet is being sent out.
I think it would be useful to have separate logger for this, maybe call it performance or perf? If the concept proves to be useful, we may soon extend it to print out more detailed information about different stages (it took X ms to find host reservation, Y ms to select a lease, Z ms to do DNS update etc).backloghttps://gitlab.isc.org/isc-projects/kea/-/issues/44make database config parsing more flexible2022-11-02T15:08:41ZGhost Usermake database config parsing more flexibleCf. #5528 comments (look for "line 125").Cf. #5528 comments (look for "line 125").backloghttps://gitlab.isc.org/isc-projects/kea/-/issues/46Please add circuit-ID to result of get lease-42022-11-02T15:08:42ZGhost UserPlease add circuit-ID to result of get lease-4We want to identify leases with circuit ID, how can we get the circuit ID with the lease4-get?
I want to search for a lease with the circuit ID with lease-get.
Vennlig hilsen / Best regards
Frode SætreWe want to identify leases with circuit ID, how can we get the circuit ID with the lease4-get?
I want to search for a lease with the circuit ID with lease-get.
Vennlig hilsen / Best regards
Frode Sætrebackloghttps://gitlab.isc.org/isc-projects/kea/-/issues/47Update network/subnet hooks to handle new classification fields2022-11-02T15:08:43ZGhost UserUpdate network/subnet hooks to handle new classification fields[#5374](https://oldkea.isc.org/ticket/5374) was merged but introduced new features which require an update of hooks managing shared networks and subnets.[#5374](https://oldkea.isc.org/ticket/5374) was merged but introduced new features which require an update of hooks managing shared networks and subnets.backloghttps://gitlab.isc.org/isc-projects/kea/-/issues/51Impossible to use a Chromecast with kea DHCP2022-11-02T15:08:41ZGhost UserImpossible to use a Chromecast with kea DHCPHello,
since few month I use kea dhcp server, it works properly with all my devices but I have a big problem with my Chromecast, it doesn't work att all with your DHCP server. I already contacted Chromecast Support team. I don't know if ...Hello,
since few month I use kea dhcp server, it works properly with all my devices but I have a big problem with my Chromecast, it doesn't work att all with your DHCP server. I already contacted Chromecast Support team. I don't know if I am the only one with this problem.
Before I decided to use Kea I was using my ISP's dhcp server but it was too limited and verry bugfull.
I hope you will be able to find a way to fix this, I didn't gave you any logs or config files because I don't know what you really need but I really need it working and I'll give you any file you need, your DHCP server is VERRY nice !
Cordiallybackloghttps://gitlab.isc.org/isc-projects/kea/-/issues/52kea-dhcp4 can't offer ip reserved.2022-11-02T15:08:43ZGhost Userkea-dhcp4 can't offer ip reserved.subnet : 192.168.0.0/24
reservation1 : mac(aa:aa:aa:aa:aa:aa) ip(192.168.0.11)
reservation2 : mac(bb:bb:bb:bb:bb:bb) ip(192.168.0.12)
reservation1 has router option(3) 192.168.0.3
reservation2 has no options.
I used mysql for hosts res...subnet : 192.168.0.0/24
reservation1 : mac(aa:aa:aa:aa:aa:aa) ip(192.168.0.11)
reservation2 : mac(bb:bb:bb:bb:bb:bb) ip(192.168.0.12)
reservation1 has router option(3) 192.168.0.3
reservation2 has no options.
I used mysql for hosts reservation.
kea-dhcp4 responses to reservation1 but fail to response to reservation2 somtimes.
The Failure log is 'preparing on-wire-format of the packet to be sent failed DHCPv4 Option4AddrLst 3 is too big.At most 255 bytes are supported.'
In packets debug log, kea-dhcp4 try to response to reserve2 with router option(value is 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 ....... maybe 2048~4096byte)backloghttps://gitlab.isc.org/isc-projects/kea/-/issues/54Reconfigure with an unusable lease back end, leaves the server in a non-worki...2022-11-02T15:08:41ZGhost UserReconfigure with an unusable lease back end, leaves the server in a non-working state (no rollback)A running kea-dhcpX server can be rendered non-functional by issuing a reconfigure (either by command or signal) with a configuration containing
a flawed lease back end specifications or to back end which cannot be reached.
After succes...A running kea-dhcpX server can be rendered non-functional by issuing a reconfigure (either by command or signal) with a configuration containing
a flawed lease back end specifications or to back end which cannot be reached.
After successfully parsing the configuration, the server attempts to connect to the new lease back end. This causes the LeaseMgrFactory to close the existing instance and subsequently fails to open a new one. The server will emit a log message that states reconfiguration has failed and at this point it will no longer process client packets.
A simple scenario:
1. start server with memfile lease back end
2. verify server hands out leases
3. change configuration to MySQL back end with an invalid database or user name
4. issue reconfig command
5. verify server does not see or acknowledge packets
The basic issue is the LeaseMgrFactory only permits one instance to exist. There is no "Staged" instance and we do not restore the one we closed. We probably don't handle host back ends any differently.backloghttps://gitlab.isc.org/isc-projects/kea/-/issues/60Add automatic rate adjustment to perfdhcp2022-11-02T15:08:41ZGhost UserAdd automatic rate adjustment to perfdhcpTo facilitate performance measurements, it would be helpful if perfdhcp had an automatic rate adjustment feature.
With this, perfdhcp would start sending packets a specified initial rate, then periodically adjust the rate upwards or dow...To facilitate performance measurements, it would be helpful if perfdhcp had an automatic rate adjustment feature.
With this, perfdhcp would start sending packets a specified initial rate, then periodically adjust the rate upwards or downwards automatically until it reached the maximum rate at which the fraction of packets lost was no higher than a given value.backloghttps://gitlab.isc.org/isc-projects/kea/-/issues/72Radius option definitions2023-06-19T11:01:38ZGhost UserRadius option definitionsThe RadiusDesign calls for an optional mechanism that will query the Radius server about specific client. Typically this functionality has been done by a relay, which then inserted Radius options into DHCP message before forwarding it to...The RadiusDesign calls for an optional mechanism that will query the Radius server about specific client. Typically this functionality has been done by a relay, which then inserted Radius options into DHCP message before forwarding it to the server.
Kea should be able to understand such options. See RFC4014 (v4) and RFC7037 (v6) for details. Kea should be able to represent radius attributes as sub-options, so general mechanisms, like client classification could be used.
This ticket calls for option definitions only. No special handling logic should be implemented.next-stable-2.6https://gitlab.isc.org/isc-projects/kea/-/issues/76Update leases on 'dashboard server' without running HA2022-11-02T15:08:41ZGhost UserUpdate leases on 'dashboard server' without running HAOne of our GSOC students is working on a Kea dashboard, based on the GLASS project, a dashboard for ISC DHCP. The dashboard requires access to a local lease file so it can continuously or frequently update stats about pool utilization, e...One of our GSOC students is working on a Kea dashboard, based on the GLASS project, a dashboard for ISC DHCP. The dashboard requires access to a local lease file so it can continuously or frequently update stats about pool utilization, etc. It seems like the ideal way to do this is to push lease file updates to the dashboard server.
It seems we can use the 'backup server' feature of HA, but without the HA support. So, we would want a mode that doesn't check for a valid HA configuration and an HA partner. Also, we would want this feature to not require the premium HA package.backloghttps://gitlab.isc.org/isc-projects/kea/-/issues/77memfile: add a command to force writing in-memory DB to file2022-11-02T15:08:43ZGhost Usermemfile: add a command to force writing in-memory DB to filememfile keeps leases in memory and writes changes to disk. If the leasefile is lost for whatever reason, it may be useful to tell Kea to write is entire lease file to disk.memfile keeps leases in memory and writes changes to disk. If the leasefile is lost for whatever reason, it may be useful to tell Kea to write is entire lease file to disk.backloghttps://gitlab.isc.org/isc-projects/kea/-/issues/106CB: Update Developer's Guide for Configuration Backend2022-11-02T15:08:42ZMarcin SiodelskiCB: Update Developer's Guide for Configuration BackendThis ticket covers updates to the Developer's Guide after the implementation of the Kea Config Backend.This ticket covers updates to the Developer's Guide after the implementation of the Kea Config Backend.backloghttps://gitlab.isc.org/isc-projects/kea/-/issues/108Need to quote some keys for yang.2022-11-02T15:08:43ZFrancis DupontNeed to quote some keys for yang.The Kea6 reservations.json example file use ```'somevalue'``` as the identifier of a (flex-id) host reservation. Yang uses the same character ```'``` for list keys so it conflicts.
The solution should be to convert the identifier in hexa...The Kea6 reservations.json example file use ```'somevalue'``` as the identifier of a (flex-id) host reservation. Yang uses the same character ```'``` for list keys so it conflicts.
The solution should be to convert the identifier in hexadecimal so:
- check the textual and hexadecimal forms can be used together / safely.
- check presence of problematic characters in a string used as a list key
- create an adaptor to quote or convert strings used as list key.
Nothing hard but low priority as this is clearly a corner case.backloghttps://gitlab.isc.org/isc-projects/kea/-/issues/110pool order2022-11-02T15:08:41ZFrancis Dupontpool orderConfiguration order of subnets and client classes is critical. Pools are ordered too but IMHO cases where it matters are uncommon, in fact it will be an issue only for config backend unit tests. I suggest to NOT address this issue (1.x l...Configuration order of subnets and client classes is critical. Pools are ordered too but IMHO cases where it matters are uncommon, in fact it will be an issue only for config backend unit tests. I suggest to NOT address this issue (1.x low for instance?).backloghttps://gitlab.isc.org/isc-projects/kea/-/issues/114Timeouts specified in inconsistent units2022-11-02T15:08:43ZTomek MrugalskiTimeouts specified in inconsistent unitsAccording to our documentation, timeouts for MySQL and PostgreSQL are specified in seconds, while the same values for CQL are in milliseconds.
I think it's better to use milliseconds. The use case for this is that in HA scenarios, somet...According to our documentation, timeouts for MySQL and PostgreSQL are specified in seconds, while the same values for CQL are in milliseconds.
I think it's better to use milliseconds. The use case for this is that in HA scenarios, sometimes waiting for a second is too much and sub-second precision may be needed. Milliseconds is also the units used in HA.
The immediate reason why this popped up is NETCONF model definition.
However, our current documentation probably should be improved as well. We currently have the parameters explained several times, once for each backend.
Parameters affected: connect-timeout, reconnect-wait-time, request-timeout. There may be others I missed.backloghttps://gitlab.isc.org/isc-projects/kea/-/issues/133Discussion about ordering in configurations.2022-11-02T15:08:43ZFrancis DupontDiscussion about ordering in configurations.It concerns mainly subnets and client classes but most of this is generic, e.g. can be applied to shared networks:
- memory representation must use a multi index container with a sequenced or random access index to implement the order, ...It concerns mainly subnets and client classes but most of this is generic, e.g. can be applied to shared networks:
- memory representation must use a multi index container with a sequenced or random access index to implement the order, in particular we must to not add previous or next field to objects themselves.
- database representation must use previous and next columns in rows to implement a double linked list. First and last rows have a reserved previous or next value (e.g. id 0 for subnets).
- command hooks must add a before or after to insert command (vs always nsert at the end) and an easy way to get the order itself, e.g. the order list of entries used as index (subnet id, client class name, ...).
- optionally (i.e. not in 1.5) we can add a relocate command.backlog