Subject: Re: [Anima] I-D Action: draft-behringer-anima-autonomic-addressing-00.txt

From: Brian E Carpenter <[email-masked]>
Date: Mon, 27 Apr 2015 16:28:50 +1200

Hi,

Thanks for separating this proposal out. I have few comments & questions.

>    This scheme targets exclusively loopback addresses of nodes.

I have a lot of trouble with this usage of "loopback address", which
has nothing to do with looping anything back. In IPv6, loopback means
only one thing that I can find in the specifications, in RFC4291:

"2.5.3.  The Loopback Address

   The unicast address 0:0:0:0:0:0:0:1 is called the loopback address."

I would be much more comfortable if we said what I think is actually meant,
even though it takes a few more words:

 This scheme targets exclusively the addresses assigned to the virtual
 interface(s) used for autonomic communications in each autonomic node.

Then, the next sentence:

>    We
>    assume that link-local addressing is used on the interfaces of links.

My first idea for a fix was

 We assume that link-local addressing is used on the physical interfaces of links.

but even that might not apply in a nested virtual environment of some kind,
unless we plan to *require* that Autonomic Nodes always have access to
physical interfaces. Maybe the simplest thing to do with this sentence is
delete it, because the important point is that the draft describes addressing
for an AN overlay.

>    We assume that each node has two unique properties:
> 
>    o  A domain name: All devices in a domain share the same domain name.
> 
>    o  A node name: This name MUST be unique inside the domain.

So, since the name is used to generate an address, how does a node communicate
before it discovers its domain and acquires its own FQDN? In particular, how
does it do so securely? I don't understand the full sequence of events from
power-on in factory condition to up and running with this type of ULA.

>    An example of a full node name is "node17.domain.com"

Technically, that's an FQDN.

To respect IETF conventions, you need to say "node17.example.com",
especially since domain.com is an actual DNS registrar that you can
call on +18004033568.

>    The fields are defined as follows:
> 
>    o  FD: The prefix to indicate that the address is a ULA prefix.

I suggest:

   o  fd: The hexadecimal prefix to indicate that the address is a locally assigned ULA prefix.

(lower case to respect http://tools.ietf.org/html/rfc5952#section-4.3,
other changes for clarity).

>  o  Zone ID:

That's a confusing name, since Zone ID already has a very specific meaning
in IPv6 (RFC 4007, RFC 6874).

>    The device ID is derived as follows: In an Autonomic Network, a
>    registrar is enrolling new devices.  As part of the enrolment process
>    the registrar assigns a number to the device, which is unique for
>    this registrar, but not necessarily unique in the domain.  The 64 bit
>    device ID is then composed as:
> 
>    o  48 bit: Registrar ID, a number unique inside the domain that
>       identifies the registrar which assigned the name to the device.  A
>       MAC address of the registrar can be used for this purpose.
> 
>    o  16 bit: Device ID, a number which is unique for a given registrar,
>       to identify the device.  This can be a sequentially assigned
>       number.

Hmm. This seems to be constraining the registrar mechanism quite
considerably. Also, 16 bits of ID might conceivably be an issue in
a very large network (100k nodes doesn't seem out of question).
And if you have this mechanism, why mention the FQDN, since you
don't use it?

>    Another way to introduce hierarchy is to use sub-domains in the
>    naming scheme.  The node names "node17.subdomainA.domain.com" and
>    "node4.subdomainB.domain.com" would automatically lead to different
>    ULA prefixes,...

Two comments here.

1. Tying DNS "topology" to routing topology is bit unrealistic; when nodes
move around, you don't want them to get renamed as well as renumbered.

2. To clarify, is the intention that the 40 bit hash would be over
the FQDN minus the first token?

    Brian