dhcpd does not answer DHCPDISCOVER from systemd-networkd

Frederik Himpe frederik at frehi.be
Tue Feb 25 09:40:30 UTC 2020


I have a Debian Buster server running dhcpd version 4.4.1-2 an a client
with Ubuntu 18.04. When I use systemd-netword to get an IP using DHCP,
the server does not answer the DHCPDISCOVER. However, when I run
dhclient instead, dhcpd does answer the DHCPDISCOVER. Also PXE booting
works.

The server logs this when using systemd-networkd:
dhcpd[1227]: DHCPDISCOVER from 04:0e:3c:a3:b2:79 via eth0: network AI: no free leases

With dhclient it says:
dhcpd[1227]: DHCPDISCOVER from 04:0e:3c:a3:b2:79 (aiexp1) via eth0
dhcpd[1227]: DHCPOFFER on 192.168.0.20 to 04:0e:3c:a3:b2:79 (aiexp1) via eth0
dhcpd[1227]: DHCPREQUEST for 192.168.0.20 (192.168.0.1) from 04:0e:3c:a3:b2:79 (aiexp1) via eth0
dhcpd[1227]: DHCPACK on 192.168.0.120 to 04:0e:3c:a3:b2:79 (aiexp1) via eth0

dhcpd.conf roughly looks like this:

shared-network "AI" {
	subnet 192.168.0.0 netmask 255.255.255.0 {
		authoritative;
                option subnet-mask 255.255.255.0;
                option broadcast-address 192.168.0.255;
                option routers 192.168.0.1;
		pool {
			allow members of "AI";
			range 192.168.0.10 192.168.0.50;
		}
		pool {
			allow members of "BI";
			range 192.168.0.100 192.168.0.150
		}
	}
	subnet 192.168.1.0 netmask 255.255.255.0 {
		[...]
	}

	group {
		allow bootp;
                next-server 192.168.0.2;
                if option arch = 00:07 {
                        filename "fai/efi/x86_64-efi/core.efi";
                } else {
                        filename "fai/pxelinux.0";
                }
                host aiexp1 {
                        hardware ethernet 04:0E:3C:A3:B2:79;
                }
        }
}

subclass "AI" 1:04:0e:3c:a3:b2:79;


tcpdump on the server while using systemd-networkd as client:
15:43:51.989154 IP (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 316)
    0.0.0.0.bootpc > 255.255.255.255.bootps: [udp sum ok] BOOTP/DHCP, Request from 04:0e:3c:a3:b2:79 (oui Unknown), length 288, xid 0x488b21d8, secs 1, Flags [none] (0x0000)
	  Client-Ethernet-Address 04:0e:3c:a3:b2:79 (oui Unknown)
	  Vendor-rfc1048 Extensions
	    Magic Cookie 0x63825363
	    DHCP-Message Option 53, length 1: Discover
	    Client-ID Option 61, length 19: hardware-type 255, b6:22:0f:eb:00:02:00:00:ab:11:f0:a4:5a:73:5e:e8:d2:07
	    Parameter-Request Option 55, length 9: 
	      Subnet-Mask, Default-Gateway, Hostname, Domain-Name
	      Domain-Name-Server, MTU, Static-Route, Classless-Static-Route
	      NTP
	    MSZ Option 57, length 2: 576
	    Hostname Option 12, length 6: "aiexp1"
	    END Option 255, length 0

While using dhclient:
15:56:27.094705 IP (tos 0x0, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328)
    0.0.0.0.bootpc > 255.255.255.255.bootps: [udp sum ok] BOOTP/DHCP, Request from 04:0e:3c:a3:b2:79 (oui Unknown), length 300, xid 0xdce3353c, secs 8, Flags [none] (0x0000)
	  Client-Ethernet-Address 04:0e:3c:a3:b2:79 (oui Unknown)
	  Vendor-rfc1048 Extensions
	    Magic Cookie 0x63825363
	    DHCP-Message Option 53, length 1: Discover
	    Hostname Option 12, length 6: "aiexp1"
	    Parameter-Request Option 55, length 13: 
	      Subnet-Mask, BR, Time-Zone, Default-Gateway
	      Domain-Name, Domain-Name-Server, Option 119, Hostname
	      Netbios-Name-Server, Netbios-Scope, MTU, Classless-Static-Route
	      NTP
	    END Option 255, length 0
	    PAD Option 0, length 0, occurs 33
15:56:28.096165 IP (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 329)
    dhcp.example.com.bootps > ai20.example.com.bootpc: [udp sum ok] BOOTP/DHCP, Reply, length 301, xid 0xdce3353c, secs 8, Flags [none] (0x0000)
	  Your-IP ai20.example.com
	  Server-IP ai02.example.com
	  Client-Ethernet-Address 04:0e:3c:a3:b2:79 (oui Unknown)
	  file "fai/pxelinux.0"
	  Vendor-rfc1048 Extensions
	    Magic Cookie 0x63825363
	    DHCP-Message Option 53, length 1: Offer
	    Server-ID Option 54, length 4: dhcp.example.com
	    Lease-Time Option 51, length 4: 2941
	    Subnet-Mask Option 1, length 4: 255.255.255.0
	    BR Option 28, length 4: 192.168.0.255
	    Default-Gateway Option 3, length 4: 192.168.0.1
	    Domain-Name Option 15, length 9: "example.com"
	    Domain-Name-Server Option 6, length 8: ns1.example.com,ns2.example.com
	    Netbios-Name-Server Option 44, length 4: file.example.com
	    END Option 255, length 0



How can I make dhcpd answer the systemd-networkd DHCPDISCOVER request too?

-- 
Frederik Himpe <frederik at frehi.be>



More information about the dhcp-users mailing list