On Tue 14 Jun 2016 at 09:24:07 +0100, Roy Marples wrote: > On 13/06/2016 19:16, Rhialto wrote: > > On Mon 13 Jun 2016 at 20:14:51 +0200, Gert Doering wrote: > >> Hi, > >> > >> On Mon, Jun 13, 2016 at 08:08:25PM +0200, Rhialto wrote: > >>> On Mon 13 Jun 2016 at 12:50:09 +0100, Roy Marples wrote: > >>>> > >>>> On 12/06/2016 20:37, Rhialto wrote: > >>>>> re0: adding address 2001:984:4b2a:fc::1/62 > >>>>> re0: pltime 3600 seconds, vltime 7200 seconds > >>>>> if_addaddress6: Invalid argument > >>>> > # get a /64 and assign it to re0 > ia_pd 2 re0/0 > > That is wrong, at least in the trunk version. > An SLA of zero without specifying the prefix length now just takes the > prefix as is and assigns it to one interface. What you want is this. > > # Try and make a /64, otherwise take what we're given. > # (delegated prefix length + interface index) <= 64 > ia_pd 2 re0 > > or > > # Try and make a /64, otherwise take what we're given. > # interface index could be >2 which fails when handed a /62. > ia_pd 2 re0/1 I'm going to try this one: re1: delegated prefix 2001:984:4b2a:fc::/62 re0: adding address 2001:984:4b2a:fd::1/64 re0: acquired 600226.750768155, now 600226.752412916, diff 0.001644761 re0: adj pltime 3600 seconds, vltime 7200 seconds re0: adding route to 2001:984:4b2a:fd::/64 it now assigns a /64 addres (but a different one!) and the error message is gone. So I'm going to try the next one with a sla_id of 0 instead: > or > > # Force a /64. > # We could use an SLA of 0 here, but it's more clear to use >0. > ia_pd 2 re0/1/64 ia_pd 2 re0/0/64 re1: delegated prefix 2001:984:4b2a:fc::/62 re0: adding address 2001:984:4b2a:fc::1/64 re0: acquired 600583.885924426, now 600583.887089799, diff 0.001165373 re0: adj pltime 3600 seconds, vltime 7200 seconds re0: adding route to 2001:984:4b2a:fc::/64 and also no error message. I think I'll stay with this one for now. > Comments on how to improve dhcpcd.conf(5) to reflect this are welcome :) I've been staring a long time at the various ids that are around. A short glossary of them, including their range of values, their default value, and in which context they must be unique, would be welcome. "sla_id is an integer which must be unique inside the iaid and is added to the prefix which must fit inside prefix_len less the length of the delegated prefix." could probably be clearer as something like "sla_id (site-level aggregation identifier) is a small integer which must be unique inside the iaid and if omitted defaults to the interface index. The delegated prefix is zero-padded to the prefix_len, and then the sla_id is added. This must fit within the padding, i.e. the prefix as delegated must not change. Otherwise XYZ happens. This new prefix is used to form addresses." It isn't clear to me what happens for instance if the delegated prefix is already 64 bits, the sla_id is 1 (requiring 1 bit) and a total prefix length of 64 is requested. Does something get truncated? "The interface index is a small integer, assigned by the operating system, identifying each interface, and is essentially equivalent to the interface's name." How do I see the interface index anyway? ifconfig doesn't seem to show it. I see that https://tools.ietf.org/html/rfc3315 has a nice glossary, I suppose descriptions of duid, ia, iaid could also be borrowed from there. "The duid (DHCP Unique Identifier) is an identification of a DHCP participant; each DHCP client and server have exactly one DUID." Some typos I noticed in the manual: hostname name Sends hostname to the DHCP server so it can be registered in DNS. If hostname is an empty string then the current system hostname is sent. If hostname is a FQDN (ie, contains a .) then it will be encoded as such. several `hostname's should be `name'. ia_na [iaid [/ address]] Request a DHCPv6 Normal Address for iaid. iaid defaults to the iaid option as described above. You can request more than one ia_na by specifying a unique iaid for each one. what does `address' do? Is it the same/similar as `suffix' in ia_pd? ia_pd ... In this case prefix_len is increased to the highest multiple of 8 that can accommodate the sla_id. should that be the lowest multiple of 8? (This might actually answer my question about too-long sla_ids above) > Roy -Olaf. -- ___ Olaf 'Rhialto' Seibert -- Wayland: Those who don't understand X \X/ rhialto/at/xs4all.nl -- are condemned to reinvent it. Poorly.
Attachment:
signature.asc
Description: PGP signature