Linux client doesn't get IPv6 address from DHCPv6

Submitted by emartell on Mon, 05/13/2013 - 14:53

Problem description: a Linux client doesn't get the IPv6 client when it connects to the network

The client must send a DHCPv6 request with a DUID that contains the MAC address of the requesting interface. The MAC address must be registered in LANDB (Network database) in order to be allowed to get an address.

Possible workrounds:

  • delete the files dhclient6.* in /var/lib/dhcp/ or /var/lib/NetworkManager/. Then restart the DHCPv6 client. Please note that CERN doesn't use SLAAC for address assignement; but Router Advertisments are used to comunicate the default gateway and the prefix length to the clients. This action is needed because sometime a random DUID is generated and stored in the dhclient6.leases files
  • in case the client has multiple interfaces, the client may put in the DUID any of the MAC address defined. Please register all the MAC addresses in LANDB


DUID check

It's possible to check which MAC address is set in the DUID by running this tcpdump capture:
tcpdump -i eth0 -vvv -n ip6 and ether src or dst 6C:88:14:7D:51:18
(where 6C:88:14:7D:51:18 is the MAC address of the requesting interface)

The correct request looks like this:
10:15:09.001967 IP6 (hlim 61, next-header UDP (17) payload length: 112) fd01:1458:200:aa::3.dhcpv6-server > 2001:1458:201:1000::6.dhcpv6-server: [udp sum ok] dhcp6 relay-fwd (linkaddr=2001:1458:202:225::1 peeraddr=fe80::6e88:14ff:fe7d:5118 (relay-message (dhcp6 solicit (xid=6f36cf (client-ID hwaddr/time type 1 time 443113408 6c88147d5118) (option

(in red the MAC address, which must be the same of the MAC address used in the tcpdump capture)





Operating System