[odhcpd] dhcp6 lease data for iOS | Android devices not stored in leasefile?

  • Master 4.19.88 armv7l (mvebu)
  • odhcpd 2019-12-15 (used for both, dhcp4 and dhcp6)
  • no connectivity issues for router clients
  • iOS v12.4.4 client
  • Android v9 client (kernel 4.4.153)
  • clients assigned to the same firewall LAN zone and connecting via the same Wlan access-point and all are getting dhcp4 and dhcp6 leases

Noticed that dhcp6 lease data for iOS | Android devices is not being stored in odhcpd's leasefile. Those clients are reachable via ping6 and do not exhibit any connectivity issue.

Somehow I suspect that the iOS | Android devices fail to provide a DUID to odhcpd and therefore their dhcp6 lease data is absent from odhcpd's leasefile?
On the other hand, with odhcpd loglevel set to 7, there are no DHCPv6-requests showing from the iOS | Android devices :slightly_frowning_face:

With dhcp4 leveraging the client's MAC addresses instead the dhcp4 lease data is present for all/any devices in odhcpd's leasefile.

After having shut down the iOS | Android clients, rebooted the router and thereafter brought up the iOS | Android clients again:

  • dhcp6 lease data for the iOS client shows up in the leasefile (with the device's DUID)
  • dhcp6 lease data for the Android client still absent from the leasefile

It's my understanding that Android uses stateless auto-configuration (SLAAC) for ipv6. In other words, you won't see any ipv6 client that sets up its own ipv6 address via SLAAC in your routers lease file.

If this is new to you, try googling "android stateless autoconfiguration."

For the gory details see RFC 4862.

I am familiar with SLAAC but the client should report back to the server (providing the prefix) its generated ipv6 (and DUID) and the server should store the relevant lease data in its leasefile.

Perhaps then the Android kernel (4.4.153) a/o ipv6 implementation is not adhering to the standards and fails to report back to the server.

Having looked up Android's best practices for unique identifiers [1] there is no mention of DUID and thus would assume it is not implemented at all.

To my understanding for the client it would be obligatory to submit its client-id, comprised of DUID + IAID, to the server. That does not seem to happen with Android clients (at the phone variety) and explain why dhcp6 lease data is absent from the lease-file.


[1] https://developer.android.com/training/articles/user-data-ids.html

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.