Since this change
ifupdown had been adding the -i parameter to dhclient.
-i Use a DUID with DHCPv4 clients.
But here is a fix: this change
went to ifupdown 0.8.36 and makes the -i option optional.
This is kind of documented in the (new enough) manpage for /etc/network/interfaces:
man interfaces / INET ADDRESS FAMILY / "The dhcp Method" / Options / client
Client identifier (dhcpcd), or "no" (dhclient)
So, for my case the practical solution was to add "client no" to my /etc/network/interfaces, like
iface eno1 inet dhcp
which brings the old behaviour, which is: ifup calls dhclient without "-i", as seen here:
For the record, I look at the command line parameters for confirmation:
ps aux | grep dhclient
(By the way, to see the logs one can go like:
sudo journalctl | grep -i dhcp | less)
This way it can talk to a DHCP server that is scared of RFC 4361.
This comes with a bit of fine print:
for Debian 10, I had to backport the ifupdown package.
I have followed https://unix.stackexchange.com/a/112160/203082
to obtain locally a
After installation, I wasn't able to cleanly restart my networking (probably due to some systemd-related complexities).
So I had to reboot, unfortunately. Then it was able to obtain the IP address as expected.