2

So, I have already looked at this post and it has only partially answered my question, but added just as much confusion. I looked at both of the dhclient6-* files, one for the wired adapter, and the other for the wireless. They appear to be the same, even though the other parts of the file show the respective adapters, and different IPv6 addresses. The output of the files is as follows:

Wireless interface output:

default-duid "\000\0044\267\013\003\207\223p\364\317&\017\357t8\033\364";
lease6 {
  interface "wlp2s0";
  ia-na xx:xx:xx:xx {
    starts 1486964372;
    renew 0;
    rebind 0;
    iaaddr 2001:470:1f11:f3e:x:x:x:226 {
      starts 1486964372;
      preferred-life 4500;
      max-life 7200;
    }
  }
  option dhcp6.client-id 0:4:34:b7:b:3:87:93:70:f4:cf:26:f:ef:74:38:1b:f4;
  option dhcp6.server-id <server_id>;
  option dhcp6.name-servers <name_server>;
}
lease6 {
  interface "wlp2s0";
  ia-na xx:xx:xx:xx {
    starts 1486964372;
    renew 0;
    rebind 0;
    iaaddr 2001:470:1f11:f3e:x:x:x:226 {
      starts 1486964372;
      preferred-life 4500;
      max-life 7200;
    }
  }
  option dhcp6.client-id 0:4:34:b7:b:3:87:93:70:f4:cf:26:f:ef:74:38:1b:f4;
  option dhcp6.server-id <server_id>;
  option dhcp6.name-servers <name_server>;
}

Wired interface output:

default-duid "\000\0044\267\013\003\207\223p\364\317&\017\357t8\033\364";
lease6 {
  interface "enp3s0f2";
  ia-na xx:xx:xx:xx {
    starts 1486441445;
    renew 0;
    rebind 0;
    iaaddr 2001:470:1f11:f3e:x:x:x:223 {
      starts 1486441445;
      preferred-life 4500;
      max-life 7200;
    }
  }
  option dhcp6.client-id 0:4:34:b7:b:3:87:93:70:f4:cf:26:f:ef:74:38:1b:f4;
  option dhcp6.server-id <server_id>;
  option dhcp6.name-servers <name_server>;
}
lease6 {
  interface "enp3s0f2";
  ia-na xx:xx:xx:xx {
    starts 1486441445;
    renew 0;
    rebind 0;
    iaaddr 2001:470:1f11:f3e:x:x:x:223 {
      starts 1486441445;
      preferred-life 4500;
      max-life 7200;
    }
  }
  option dhcp6.client-id 0:4:34:b7:b:3:87:93:70:f4:cf:26:f:ef:74:38:1b:f4;
  option dhcp6.server-id <server_id>;
  option dhcp6.name-servers <name_server>;
}

If there is more info that is needed, please let me know.

1 Answers1

6

The DUID identifies the device, not the interface. A device will use the same DUID on all its interfaces.

This is an important distinction between IPv4 and IPv6 DHCP. IPv4 DHCP identifies the client by its MAC address, which is different on each interface. It doesn't know when multiple MAC addresses belong to the same device. IPv6 DHCP identifies the device with the DUID so it knows that each device can have multiple interfaces. Each interface can have one or more identifies (addresses), which are identified by identity association IDs (IAIDs).

This makes it easier to see which device connected to which network and to provision the device consistently Independent of which interface the client connects with. even replacing the network adapter will not confuse the DHCPv6 server, it can still recognise that it's the same client based on the DUID.

  • So, that makes sense. My question then would be: why am I getting a different v6 address if I connect via wired vs. wireless? I'm not connecting them at the same time, and I connected via wire first, but I'm not getting the address that was assigned to the DUID. –  Feb 14 '17 at 02:40
  • Updated answer to include IAID – Sander Steffann Feb 14 '17 at 06:33
  • Also see sections 9, 10 and 11 of https://tools.ietf.org/html/rfc3315. – Sander Steffann Feb 14 '17 at 06:36