ISC Open Source Projects issueshttps://gitlab.isc.org/groups/isc-projects/-/issues2023-09-21T18:21:11Zhttps://gitlab.isc.org/isc-projects/kea/-/issues/3049permit ddns-qualifying-suffix option in pool scope2023-09-21T18:21:11Zalimdipermit ddns-qualifying-suffix option in pool scopeHi Folks,
I'm happy with kea dhcp so far as it really fulfills the needs.
However when it come to ddns, I'm a bit frustrated as it's not possible to segragate pool clients in different dns zones.
ddns-qualifying-suffix is either global,...Hi Folks,
I'm happy with kea dhcp so far as it really fulfills the needs.
However when it come to ddns, I'm a bit frustrated as it's not possible to segragate pool clients in different dns zones.
ddns-qualifying-suffix is either global, shared network or subnet but **not** pool.
Let's say I want all defined client in a subnet (those with reservation) to have a fqdn foo.bar and the unknown ones (choosed from the pool) to have guest.foo.bar, didn't find a way to do it.
It would be really helpful to scope ddns-qualifying-suffix to poolbackloghttps://gitlab.isc.org/isc-projects/stork/-/issues/1161Linter and formatter for Ruby2023-09-22T10:07:43ZSlawek FigielLinter and formatter for RubyOut Rakefiles (written in Ruby) are no longer trivial. We should add the Ruby linter and formatter to force the consistent and proper coding style for these files.Out Rakefiles (written in Ruby) are no longer trivial. We should add the Ruby linter and formatter to force the consistent and proper coding style for these files.backloghttps://gitlab.isc.org/isc-projects/kea/-/issues/3056libdhcp_user_chk.so missing from isc-kea-hooks (2.4.0-isc20230630120747) pack...2023-09-23T09:04:56ZEddict NLlibdhcp_user_chk.so missing from isc-kea-hooks (2.4.0-isc20230630120747) package in Cloudsmith---
name: Bug report
about: Create a report to help us improve
---
**Describe the bug**
libdhcp_user_chk.so missing from isc-kea-hooks (2.4.0-isc20230630120747) package in Cloudsmith
**To Reproduce**
Steps to reproduce the behavior:
1...---
name: Bug report
about: Create a report to help us improve
---
**Describe the bug**
libdhcp_user_chk.so missing from isc-kea-hooks (2.4.0-isc20230630120747) package in Cloudsmith
**To Reproduce**
Steps to reproduce the behavior:
1. Add ISC Kea 2.4 Cloudsmith repository (https://dl.cloudsmith.io/public/isc/kea-2-4/deb/debian bookworm InRelease)
2. apt install (isc-kea and) isc-kea-hooks
3. there are 8 .so files in /usr/lib/x86_64-linux-gnu/kea/hooks/
4. libdhcp_user_chk.so is missing
**Expected behavior**
libdhcp_user_chk.so is installed as well
**Environment:**
- Kea version: 2.4.0 installed from repository
- OS: Debian GNU/Linux 12 (bookworm)
- Which features were compiled in: N/A
- If/which hooks where loaded in
**Additional Information**
N/A
**Contacting you**
How can ISC reach you to discuss this matter further? herenext-stable-2.6https://gitlab.isc.org/isc-projects/stork/-/issues/841Remove the annoying danger complaint about the commit message line length of ...2023-09-26T09:55:20ZMarcin SiodelskiRemove the annoying danger complaint about the commit message line length of 50 characters and dot presenceWe have discussed in #827 that we may potentially try to reconfigure danger to not require us to fit the commit message within the 50 characters line length. I am not in favor of allowing very very long commit messages but 50 characters ...We have discussed in #827 that we may potentially try to reconfigure danger to not require us to fit the commit message within the 50 characters line length. I am not in favor of allowing very very long commit messages but 50 characters seems short to me. If we can reconfigure it to 70-80 characters, fine. I'd be also fine with disabling this particular check. @slawek says it is possible.
We can also consider ignoring the warning message, so that the reviewer doesn't have to bother checking if the commit messages are fine by danger.outstandingMarcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/issues/2618Wshadow warnings2023-09-26T14:30:24ZAndrei Pavelandrei@isc.orgWshadow warningsI wasted time on figuring out why a test fails just to see that the wrong variable with the same name declared in a nested scope was used. Since then, I'm passing `-Wshadow` to my compilation flags to detect such situations beforehand. I...I wasted time on figuring out why a test fails just to see that the wrong variable with the same name declared in a nested scope was used. Since then, I'm passing `-Wshadow` to my compilation flags to detect such situations beforehand. I would like to reduce the noise outputted by these warnings throughout the Kea code. There are several. Here is one of them:
```
data.cc: In member function ‘virtual void isc::data::MapElement::toJSON(std::ostream&) const’:
data.cc:900:51: warning: declaration of ‘m’ shadows a member of ‘isc::data::MapElement’ [-Wshadow]
900 | const std::map<std::string, ConstElementPtr>& m = mapValue();
| ^
In file included from data.cc:9:
../../../src/lib/cc/data.h:702:44: note: shadowed declaration is here
702 | std::map<std::string, ConstElementPtr> m;
|
```next-stable-2.6https://gitlab.isc.org/isc-projects/kea/-/issues/2747unrecognized compiler flags2023-09-26T14:30:24ZAndrei Pavelandrei@isc.orgunrecognized compiler flagsCompiling Kea with the GNU compiler (`g++`) mentions an unrecognized flag because it's not compatible with said compiler:
```
cc1plus: note: unrecognized command-line option ‘-Wno-unused-private-field’ may have been intended to silence ...Compiling Kea with the GNU compiler (`g++`) mentions an unrecognized flag because it's not compatible with said compiler:
```
cc1plus: note: unrecognized command-line option ‘-Wno-unused-private-field’ may have been intended to silence earlier diagnostics
```
This flag is added in a Makefile. There are a few others like this.
Some include it inside the scope of `if USE_GXX`. I would instead remove these flags from Makefiles. Including a flag only for a library is arbitrary. If it should be included, it should either be for the entire repo, or not at all.
People who want to enable custom flags can use the `CXXFLAGS` environment variable which should be set before running `./configure`.
```
export CXXFLAGS="-Wno-unused-private-field"
./configure
```backloghttps://gitlab.isc.org/isc-projects/stork/-/issues/381Installing on Raspbian 10 (Debian 10) with package manager2023-09-27T18:27:38ZTalkaboutInstalling on Raspbian 10 (Debian 10) with package managerHi all,
I have a question as it seems that this is currently not possible: are there plans to provide a repository for Raspbian? I would like to install isc-stork-server and isc-stork-agent on a Raspberry. The current setup script is pu...Hi all,
I have a question as it seems that this is currently not possible: are there plans to provide a repository for Raspbian? I would like to install isc-stork-server and isc-stork-agent on a Raspberry. The current setup script is putting a repository URL that is not resolving correctly (apt-get update is not able to load the data). Or is there a special way this has to be set up?
Any help appreciated!
Thanks!outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/1328Kea and link time optimization2023-09-28T08:09:49ZFrancis DupontKea and link time optimizationThis ticket addressed two different goals:
- first to investigate if/how Kea can be build using -flto
- second fix bugs revealed by the -flto optionsThis ticket addressed two different goals:
- first to investigate if/how Kea can be build using -flto
- second fix bugs revealed by the -flto optionsoutstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/3092Query to add subnet into mySQL backend2023-09-28T13:21:17ZSandeep GagalapallyQuery to add subnet into mySQL backendHello, I need some help with adding a v4 and v6 subnet into mySQL backend via a query instead of using the cb_command hook . I tried looking at several sources but no luck.
Can you please share any documentation for adding a subnet dire...Hello, I need some help with adding a v4 and v6 subnet into mySQL backend via a query instead of using the cb_command hook . I tried looking at several sources but no luck.
Can you please share any documentation for adding a subnet directly to mySQL backend ?
I am running kea 2.4.0 with mySQL schema version 19.0.
Thank You.outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/2744Support standard DHCPv4 option `rfc3442-classless-static-routes` for kea-dhcp42023-09-28T13:40:20ZKaihang ZhangSupport standard DHCPv4 option `rfc3442-classless-static-routes` for kea-dhcp4Hi, all!
IIUC, the standard DHCPv4 option `static-routes` of current kea-dhcp4 (2.3.5) is classful static routes, the VLSM (Variable Length Subnet Mask) and CIDR are not supported.
Is there any plan to support DHCPv4 option `classless-...Hi, all!
IIUC, the standard DHCPv4 option `static-routes` of current kea-dhcp4 (2.3.5) is classful static routes, the VLSM (Variable Length Subnet Mask) and CIDR are not supported.
Is there any plan to support DHCPv4 option `classless-static-routes`? Or any workaround to support VLSM and CIDR for current kea-dhcp4?outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/3094Support for IPv6-only networks with RFC 8925 (v6-only-preferred)2023-09-28T14:31:07ZBrian CandlerSupport for IPv6-only networks with RFC 8925 (v6-only-preferred)**Some initial questions**
- Are you sure your feature is not already implemented in the latest Kea version? Yes
- Are you sure what you would like to do is not possible using some other mechanisms? Yes
- Have you discussed your idea on ...**Some initial questions**
- Are you sure your feature is not already implemented in the latest Kea version? Yes
- Are you sure what you would like to do is not possible using some other mechanisms? Yes
- Have you discussed your idea on kea-users or kea-dev mailing lists? Yes: https://lists.isc.org/pipermail/kea-users/2023-July/004207.html
**Is your feature request related to a problem? Please describe.**
In APRICOT 2024 next year, there will be a separate IPv6-only wifi network (in parallel with the main conference SSID). There's nothing new about that.
However, this year we want to ensure that clients will gracefully fall back to IPv6-only operation *and* make use of a NAT64 device to access the IPv4-only Internet via the client's embedded CLAT. MacOS, Android and iOS support this mode of operation. Full details are in the article here: https://labs.ripe.net/author/ondrej_caletka_1/deploying-ipv6-mostly-access-networks/
In summary, these clients will request option 108 in their (DHCPv4) discover request. The server should respond with yiaddr 0.0.0.0 and option 108. The client will then activate their CLAT, as long as they also get the NAT64 prefix from a separate field (PREF64) in the RA's.
Running ISC-KEA or ISC-DHCPD for the DHCPv4 service doesn't currently work well here. Well, it *does* work for those clients which support option 108. But for clients which don't, they will be offered an IPv4 address, and will configure their interface with it. This is supposed to be an IPv6-only network, and hence we don't want machines to pick up an IPv4 address. They will find they have failing connectivity when they try to use their IPv4 address.
*Not* running a DHCPv4 server at all is not an option, because the clients won't enable their CLAT unless they've successfully done the option 108 dance.
**Describe the solution you'd like**
I would like KEA to implement the following:
- Allow IPv4 subnets to have no pool
- Allow IPv4 subnets to have a flag for enabling v6-preferred
- In such a subnet, if a client requests option 108, then return yiaddr 0.0.0.0 with option 108
- (Optionally: if I client sents option 116, then return yiaddr 0.0.0.0 with option 116)
- Otherwise, if there's no pool, then do whatever you'd normally do when the pool is exhausted (presumably either send no response, or send a NAK)
(Option 116 is RFC 2563: it also returns yiaddr 0.0.0.0. It lets you tell a client *not* to configure a global v4 address, and also to tell it whether or not to configure a link-local address. In principle, it could also reduce DHCPv4 discovery chatter in networks without v4. However I mark this support "optionally" because I've not actually found a client which makes use of this option yet)
**Describe alternatives you've considered**
There's a discussion in the list at https://lists.isc.org/pipermail/kea-users/2023-July/004207.html
The key thing I need to make sure is that *no* IPv4 address is returned to a client unless it requests option 108.
Note that the client doesn't actually *send* option 108, it puts 108 in its parameter request list, and it seems to be quite tricky to handle this in KEA. The best I could come up with was:
```
"client-classes": [
{
"name": "rfc8925",
// We need to test whether option 108 is in the client's parameter request list (option 55).
// That's not the same as "option[108].exists"
// https://kea.readthedocs.io/en/latest/arm/classify.html#using-expressions-in-classification
"test": "substring(option[55].hex, 0, 1) == 0x6c
or substring(option[55].hex, 1, 1) == 0x6c or substring(option[55].hex, 2, 1) == 0x6c
or substring(option[55].hex, 3, 1) == 0x6c or substring(option[55].hex, 4, 1) == 0x6c
or substring(option[55].hex, 5, 1) == 0x6c or substring(option[55].hex, 6, 1) == 0x6c
or substring(option[55].hex, 7, 1) == 0x6c or substring(option[55].hex, 8, 1) == 0x6c
or substring(option[55].hex, 9, 1) == 0x6c or substring(option[55].hex, 10, 1) == 0x6c
or substring(option[55].hex, 11, 1) == 0x6c or substring(option[55].hex, 12, 1) == 0x6c"
},
],
```
(it's ugly and incomplete - what if the client send more than 13 options?)
Then avoid sending any response to clients which *don't* provide this option:
```
"pools": [
{
// Only give OFFERs to devices which support RFC 8925
"pool": "10.12.65.2 - 10.12.65.254",
"client-class": "rfc8925"
}
],
"option-data": [
{
"name": "v6-only-preferred",
"data": "0"
}
],
```
That kind-of works. It's still not entirely RFC 8925 compliant as it *should* set the yiaddr to 0.0.0.0 (I couldn't see how to do that with the non-commercial plugins) and it *shouldn't* need to consume an address from the pool, although I can make that pool arbitrarily large.
As described before: the option of *not* running DHCPv4 service doesn't work, because the clients won't activate their CLAT without having received option 108.
What I have ended up doing is writing some custom DHCPv4 server modules for a standalone Go DHCP server:
https://github.com/coredhcp/coredhcp/pull/170
**Additional context**
This is a demonstration network at a conference, so it's not exactly "production" but more is a technology demonstrator of how well an IPv6-only network with NAT64 could work.
When I've tested this locally, I find that IPv4 access via the NAT64 works nicely, even when using IPv4 literals. For example, "ping 8.8.8.8" or browse to https://1.1.1.1 work fine (except from Safari). The traffic is actually IPv6 across to the NAT64. No DNS64 is required.
We'd like to demonstrate this so people can evaluate the feasibility of real deployment of single-stack IPv6 networks now or in the future.
**Funding its development**
Only in-kind development contributions
**Participating in development**
Yes, willing to contribute to discussions and/or testing.
**Contacting you**
brian@nsrc.orgnext-stable-2.6https://gitlab.isc.org/isc-projects/stork/-/issues/1165Session manager is never closed.2023-10-03T13:47:21ZSlawek FigielSession manager is never closed.The session manager allocates two heavy resources:
- Database connection
- Forever running goroutine that operates on the database
These resources are never free. It should not be a problem in production as they are cleaned up by the o...The session manager allocates two heavy resources:
- Database connection
- Forever running goroutine that operates on the database
These resources are never free. It should not be a problem in production as they are cleaned up by the operating system on the application shutdown. But it may cause confusing issues in the development environment.backloghttps://gitlab.isc.org/isc-projects/stork/-/issues/1172Selecting user locale settings in Stork UI2023-10-03T13:56:54ZMarcin SiodelskiSelecting user locale settings in Stork UIIn the course of #958 review, we had a discussion about formatting of the float numbers in the subnet form. Right now, the subnet form accepts floats in the `0.5` format, rather than `0,5` format or other. The team members think that we ...In the course of #958 review, we had a discussion about formatting of the float numbers in the subnet form. Right now, the subnet form accepts floats in the `0.5` format, rather than `0,5` format or other. The team members think that we may have some way of selecting between US locale and custom locale. We should consider what such a knob would affect besides floats (e.g., dates). We should also have tooltips indicating how you can specify different values in the forms.backloghttps://gitlab.isc.org/isc-projects/bind9/-/issues/4272stress:rpz:fedora:38:arm64 crashed (async_restart at query.c:5843)2023-10-03T15:24:25ZMichal Nowakstress:rpz:fedora:38:arm64 crashed (async_restart at query.c:5843)After one minute runtime, the `stress:rpz:fedora:38:arm64` [crashed](https://gitlab.isc.org/isc-projects/bind9/-/jobs/3599502) on `main`.
```
Core was generated by `/builds/isc-projects/bind9/.local/usr/local/sbin/named -f -c ./named.co...After one minute runtime, the `stress:rpz:fedora:38:arm64` [crashed](https://gitlab.isc.org/isc-projects/bind9/-/jobs/3599502) on `main`.
```
Core was generated by `/builds/isc-projects/bind9/.local/usr/local/sbin/named -f -c ./named.conf'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x0000ffff9949e5e0 in async_restart (arg=0xffff15302000) at query.c:5843
5843 isc_mem_put(client->manager->mctx, qctx, sizeof(*qctx));
[Current thread is 1 (Thread 0xffff96cfe300 (LWP 24042))]
#0 0x0000ffff9949e5e0 in async_restart (arg=0xffff15302000) at query.c:5843
#1 0x0000ffff99755b10 in isc__async_cb (handle=<optimized out>) at async.c:111
#2 0x0000ffff98cda0c0 in uv__async_io (loop=0xffff974830a0, w=0xffff97483270, events=1) at /usr/src/libuv-v1.46.0/src/unix/async.c:176
#3 0x0000ffff98cf6d0c in uv__io_poll (loop=0xffff974830a0, timeout=5) at /usr/src/libuv-v1.46.0/src/unix/linux.c:1476
#4 0x0000ffff98cdb084 in uv_run (loop=0xffff974830a0, mode=UV_RUN_DEFAULT) at /usr/src/libuv-v1.46.0/src/unix/core.c:447
#5 0x0000ffff99768800 in loop_thread (arg=arg@entry=0xffff97483080) at loop.c:282
#6 0x0000ffff997787c8 in thread_body (wrap=wrap@entry=0x3e733a90) at thread.c:85
#7 0x0000ffff997787f8 in thread_run (wrap=0x3e733a90) at thread.c:100
#8 0x0000ffff9861bc74 in start_thread () from /lib64/libc.so.6
#9 0x0000ffff9868925c in thread_start () from /lib64/libc.so.6
```
[core.24039-backtrace.txt](/uploads/61b63bae17f042b4dc2d1153cc9948dc/core.24039-backtrace.txt)
[named.log](/uploads/10dd091e5632bfcc7457c0f367874b4b/named.log)
On [retry](https://gitlab.isc.org/isc-projects/bind9/-/jobs/3600371) it didn't immediately crash.Not plannedhttps://gitlab.isc.org/isc-projects/kea/-/issues/3090Move the krb5.conf config file in hammer2023-10-05T13:49:05ZFrancis DupontMove the krb5.conf config file in hammerWhen a Kerberos V library is installed a kerb5.conf config file is installed. Often it interferes with the gss_tig hook unit tests making some of them to fail. As documented in the ARM the default setting from this config file can be inc...When a Kerberos V library is installed a kerb5.conf config file is installed. Often it interferes with the gss_tig hook unit tests making some of them to fail. As documented in the ARM the default setting from this config file can be incompatible with these tests. The solution is to remove or rename it: this ticket is about doing this in hammer.next-stable-2.6https://gitlab.isc.org/isc-projects/kea/-/issues/3096No error message when I apply a different subnet with the same subnet id2023-10-05T20:40:41ZSandeep GagalapallyNo error message when I apply a different subnet with the same subnet idHi,
I was testing the premium hook command "remote-subnet4-set" to see if there is way to let the user know that there is an existing subnet-id , what happens is if I add a new subnet with the same subnet-id which I used before it gets...Hi,
I was testing the premium hook command "remote-subnet4-set" to see if there is way to let the user know that there is an existing subnet-id , what happens is if I add a new subnet with the same subnet-id which I used before it gets replaced instead of throwing an error or message in response. How can make these records unique ?
For example. If I send this command first and then lets say if another user uses the same id '2' , the config is getting replaced.
```
{
"command": "remote-subnet4-set",
"service": [
"dhcp4"
],
"arguments": {
"subnets": [
{
"id": 2,
"subnet": "192.0.2.0/24",
"shared-network-name": "",
"pools": [
{
"pool": "192.0.2.100 - 192.0.2.200",
}
]
}
],
"remote": {
"type": "mysql"
},
"server-tags": [
"all"
]
}
}
```
Thank You,
Sandeepnext-stable-2.6https://gitlab.isc.org/isc-projects/kea-docker/-/issues/24Add the latest, major, and major:minor tags2023-10-06T09:57:02ZSlawek FigielAdd the latest, major, and major:minor tagsIt is conventional to have some non-strict version tags of the image:
- `latest` - pins to the latest stable version
- `[MAJOR]` - major-only tag that pins to the latest version with a given major, and any minor and patch.
- `[MAJOR]:[M...It is conventional to have some non-strict version tags of the image:
- `latest` - pins to the latest stable version
- `[MAJOR]` - major-only tag that pins to the latest version with a given major, and any minor and patch.
- `[MAJOR]:[MINOR]` - major and minor-only tag that pins to the latest version with a given major and minor, and any patch.https://gitlab.isc.org/isc-projects/bind9/-/issues/534Allow only DNS64 reverse zone to be configured independently of the DNS64 clause2023-10-08T12:48:08ZMark AndrewsAllow only DNS64 reverse zone to be configured independently of the DNS64 clausedns64 currently configures both the DNS64 synthesis and a DNS64 reverse zone.
If a customer is using RFC 7050 (IPV4ONLY.ARPA) or some other mechanism to publish the NAT64 prefix but not DNS64 the reverse zone synthesis is still needed.dns64 currently configures both the DNS64 synthesis and a DNS64 reverse zone.
If a customer is using RFC 7050 (IPV4ONLY.ARPA) or some other mechanism to publish the NAT64 prefix but not DNS64 the reverse zone synthesis is still needed.https://gitlab.isc.org/isc-projects/stork/-/issues/738Demo: Auto cleanup deprecated demo2023-10-09T13:51:38ZSlawek FigielDemo: Auto cleanup deprecated demoThe issue was found during 1.3 sanity checks. [Source](https://gitlab.isc.org/isc-projects/stork/-/issues/732#note_285141)
I've been testing on 733aaea2cf70106719d8065de41eeacaec66c126 (master as of today). I like the new build system a...The issue was found during 1.3 sanity checks. [Source](https://gitlab.isc.org/isc-projects/stork/-/issues/732#note_285141)
I've been testing on 733aaea2cf70106719d8065de41eeacaec66c126 (master as of today). I like the new build system a lot. The elapsed build time is super useful, as is the general cleaning of the `rake` tasks.
I had some problems: some legacy images, running containers, and networks that disturbed the demo to startbacklogTomek MrugalskiTomek Mrugalskihttps://gitlab.isc.org/isc-projects/dhcp/-/issues/177DHCPOFFER is not sent out after a DCHPDISCOVER2023-10-09T21:28:22ZFredrik BlixDHCPOFFER is not sent out after a DCHPDISCOVERI have had a couple of incidents where the DHCPOFFER is not sent byt the DCHP-server. I have made some troubleshooting for this.
The actual set-up is one computer (tablet) that is connecting using ethernet to a computer hosting a DCHP-s...I have had a couple of incidents where the DHCPOFFER is not sent byt the DCHP-server. I have made some troubleshooting for this.
The actual set-up is one computer (tablet) that is connecting using ethernet to a computer hosting a DCHP-server. The configuration is not anything special.
- Software: **Internet Systems Consortium DHCP Server 4.4.1**
- [/etc/dhcp/dhcp-server](/uploads/845fea65189dcc4de9dd0ad903c96efb/dhcp-server)
- [/etc/dhcp/dhcpd.conf](/uploads/eeb8d49029fd1aca6533603a9741d1fe/dhcpd.conf)
- [/lib/systemd/system/dhcpd.service](/uploads/fdf276f374e06df3ec6cc1d9fb6d8f65/dhcpd.service)
In this specific case the logs starts at 09:14:10. At this point the tablet did not have any ip-adress and after re-plugging the ethenet dongle for the tablet the tablet start sending out the DHCPDISCOVER package. I would expect that the DHCP sever then would respond with DHCPOFFER, but nothing seems to happens. **At 09:15:50 i restart the DHCP-server and then the DCHP handshaking is successful.**
_Note: I changed the dhcpd.service `After=network.target` to `After=network-online.target`. This i made since this is an embedded system that want to start quickly. The `After=network.target` does not guarantee that the network devices are actually online. So, before this change the DCHP-server sometimes was started befort the `eth0` was up. [[Running Services After the Network is up](https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/)]_
_Note: The tcpdump was made on the same computer running the dhcpd._
### TCPDUMP of the problem
```
# tcpdump -vnes0 -i eth0 -vvv -s 0 port 67 or port 68
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
09:14:10.072207 00:05:1b:d5:20:60 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 348: (tos 0x10, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 334)
0.0.0.0.68 > 255.255.255.255.67: [udp sum ok] BOOTP/DHCP, Request from 00:05:1b:d5:20:60, length 306, xid 0xa57ed7f4, Flags [none] (0x0000)
Client-Ethernet-Address 00:05:1b:d5:20:60
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message Option 53, length 1: Discover
Client-ID Option 61, length 7: ether 00:05:1b:d5:20:60
MSZ Option 57, length 2: 1500
Vendor-Class Option 60, length 15: "android-dhcp-10"
Hostname Option 12, length 18: "Galaxy-Tab-Active3"
Parameter-Request Option 55, length 10:
Subnet-Mask, Default-Gateway, Domain-Name-Server, Domain-Name
MTU, BR, Lease-Time, RN
RB, Vendor-Option
END Option 255, length 0
09:14:11.054104 00:05:1b:d5:20:60 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 348: (tos 0x10, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 334)
0.0.0.0.68 > 255.255.255.255.67: [udp sum ok] BOOTP/DHCP, Request from 00:05:1b:d5:20:60, length 306, xid 0xa57ed7f4, Flags [none] (0x0000)
Client-Ethernet-Address 00:05:1b:d5:20:60
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message Option 53, length 1: Discover
Client-ID Option 61, length 7: ether 00:05:1b:d5:20:60
MSZ Option 57, length 2: 1500
Vendor-Class Option 60, length 15: "android-dhcp-10"
Hostname Option 12, length 18: "Galaxy-Tab-Active3"
Parameter-Request Option 55, length 10:
Subnet-Mask, Default-Gateway, Domain-Name-Server, Domain-Name
MTU, BR, Lease-Time, RN
RB, Vendor-Option
END Option 255, length 0
09:14:13.167741 00:05:1b:d5:20:60 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 348: (tos 0x10, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 334)
0.0.0.0.68 > 255.255.255.255.67: [udp sum ok] BOOTP/DHCP, Request from 00:05:1b:d5:20:60, length 306, xid 0xa57ed7f4, secs 3, Flags [none] (0x0000)
Client-Ethernet-Address 00:05:1b:d5:20:60
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message Option 53, length 1: Discover
Client-ID Option 61, length 7: ether 00:05:1b:d5:20:60
MSZ Option 57, length 2: 1500
Vendor-Class Option 60, length 15: "android-dhcp-10"
Hostname Option 12, length 18: "Galaxy-Tab-Active3"
Parameter-Request Option 55, length 10:
Subnet-Mask, Default-Gateway, Domain-Name-Server, Domain-Name
MTU, BR, Lease-Time, RN
RB, Vendor-Option
END Option 255, length 0
09:14:17.271799 00:05:1b:d5:20:60 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 348: (tos 0x10, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 334)
0.0.0.0.68 > 255.255.255.255.67: [udp sum ok] BOOTP/DHCP, Request from 00:05:1b:d5:20:60, length 306, xid 0xa57ed7f4, secs 7, Flags [none] (0x0000)
Client-Ethernet-Address 00:05:1b:d5:20:60
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message Option 53, length 1: Discover
Client-ID Option 61, length 7: ether 00:05:1b:d5:20:60
MSZ Option 57, length 2: 1500
Vendor-Class Option 60, length 15: "android-dhcp-10"
Hostname Option 12, length 18: "Galaxy-Tab-Active3"
Parameter-Request Option 55, length 10:
Subnet-Mask, Default-Gateway, Domain-Name-Server, Domain-Name
MTU, BR, Lease-Time, RN
RB, Vendor-Option
END Option 255, length 0
09:14:24.978766 00:05:1b:d5:20:60 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 348: (tos 0x10, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 334)
0.0.0.0.68 > 255.255.255.255.67: [udp sum ok] BOOTP/DHCP, Request from 00:05:1b:d5:20:60, length 306, xid 0xa57ed7f4, secs 14, Flags [none] (0x0000)
Client-Ethernet-Address 00:05:1b:d5:20:60
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message Option 53, length 1: Discover
Client-ID Option 61, length 7: ether 00:05:1b:d5:20:60
MSZ Option 57, length 2: 1500
Vendor-Class Option 60, length 15: "android-dhcp-10"
Hostname Option 12, length 18: "Galaxy-Tab-Active3"
Parameter-Request Option 55, length 10:
Subnet-Mask, Default-Gateway, Domain-Name-Server, Domain-Name
MTU, BR, Lease-Time, RN
RB, Vendor-Option
END Option 255, length 0
09:14:39.545719 00:05:1b:d5:20:60 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 348: (tos 0x10, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 334)
0.0.0.0.68 > 255.255.255.255.67: [udp sum ok] BOOTP/DHCP, Request from 00:05:1b:d5:20:60, length 306, xid 0xa57ed7f4, secs 29, Flags [none] (0x0000)
Client-Ethernet-Address 00:05:1b:d5:20:60
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message Option 53, length 1: Discover
Client-ID Option 61, length 7: ether 00:05:1b:d5:20:60
MSZ Option 57, length 2: 1500
Vendor-Class Option 60, length 15: "android-dhcp-10"
Hostname Option 12, length 18: "Galaxy-Tab-Active3"
Parameter-Request Option 55, length 10:
Subnet-Mask, Default-Gateway, Domain-Name-Server, Domain-Name
MTU, BR, Lease-Time, RN
RB, Vendor-Option
END Option 255, length 0
09:15:08.884878 00:05:1b:d5:20:60 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 348: (tos 0x10, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 334)
0.0.0.0.68 > 255.255.255.255.67: [udp sum ok] BOOTP/DHCP, Request from 00:05:1b:d5:20:60, length 306, xid 0xa57ed7f4, secs 58, Flags [none] (0x0000)
Client-Ethernet-Address 00:05:1b:d5:20:60
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message Option 53, length 1: Discover
Client-ID Option 61, length 7: ether 00:05:1b:d5:20:60
MSZ Option 57, length 2: 1500
Vendor-Class Option 60, length 15: "android-dhcp-10"
Hostname Option 12, length 18: "Galaxy-Tab-Active3"
Parameter-Request Option 55, length 10:
Subnet-Mask, Default-Gateway, Domain-Name-Server, Domain-Name
MTU, BR, Lease-Time, RN
RB, Vendor-Option
END Option 255, length 0
```
### TCPDUMP after the restart
```
09:16:10.107290 00:05:1b:d5:20:60 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 348: (tos 0x10, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 334)
0.0.0.0.68 > 255.255.255.255.67: [udp sum ok] BOOTP/DHCP, Request from 00:05:1b:d5:20:60, length 306, xid 0xa57ed7f4, secs 119, Flags [none] (0x0000)
Client-Ethernet-Address 00:05:1b:d5:20:60
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message Option 53, length 1: Discover
Client-ID Option 61, length 7: ether 00:05:1b:d5:20:60
MSZ Option 57, length 2: 1500
Vendor-Class Option 60, length 15: "android-dhcp-10"
Hostname Option 12, length 18: "Galaxy-Tab-Active3"
Parameter-Request Option 55, length 10:
Subnet-Mask, Default-Gateway, Domain-Name-Server, Domain-Name
MTU, BR, Lease-Time, RN
RB, Vendor-Option
END Option 255, length 0
09:16:11.108417 b8:27:eb:a7:92:ec > 00:05:1b:d5:20:60, ethertype IPv4 (0x0800), length 342: (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328)
10.42.102.2.67 > 10.42.102.150.68: [udp sum ok] BOOTP/DHCP, Reply, length 300, xid 0xa57ed7f4, secs 119, Flags [none] (0x0000)
Your-IP 10.42.102.150
Client-Ethernet-Address 00:05:1b:d5:20:60
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message Option 53, length 1: Offer
Server-ID Option 54, length 4: 10.42.102.2
Lease-Time Option 51, length 4: 600
Subnet-Mask Option 1, length 4: 255.255.255.0
Default-Gateway Option 3, length 4: 10.42.102.2
Domain-Name-Server Option 6, length 8: 8.8.8.8,8.8.4.4
Domain-Name Option 15, length 17: "domain.thoreb.com"
END Option 255, length 0
PAD Option 0, length 0, occurs 3
09:16:11.156340 00:05:1b:d5:20:60 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 360: (tos 0x10, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 346)
0.0.0.0.68 > 255.255.255.255.67: [udp sum ok] BOOTP/DHCP, Request from 00:05:1b:d5:20:60, length 318, xid 0xa57ed7f4, secs 121, Flags [none] (0x0000)
Client-Ethernet-Address 00:05:1b:d5:20:60
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message Option 53, length 1: Request
Client-ID Option 61, length 7: ether 00:05:1b:d5:20:60
Requested-IP Option 50, length 4: 10.42.102.150
Server-ID Option 54, length 4: 10.42.102.2
MSZ Option 57, length 2: 1500
Vendor-Class Option 60, length 15: "android-dhcp-10"
Hostname Option 12, length 18: "Galaxy-Tab-Active3"
Parameter-Request Option 55, length 10:
Subnet-Mask, Default-Gateway, Domain-Name-Server, Domain-Name
MTU, BR, Lease-Time, RN
RB, Vendor-Option
END Option 255, length 0
09:16:11.156993 b8:27:eb:a7:92:ec > 00:05:1b:d5:20:60, ethertype IPv4 (0x0800), length 342: (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328)
10.42.102.2.67 > 10.42.102.150.68: [udp sum ok] BOOTP/DHCP, Reply, length 300, xid 0xa57ed7f4, secs 121, Flags [none] (0x0000)
Your-IP 10.42.102.150
Client-Ethernet-Address 00:05:1b:d5:20:60
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message Option 53, length 1: ACK
Server-ID Option 54, length 4: 10.42.102.2
Lease-Time Option 51, length 4: 600
Subnet-Mask Option 1, length 4: 255.255.255.0
Default-Gateway Option 3, length 4: 10.42.102.2
Domain-Name-Server Option 6, length 8: 8.8.8.8,8.8.4.4
Domain-Name Option 15, length 17: "domain.thoreb.com"
END Option 255, length 0
PAD Option 0, length 0, occurs 3
```
### Log from the dhcpd server
```
# journalctl -u dhcpd -f
-- Logs begin at Fri 2020-03-27 08:04:30 UTC. --
Mar 29 08:21:46 U1CB2-postbus systemd[1]: Starting DHCPv4 Server Daemon...
Mar 29 08:21:46 U1CB2-postbus systemd[1]: Started DHCPv4 Server Daemon.
Mar 29 08:21:46 U1CB2-postbus dhcpd[515]: Internet Systems Consortium DHCP Server 4.4.1
Mar 29 08:21:46 U1CB2-postbus dhcpd[515]: Copyright 2004-2018 Internet Systems Consortium.
Mar 29 08:21:46 U1CB2-postbus dhcpd[515]: All rights reserved.
Mar 29 08:21:46 U1CB2-postbus dhcpd[515]: For info, please visit https://www.isc.org/software/dhcp/
Mar 29 08:21:46 U1CB2-postbus dhcpd[515]: Wrote 0 leases to leases file.
Mar 29 08:21:46 U1CB2-postbus dhcpd[515]: Server starting service.
Mar 29 09:15:50 U1CB2-postbus dhcpd[515]: Received signal 15, initiating shutdown.
Mar 29 09:15:50 U1CB2-postbus systemd[1]: Stopping DHCPv4 Server Daemon...
Mar 29 09:15:50 U1CB2-postbus systemd[1]: dhcpd.service: Succeeded.
Mar 29 09:15:50 U1CB2-postbus systemd[1]: Stopped DHCPv4 Server Daemon.
Mar 29 09:15:50 U1CB2-postbus systemd[1]: Starting DHCPv4 Server Daemon...
Mar 29 09:15:50 U1CB2-postbus systemd[1]: Started DHCPv4 Server Daemon.
Mar 29 09:15:50 U1CB2-postbus dhcpd[5866]: Internet Systems Consortium DHCP Server 4.4.1
Mar 29 09:15:50 U1CB2-postbus dhcpd[5866]: Copyright 2004-2018 Internet Systems Consortium.
Mar 29 09:15:50 U1CB2-postbus dhcpd[5866]: All rights reserved.
Mar 29 09:15:50 U1CB2-postbus dhcpd[5866]: For info, please visit https://www.isc.org/software/dhcp/
Mar 29 09:15:50 U1CB2-postbus dhcpd[5866]: Wrote 0 leases to leases file.
Mar 29 09:15:50 U1CB2-postbus dhcpd[5866]: Server starting service.
Mar 29 09:16:10 U1CB2-postbus dhcpd[5866]: DHCPDISCOVER from 00:05:1b:d5:20:60 via eth0
Mar 29 09:16:11 U1CB2-postbus dhcpd[5866]: DHCPOFFER on 10.42.102.150 to 00:05:1b:d5:20:60 (Galaxy-Tab-Active3) via eth0
Mar 29 09:16:11 U1CB2-postbus dhcpd[5866]: DHCPREQUEST for 10.42.102.150 (10.42.102.2) from 00:05:1b:d5:20:60 (Galaxy-Tab-Active3) via eth0
Mar 29 09:16:11 U1CB2-postbus dhcpd[5866]: DHCPACK on 10.42.102.150 to 00:05:1b:d5:20:60 (Galaxy-Tab-Active3) via eth0
```