On Fri, 2013-02-08 at 11:34 -0500, Gene Czarcinski wrote:
> On 02/08/2013 10:39 AM, Gene Czarcinski wrote:
> > On 02/08/2013 10:17 AM, Simon Kelley wrote:
> >> On 07/02/13 21:27, Gene Czarcinski wrote:
> >>> On 02/07/2013 04:22 PM, Gene Czarcinski wrote:
> >>>> I was googling around and found this:
> >>>>> Looks like I got it working. I must admit that I was going off of
> >>>>> information back when IPv6 and DHCPv6 first came out.
> >>>>>
> >>>>> So it was my impression that in my DHCP server configuration I had to
> >>>>> use the old style of:
> >>>>> host-identifier option dhcp6.client-id
> >>>>> 00:01:00:01:17:0B:B9:14:00:1D:60:B7:5F:D4;
> >>>>> fixed-address6 FD35:4776:6804:1::1;
> >>>>>
> >>>>> Turns out there is now compatibility with the IPv4 style of setting
> >>>>> fixed ip addresses where a clientid / duid isn't required and I was
> >>>>> able to set it up as:
> >>>>> hardware ethernet 00:0C:29:37:12:85;
> >>>>> fixed-address6 FD35:4776:6804:2:1::1;
> >>>>>
> >>>>> I remember trying the previous a long time ago when hardware ethernet
> >>>>> wasn't allowed to be used with IPv6 but it appears that has now 
> >>>>> changed.
> >>>>>
> >>>>> All is well now and things are finally back on track.
> >>>>>
> >>>> at: https://bbs.archlinux.org/viewtopic.php?id=139567
> >>>>
> >>>> The quoted text is comment #5
> >>>>
> >>>> The writer claims to be using dhclient and dhcpd.
> >>>>
> >>>> The problems described are the same ones which trouble me. Has
> >>>> something changed with the DHCPv6 standard or did the folks at isc.org
> >>>> just want something that worked?
> >>>>
> >>>>
> >>> I should have waited because I found what might be a slightly different
> >>> solution to the problem here:
> >>> http://blog.geoff.co.uk/2011/07/08/dhcpv6-surprises/
> >>>> *Surprise #2: You can no longer simply use the MAC address of an
> >>>> interface to assign a fixed IP address via DHCP.* Unlike DHCPv4, in
> >>>> which the MAC address of the client interface is included in a DHCP
> >>>> request, DHCPv6 uses a DHCP Unique Identifier
> >>>> <http://tools.ietf.org/html/rfc3315#section-9>, or DUID, to uniquely
> >>>> identify the client. By default, the DUID is synthesized from the MAC
> >>>> address of an arbitrary interface on the host plus the system time at
> >>>> the moment the DUID is generated. The same DUID is then used
> >>>> regardless of which interface a DHCPv6 message originates from.
> >>>>
> >>>> The DUID normally persists across reboots, but if it’s deleted on the
> >>>> client, e.g., when a new operating system is installed, the DUID is
> >>>> automatically regenerated with a new time, and the server will no
> >>>> longer recognize it. RFC 3315 <http://tools.ietf.org/html/rfc3315>
> >>>> prohibits using a portion of the DUID as an identifier (it must be
> >>>> treated as opaque), so DHCPv6 servers can’t be told to “just look at
> >>>> the MAC address part” of the DUID.
> >>>>
> >>>> Fortunately for those wishing to use old-style MAC addresses, there’s
> >>>> an alternative DUID type that let you do this. The DUID described
> >>>> above is a “Type 1” DUID, and is referred to as a “Link-Layer plus
> >>>> Time DUID”, or DUID-LLT. Many older DHCPv6 clients implement only Type
> >>>> 1 DUIDs. You can configure ISC DHCPv6 client to use link-layer DUIDs
> >>>> <http://tools.ietf.org/html/rfc3315#section-9.4> (DUID-LLs), which is
> >>>> simply the MAC address prepended with two identifiers (the sequence
> >>>> “00:03:00:01”). Moreover, these can be configured on a per-interface
> >>>> basis in the ISC DHCP client.^3
> >>>> <http://blog.geoff.co.uk/2011/07/08/dhcpv6-surprises/#footnote-3>
> >>>> Problem solved.
> >>>>
> >>> Now I just need to figure out how to get dhclient to use DUID-LL rather
> >>> than DUID-LLT.
> >>>
> >> Sadly, it ain't that easy. a DUID-LL is _generated_ using _a_ mac
> >> address, but if the machine has more than one interface, the client can
> >> use any of them, and use the same DUID for all the interfaces. Then if
> >> the MAC address is changed for any reason, the client will likely
> >> continue to use the existing DUID, not make a new one.
> >>
> >>
> >> Essentially, the MAC address is used just to ensure that the DUID is
> >> unique, not to make ide ntifying interfaces/machines easy. That wasn't
> >> considered necessary by the definers if IPv6.
> >>
> > It is better than DUID-LLT.
> >
> > I only have one NIC which works so that may not be a problem. Plus, 
> > with NetworkManager, I believe it may still work OK since NM has a 
> > separate dhclient instance for each interface it manages ... and 
> > separate DHCPv4 and DHCPv6 instances too.  Each interface will have a 
> > different MAC.
> >
> > But, this is a good point and I will try to test what happens.
> >
> Seems to work as I expected it to.  The test was of a qemu-kvm/libvirt 
> virtual system with two NICs and the updated NetworkManager installed.
> 
> 1. Each NIC on a different network but the -D LL specified ... client-ID 
> matches the NIC
> 
> 2. Both NICs on the same network and with -D LL specified ... client-ID 
> matches the respective NIC

We just updated NetworkManager to generate a *stable* DUID-UUID hashed
off /etc/machine-id, which is generated once at system install/clone
time, and stays the same thereafter.  Thus we avoid the whole issue of
what MAC address to generate the DUID from (which is a problem with
DUID-LL and DUID-LLT), especially if the machine has multiple network
interfaces.  We also preserve the ability to clone a system and not have
to remember to wipe some cached DUID from somewhere, since the DUID
isn't saved but is always regenerated from /etc/machine-id or from
administrator overrides.

NM will use the administrator supplied DUID if it's found in the default
lease file locations for dhclient, which
are /etc/dhclient6.leases, /var/lib/dhcp/dhclient6.leases, 
/var/lib/dhclient/dhcp6.leases, or the interface/connection specific leasefile.

Dan


_______________________________________________
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss

Reply via email to