How to:
Every server that is supposed to offer the DHCP service requires a DHCP server entry in the LDAP directory.
Normally, the entry does not have to be created manually, but is created by the join script of the univention-dhcp
package.
Documantation:
Administration of DHCP server entries
Default configuration
Step 1: Install the package
On the system you want to be the DHCP server, install the dhcp-server
package.
univention-install univention-dhcp
Check if all needed packages are installed.
dpkg -l | grep dhcp
ii isc-dhcp-client 4.4.1-2+deb10u3A~5.0.4.202303131602 amd64 DHCP client for automatically obtaining an IP address
ii isc-dhcp-common 4.4.1-2+deb10u3A~5.0.4.202303131602 amd64 common manpages relevant to all of the isc-dhcp packages
ii isc-dhcp-server 4.4.1-2+deb10u3A~5.0.4.202303131602 amd64 ISC DHCP server for automatic IP address assignment
ii isc-dhcp-server-ldap 4.4.1-2+deb10u3A~5.0.4.202303131602 amd64 DHCP server that uses LDAP as its backend
ii univention-dhcp 14.0.7-1A~5.0.0.202302032008 all UCS - DHCP server
Step 2: Run the join-script
Execute the following join-script to automatically create the DHCP service
and DHCP server
.
univention-run-join-scripts --run-scripts --force 25univention-dhcp.inst
Custom configuration
Step 1: Install the package
On the system you want to be the DHCP server, install the dhcp-server
package.
univention-install univention-dhcp
Check if all needed packages are installed.
dpkg -l | grep dhcp
ii isc-dhcp-client 4.4.1-2+deb10u3A~5.0.4.202303131602 amd64 DHCP client for automatically obtaining an IP address
ii isc-dhcp-common 4.4.1-2+deb10u3A~5.0.4.202303131602 amd64 common manpages relevant to all of the isc-dhcp packages
ii isc-dhcp-server 4.4.1-2+deb10u3A~5.0.4.202303131602 amd64 ISC DHCP server for automatic IP address assignment
ii isc-dhcp-server-ldap 4.4.1-2+deb10u3A~5.0.4.202303131602 amd64 DHCP server that uses LDAP as its backend
ii univention-dhcp 14.0.7-1A~5.0.0.202302032008 all UCS - DHCP server
Step 2: Create the DHCP service
Hint
Do not use spaces for the DHCP service name, otherwise parsing errors will occur. Please only use hyphens- or underscores_ to separate names.
Create the DHCP service
Name the DHCP service
Step 3: Create the DHCP server
For the DHCP service
you have to create the DHCP server
.
You have to use the Host
name as the DHCP server
name.
Step 4: Create a Subnet for DHCP
You have to create a Subnet
, so that it can be used for DHCP.
Define the Subnet
with your network settings.
Finished configuration in the UMC
.
Hint
If no subnet is defined, the DHCP service will not start correctly and you could get the following error message.
systemctl status isc-dhcp-server.service
● isc-dhcp-server.service - ISC DHCP Server for IPv4
Loaded: loaded (/etc/init.d/isc-dhcp-server; generated)
Drop-In: /usr/lib/systemd/system/isc-dhcp-server.service.d
└─univention-dhcp.conf
Active: activating (auto-restart) (Result: exit-code) since Mon 2024-04-15 11:06:28 CEST; 3s ago
Docs: man:systemd-sysv-generator(8)
man:dhcpd(8)
Process: 9739 ExecStartPre=/bin/touch /var/lib/dhcp/dhcpd.leases (code=exited, status=0/SUCCESS)
Process: 9740 ExecStartPre=/usr/sbin/dhcpd -t -4 -q -cf /etc/dhcp/dhcpd.conf (code=exited, status=0/SUCCESS)
Process: 9741 ExecStart=/usr/sbin/dhcpd -f -4 -q -cf /etc/dhcp/dhcpd.conf $INTERFACESv4 (code=exited, status=1/FAILURE)
Main PID: 9741 (code=exited, status=1/FAILURE)
Apr 15 11:06:28 ucs5replica systemd[1]: isc-dhcp-server.service: Main process exited, code=exited, status=1/FAILURE
Apr 15 11:06:28 ucs5replica systemd[1]: isc-dhcp-server.service: Failed with result 'exit-code'.
/var/log/daemon.log
Apr 15 10:10:05 ucs5replica dhcpd[6079]: No subnet declaration for eth0 (10.200.30.102).
Apr 15 10:10:05 ucs5replica dhcpd[6079]: ** Ignoring requests on eth0. If this is not what
Apr 15 10:10:05 ucs5replica dhcpd[6079]: you want, please write a subnet declaration
Apr 15 10:10:05 ucs5replica dhcpd[6079]: in your dhcpd.conf file for the network segment
Apr 15 10:10:05 ucs5replica dhcpd[6079]: to which interface eth0 is attached. **
Apr 15 10:10:05 ucs5replica dhcpd[6079]:
Apr 15 10:10:05 ucs5replica dhcpd[6079]:
Apr 15 10:10:05 ucs5replica dhcpd[6079]: Not configured to listen on any interfaces!
Apr 15 10:10:05 ucs5replica dhcpd[6079]:
Apr 15 10:10:05 ucs5replica dhcpd[6079]: If you think you have received this message due to a bug rather
Apr 15 10:10:05 ucs5replica dhcpd[6079]: than a configuration issue please read the section on submitting
Apr 15 10:10:05 ucs5replica dhcpd[6079]: bugs on either our web page at www.isc.org or in the README file
Apr 15 10:10:05 ucs5replica dhcpd[6079]: before submitting a bug. These pages explain the proper
Apr 15 10:10:05 ucs5replica dhcpd[6079]: process and the information we find helpful for debugging.
Apr 15 10:10:05 ucs5replica dhcpd[6079]:
Apr 15 10:10:05 ucs5replica dhcpd[6079]: exiting.
Apr 15 10:10:05 ucs5replica systemd[1]: isc-dhcp-server.service: Main process exited, code=exited, status=1/FAILURE
Apr 15 10:10:05 ucs5replica systemd[1]: isc-dhcp-server.service: Failed with result 'exit-code'.
Step 5: Run the join-script
Execute the univention-dhcp
installation script on the System, you want to use as DHCP server
and use your Administrator credentials.
univention-run-join-scripts --run-scripts --force 25univention-dhcp.inst
univention-run-join-scripts: runs all join scripts existing on local computer.
copyright (c) 2001-2023 Univention GmbH, Germany
Enter Primary Directory Node Account : Administrator
Enter Primary Directory Node Password:
Search LDAP binddn: done
Running pre-joinscripts hook(s): done
Running 25univention-dhcp.inst done
Running post-joinscripts hook(s): done
Step 6: Restart the service
Restart the service for DHCP
and check that all is working correctly.
systemctl restart isc-dhcp-server.service
systemctl status isc-dhcp-server.service
● isc-dhcp-server.service - ISC DHCP Server for IPv4
Loaded: loaded (/etc/init.d/isc-dhcp-server; generated)
Drop-In: /usr/lib/systemd/system/isc-dhcp-server.service.d
└─univention-dhcp.conf
Active: active (running) since Mon 2024-04-15 13:06:59 CEST; 15min ago
Docs: man:systemd-sysv-generator(8)
man:dhcpd(8)
Process: 16140 ExecStartPre=/bin/touch /var/lib/dhcp/dhcpd.leases (code=exited, status=0/SUCCESS)
Process: 16141 ExecStartPre=/usr/sbin/dhcpd -t -4 -q -cf /etc/dhcp/dhcpd.conf (code=exited, status=0/SUCCESS)
Main PID: 16142 (dhcpd)
Tasks: 1 (limit: 2345)
Memory: 7.0M
CGroup: /system.slice/isc-dhcp-server.service
└─16142 /usr/sbin/dhcpd -f -4 -q -cf /etc/dhcp/dhcpd.conf
Apr 15 13:22:32 ucs5replica dhcpd[16142]: DHCPDISCOVER from 52:54:00:41:56:e9 via eth0
Apr 15 13:22:32 ucs5replica dhcpd[16142]: DHCPOFFER on 10.200.30.22 to 52:54:00:41:56:e9 via eth0
Apr 15 13:22:38 ucs5replica dhcpd[16142]: DHCPDISCOVER from 52:54:00:ad:9f:ca via eth0
Apr 15 13:22:38 ucs5replica dhcpd[16142]: DHCPOFFER on 10.200.30.20 to 52:54:00:ad:9f:ca via eth0
Apr 15 13:22:38 ucs5replica dhcpd[16142]: DHCPDISCOVER from 52:54:00:41:56:e9 via eth0
Apr 15 13:22:38 ucs5replica dhcpd[16142]: DHCPOFFER on 10.200.30.22 to 52:54:00:41:56:e9 via eth0
Apr 15 13:22:48 ucs5replica dhcpd[16142]: DHCPDISCOVER from 52:54:00:8d:f6:b5 via eth0
Apr 15 13:22:48 ucs5replica dhcpd[16142]: DHCPOFFER on 10.200.30.28 to 52:54:00:8d:f6:b5 via eth0
Apr 15 13:22:51 ucs5replica dhcpd[16142]: DHCPDISCOVER from 52:54:00:8d:f6:b5 via eth0
Apr 15 13:22:51 ucs5replica dhcpd[16142]: DHCPOFFER on 10.200.30.28 to 52:54:00:8d:f6:b5 via eth0