Now DHCP has decided to quit

(rant) this has been a messy week. I added IPv6. Things that have worked for years have quit. Ugh.(/rant)

For no apparent reason dhcpd (v4) has decided to not work.

$ systemctl start dhcpd.service 
Job for dhcpd.service failed because the control process exited with error code.
See "systemctl  status dhcpd.service" and "journalctl  -xe" for details.

Journal:

2019-11-16T21:27:57-0700 sma-server3 dhcpd[29103]: Starting ISC DHCPv4 Server
2019-11-16T21:27:57-0700 sma-server3 dhcpd[29103]:   please see /var/log/rc.dhcpd.log for details ..failed
2019-11-16T21:27:57-0700 sma-server3 systemd[1]: dhcpd.service: Control process exited, code=exited status=1
2019-11-16T21:27:57-0700 sma-server3 systemd[1]: Failed to start ISC DHCPv4 Server.
2019-11-16T21:27:57-0700 sma-server3 systemd[1]: dhcpd.service: Unit entered failed state.
2019-11-16T21:27:57-0700 sma-server3 systemd[1]: dhcpd.service: Failed with result 'exit-code'.

rc.dhcpd.log

Config file: /etc/dhcpd.conf
Database file: /db/dhcpd.leases
PID file: /var/run/dhcpd.pid
Wrote 0 deleted host decls to leases file.
Wrote 0 new dynamic host decls to leases file.
Wrote 39 leases to leases file.

No subnet declaration for eth0 (no IPv4 addresses).
** Ignoring requests on eth0.  If this is not what
   you want, please write a subnet declaration
   in your dhcpd.conf file for the network segment
   to which interface eth0 is attached. **
Not configured to listen on any interfaces!

dhcp subnet that is supposedly “undeclared”. There has been no problem with this for years.

subnet 192.168.69.0 netmask 255.255.255.0 {
        option time-servers time.sma.com;
        option domain-name "sma.com";
        authoritative;
        ddns-updates on;
        range dynamic-bootp 192.168.69.200 192.168.69.239;
        default-lease-time 14400;
        max-lease-time 172800;
        zone sma.com. {
                primary 192.168.69.246;
                key smacom;
                }
        zone 69.168.192.rev. {
                primary 192.168.69.246;
                key smacom;
                }
        }

dhcpd may be started before interface is up and has address.

I have started it manually (systemctl start dhcpd.service), well after the interface is ready and has been operating for a while.
I have tried stripping the subnet definition to its minimum. No joy.

I get:


Nov 17 14:33:38 erlangen systemd[1]: Starting ISC DHCPv4 Server...
-- Subject: A start job for unit dhcpd.service has begun execution
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- A start job for unit dhcpd.service has begun execution.
-- 
-- The job identifier is 6602.
**Nov 17 14:33:38 erlangen dhcpd[7947]: Starting ISC DHCPv4 Server ... set DHCPD_INTERFACE in /etc/sysconfig/dhcpd..skipped
Nov 17 14:33:38 erlangen systemd[1]: dhcpd.service: Control process exited, code=exited, status=6/NOTCONFIGURED**
-- Subject: Unit process exited
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- An ExecStart= process belonging to unit dhcpd.service has exited.
-- 
-- The process' exit code is 'exited' and its exit status is 6.
Nov 17 14:33:38 erlangen systemd[1]: dhcpd.service: Failed with result 'exit-code'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- The unit dhcpd.service has entered the 'failed' state with result 'exit-code'.
Nov 17 14:33:38 erlangen systemd[1]: Failed to start ISC DHCPv4 Server.
-- Subject: A start job for unit dhcpd.service has failed
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- A start job for unit dhcpd.service has finished with a failure.
-- 
-- The job identifier is 6602 and the job result is failed.

What is your DHCPD_INTERFACE?

erlangen:~ # head  /etc/dhcpd.conf
# /etc/dhcpd.conf
#
# Sample configuration file for ISC dhcpd
#
# *** PLEASE CONFIGURE IT FIRST ***
#
# Don't forget to set the DHCPD_INTERFACE in the
# /etc/sysconfig/dhcpd file.
#

erlangen:~ # 

Inspect the contents of your /etc/dhcpd.conf file, specifically looking for your subnet mask.

If necessary, rename the file and re-create the configuration.
Are you using the YaST DHCP server module or are you configuring some other way?

TSU

I have. I removed some older entries that are no longer relevant. No changed.

If necessary, rename the file and re-create the configuration.

Did that. No change.
dhcpd.conf is very barren now:

option domain-name "sma.com";
option domain-name-servers 192.168.69.246;
option routers 192.168.69.1;
default-lease-time 14400;
ddns-update-style none;
subnet 192.168.69.0 netmask 255.255.255.0 {
  range 192.168.69.200 192.168.69.240;
  default-lease-time 14400;
  max-lease-time 172800;
}

Are you using the YaST DHCP server module or are you configuring some other way?

I have used the Yast facility.
I have used Webmin to modify the conf.
I have manually (re-)created the conf.
I had done none of those previous to its failure to launch this week.
It does not matter. Always the same error (see the OP).

What matters on my machine:

erlangen:~ # grep -v ^\# /etc/sysconfig/dhcpd 
**DHCPD_INTERFACE="enp0s31f6"**
DHCPD6_INTERFACE=""
DHCPD_IFUP_RESTART=""
DHCPD6_IFUP_RESTART=""
DHCPD_RUN_CHROOTED="yes"
DHCPD6_RUN_CHROOTED="yes"
DHCPD_CONF_INCLUDE_FILES="/etc/dhcpd.d"
DHCPD6_CONF_INCLUDE_FILES="/etc/dhcpd6.d"
DHCPD_RUN_AS="dhcpd"
DHCPD6_RUN_AS="dhcpd"
DHCPD_OTHER_ARGS=""
DHCPD6_OTHER_ARGS=""
erlangen:~ # 

Added DHCPD_INTERFACE=“enp0s31f6” to file and started dhcpd:

erlangen:~ # systemctl status dhcpd.service
● dhcpd.service - ISC DHCPv4 Server
   Loaded: loaded (/usr/lib/systemd/system/dhcpd.service; disabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/dhcpd.service.d
           └─override.conf
   Active: active (running) since Mon 2019-11-18 05:52:52 CET; 6min ago
  Process: 2777 ExecStart=/usr/lib/dhcp/dhcpd -4 start (code=exited, status=0/SUCCESS)
 Main PID: 3150 (dhcpd)
    Tasks: 1 (limit: 4915)
   Memory: 5.9M
   CGroup: /system.slice/dhcpd.service
           └─3150 /usr/sbin/dhcpd -4 -cf /etc/dhcpd.conf -pf /var/run/dhcpd.pid -chroot /var/lib/dhcp -lf /db/dhcpd.leases -user dhcpd -group nogroup enp0s31f6

Nov 18 05:52:52 erlangen dhcpd[3138]: Config file: /etc/dhcpd.conf
Nov 18 05:52:52 erlangen dhcpd[3138]: Database file: /db/dhcpd.leases
Nov 18 05:52:52 erlangen dhcpd[3138]: PID file: /var/run/dhcpd.pid
Nov 18 05:52:52 erlangen dhcpd[3138]: Wrote 0 leases to leases file.
Nov 18 05:52:52 erlangen dhcpd[3138]: Listening on LPF/enp0s31f6/......./192.168.178.0/24
Nov 18 05:52:52 erlangen dhcpd[3138]: Sending on   LPF/enp0s31f6/....../192.168.178.0/24
Nov 18 05:52:52 erlangen dhcpd[3138]: Sending on   Socket/fallback/fallback-net
Nov 18 05:52:52 erlangen dhcpd[3150]: Server starting service.
Nov 18 05:52:52 erlangen dhcpd[2777]: Starting ISC DHCPv4 Server [chroot]..done
Nov 18 05:52:52 erlangen systemd[1]: Started ISC DHCPv4 Server.
erlangen:~ # 

The value for “DHCPD_INTERFACE” has been set and untouched for a ling time.

$ grep -v ^\# /etc/sysconfig/dhcpd
DHCPD6_OTHER_ARGS=""
DHCPD_RUN_AS="dhcpd"
DHCPD_OTHER_ARGS=""
DHCPD6_RUN_AS="dhcpd"
DHCPD6_BINARY=""
**DHCPD_INTERFACE="eth0"**
DHCPD_RUN_CHROOTED="yes"
DHCPD6_INTERFACE="eth0"
DHCPD_BINARY=""
DHCPD_IFUP_RESTART=""
DHCPD6_CONF_INCLUDE_FILES=""
DHCPD_CONF_INCLUDE_FILES="/etc/named.d/sma-com.tsig"
DHCPD6_IFUP_RESTART=""
DHCPD6_RUN_CHROOTED="yes"

What is the output of ‘ip l’?

My subnet is:

subnet 192.168.178.0 netmask 255.255.255.0 {
    option routers fritz.box;
  }
$ ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:24:8c:9a:f4:f4 brd ff:ff:ff:ff:ff:ff

Same as here. You may test a minimal configuration (and add more options if it works):

erlangen:~ # grep -v ^\# /etc/dhcpd.conf 
subnet 192.168.178.0 netmask 255.255.255.0 {
    option routers fritz.box;
  }
erlangen:~ # 

Did you disable IPv4 when you enabled IPv6?
In other words, how did you enable IPv6?
There is no IPv4 address at all configured for eth0.

You’ll need to configure an IPv4 address (preferably static) and make sure IPv4 hasn’t been disabled.
Reviewing your posts, I don’t see that you’ve posted your etho interface file.

TSU

No.

In other words, how did you enable IPv6?

I enabled a DHCPD6 service on another host. It had a RA as well.

There is no IPv4 address at all configured for eth0.

True. There was an option to add a (secondary?) IPv4 address, which I did.

You’ll need to configure an IPv4 address (preferably static)

Bingo!
Yes, by replacing the IPv6 address with an IPv4 address, DHCP started as expected.
It would seem that the secondary IPv4 entry was insufficient.