Requests from internal DHCP client being ignored due to format of client-identifier


NetworkManager 1.2.2 with the default NetworkManager.conf shipped with Arch
Linux is unable to acquire an IP address from a certain product (Canon MG2920
printer) that has a wireless AP feature.

The root cause of the problem is that the product's DHCP server only replies to
DHCP requests that either have no client-identifier option provided, or have a
client-identifier option that begins with the byte 0x01, indicating that it
contains an Ethernet address (see RFC 2132).  However, the requests sent by
NetworkManager's internal DHCP client use a RFC 4361 style client-identifier
that begins with the byte 0xff.  The value is 19 bytes and contains a hash of
the network interface name concatenated with the "systemd machine ID".

The problem can be worked around by editing
/etc/NetworkManager/NetworkManager.conf and changing "dhcp=internal" to
"dhcp=dhclient", since dhclient does not send the client-identifier option.

I do not know whether a change in NetworkManager, or the systemd code from which
the internal DHCP code was taken, is warranted.  It seems the product's DHCP
server is not fully compliant (from RFC 2132: "Identifiers SHOULD be treated as
opaque objects by DHCP servers."), and I do not know how common this problem is.
But I thought I'd report the problem in case there is interest.  Should I file a
Bugzilla bug?



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]