[v6] Beginner with fixed-address6

Shane Kerr Shane_Kerr at isc.org
Thu Jan 24 16:04:24 UTC 2008


Stephane,

Stephane Bortzmeyer wrote:
> I'm trying DHCP v4.0.0 for the first time (on an AMD64 Dell machine
> running Debian "etch" with Linux 2.6.22) and, while I can make it run
> with IPv6 (and lease addresses from a range6 pool), I did not succeed
> yet in the use of fixed-address6. Client and server are both ISC's
> DHCP.
> 
> This configuration:
> 
> host lilith {
>   hardware ethernet 00:19:b9:e4:25:f9;
>   fixed-address6 2001:DB8:DEAD:BABE::2;
> }
> 
> is accepted but I do not get the fixed address, just an address from
> the pool.

In DHCPv6 there is no place in the packet for the hardware address. Perhaps we
should warn on the case. :(

> I tried to use the option dhcp6.client-id but it's a nightmare, since
> the client uses by default "Link-layer Address Plus Time" DUID (I
> would prefer "Link-layer Address" but I do not find a way to set it up
> this way. After reading RFC 3315, section 9.2, with the help of
> Wireshark - which violates the RFC by decoding the DUID in detail -
> and of the output of dhclient ("starts 1201021494"), I made:
> 
> host lilith {
>   host-identifier option dhcp6.client-id 00:01:00:01:47:96:21:F7:F5:00:19:b9:e4:25:f9;
>   fixed-address6 2001:DB8:DEAD:BABE::2;
> }
> 
> But the result is the same.

This is strange - I have tested this and it should "just work".

That client-id looks suspicious:

               00:01 - DUID type, DUID-LLT (link-layer address plus time)
               00:01 - hardware type (1 is Ethernet)
         47:96:21:F7 - time (32 bits)
F5:00:19:b9:e4:25:f9 - link-layer address (should be 6 bytes for Ethernet)

The time is clearly wrong - the time is supposed to be based on seconds since
the year 2000 not 1970. A bug in our client that I'll fix presently!

More important, the client-id on Ethernet should be 6 bytes, not 7! I am
guessing that this is a Wireshark bug, and that Wireshark is using 5 bytes for
the time not 4 (my guess is based on the fact that F7:F5 is uppercase and the
lower 6 bytes are lowercase, plus plugging the last 6 bytes into
http://www.coffer.com/mac_find/ yields "Dell" as the vendor, which makes sense).

Maybe you can try tcpdump instead (it also reports DUID if sufficiently verbose)?

(Right now it's not possible to set the client DUID type... I think I'll address
that too...)

> Did anyone succeed with fixed-address6?

As I said, I have gotten this to work in the past. I have tested this both by
recording the client identifier and also using the DOCSIS vendor-specific option
which encodes the MAC address.

--
Shane


More information about the dhcp-users mailing list