Hi Joel,

Thanks for your support for my msg05921.

I think I was right to state that the text Xiaohu quoted was not
relevant to the question of how ILNP could specify multiple hosts
from a single FQDN.

I presented a model by which I thought ILNP could or should do this -
without stating that it definitely would do this.

Xiaohu responded in msg05922 that my model was good, but that ILNP
does not in fact work this way.

So when you write:

> As far as I can tell, Robin is correct.  The current ILNP specification
> does not deal with the case of a DNS name that points to multiple
> different machines.

I think you probably mean that Xiaohu is correct.

> It seems pretty clear that some form of indirection will be needed so
> that a DNS name can point to a list of names, each of which has I and L
> (and maybe LP) records.  The good thing is that there are a number of
> mechanisms available in DNS to do this, and the logic doesn't break
> anything.

I think you are referring to some kind of system where one FQDN leads
to a list of other FQDNs, each of which is for a single host.  Then,
with each one of the "single host" FQDNs, you do a DNS lookup and get
exactly one Identifier and one or more Locators.  I guess this could
work, but it is messy - since how could anyone tell by looking at a
FQDN that it was a "single host" one or one which lead to a list of
"single host" FQDNs?

I think what you are suggesting would be a four level system:

   Role              Level

   Text Name         <---- FQDN which returns a list of 1 or more:
   Text Identifier   <---- FQDN for a single host
   64 bit Identifier <----            IIII IIII } Combined into
   64 bit Locator    <---- LLLL LLLL            } one IPv6 address

Then you could use DNS for the two types of lookup which are needed:

  1 - Text Name to:        >=1 x Text Identifiers.

  2 - Text Identifier to:    1 x 64 bit Identifier
                           >=1 x 64 bit Locator


Here is my understanding of how ILNP is specified at present, and how
I think it could be redesigned to support multiple hosts with one
FQDN (as today's IPv4 and IPv6 2 level naming models do) - while
retaining ILNP's current 3 level naming model.


Looking closely at draft-rja-ilnp-dns-02.txt it can be seen that when
a FQDN refers to a single ILNP host there is:

   1            I Identifier record

                  The value in the preference field for this I record
                  is irrelevant.

   1 or more    L Locator records.

                  The value in the preference field only affects host
                  behaviour if there are two or more L records with
                  different preference values.  The L record with the
                  lower preference values will be tried first.

When an FQDN refers to two or more hosts, there are correspondingly
two or more Identifier records:

   2 or more    I Identifier records

                  The value in the preference field only affects host
                  behaviour if there are two or more I records with
                  different preference values.  The I record with the
                  lower preference values will be "preferred" - but
                  I think what this means.

   1 or more    L Locator records.

                  The value in the preference field only affects host
                  behaviour if there are two or more L records with
                  different preference values.  The L record with the
                  lower preference values will be tried first.


I think there is no purpose in having a preference value for
Identifier records.  As far as I know, the ILNP documents don't state
what "preference" means for Identifier records.

As Xiaohu points out:

> ... there is no direct association between I record and L record,
> instead, both I record and L record are only associated with a
> FQDN.

This is true, as can be seen from the above, where 2 or more
Identifiers are returned for a single FQDN, with 1 or more Locators,
but without any indication of which Locators are to be used with
which Identifiers.


ILNP has a 3 level naming model:

          Role             Level            Some CEE architectures
                                            such as ILNP
          Text name  <---- FQDN
          Identifier <----           IIII IIII } Combined into
          Locator    <---- LLLL LLLL           } one IPv6 address

However, in its current form, ILNP is incapable of associating
particular Locators with individual Identifiers, when multiple
Identifiers are associated with a given FQDN.

Here is what I think would need to be done to ILNP to make it work,
at least in respect of a FQDN being able to refer to multiple hosts:

  1 - Remove the Preference element of the I Identifier record -
      unless there really is a purpose for it.

  2 - Have a DNS lookup for a FQDN provide:

         1 or more Identifier records.

      +  For each such Identifier record:

            1 or more Locator records, with preference field.

  3 - Provide a mapping system, by which any host could look up
      an Identifier to find what Locators it has.

As far as I know, all CEE architectures need the point 3 mapping
system, lookup system or whatever it might be called - but perhaps
ILNP doesn't.

To see why I believe this lookup facility is needed, please see:

   Today's "IP addr. = ID = Loc" naming model should be retained
   http://www.ietf.org/mail-archive/web/rrg/current/msg05864.html


I am not sure how point 2 would be structured in the DNS zone files,
or in the DNS reply.  If it can't be, then the DNS lookup should only
return one or more Identifiers - requiring a separate lookup as with
point 3.

Point 3 might be possible via a DNS lookup, but it would be very
demanding.  ILNP Identifiers are 64 bit binary numbers.

No single DNS server can handle the global set of Identifiers.  Here
is one way of handling the range, but splitting it up over many
authoritative DNS servers (2^54 of them, to be precise!).

If the 64 bits are broken into 8 bytes, and each byte is given a
decimal representation between 0 and 255, then it would be possible
to have a structure of DNS servers such as to convert an Identifier,
whose value was:

  Hex        2B  B8  46  02    E9  4D  27  A9
  Decimal    43 184  70   2   233  77  39 169

via a DNS lookup on the name:

             169.39.77.233.2.70.184.43.ilnp-id.arpa

into a list of one or more Locators, each with a preference.

If the global set of Identifiers was scattered randomly, then every
node on this 7 level DNS hierarchy, with 256 branches at each level,
would need to have at least two authoritative nameservers: a total of
2^55.  Obviously more than one DNS server can run on a physical
server, but the whole thing scales very badly indeed even if one
physical server could run 2^20 authoritative DNS servers.  That would
still require 2^36 (32 billion) physical servers.

Also, there's no way resolvers could cache the IP addresses of more
than the right-most one or two levels of DNS server.  So doing a
lookup would involve five or so levels of recursion.


Assuming ILNP needs an Identifier -> Locator lookup service, then
whether it is implemented with DNS, something like DNS or any other
way I can imagine, it is not going to scale well if the Identifier
space is used entirely randomly.

However, if Identifier space was allocated in blocks, so in certain
subsets of the vast 2^64 range, smaller ranges of sequential
Identifier values generally had quite a high proportion which were
actually used, then this would enable the DNS or similar structure to
work nicely, with only a small subset of the authoritative servers
which would be required to handle the complete range of random
Identifier values.

In this case, resolvers would have a better chance of caching the IP
addresses of the right-most levels of the 7 level scheme.  Also,
those right-most levels would have a better chance of returning the
IP addresses of multiple lower levels (to the left) if at each level,
there were only a fraction of the possible 256 branches in use.

I will read ILNP again later - after I have read the other proposals.

My guess is that with changes such as I suggest, it would be a
reasonably elegant CEE architecture.  Nonetheless, I think there are
many reasons to choose a CES architecture over any CEE architecture,
starting with the desirability of retaining the current 2 level IP
naming model, rather than adopting a Loc/ID Separation naming model
which is how CEE architectures work.

   CES & CEE are completely different (graphs)
   http://www.ietf.org/mail-archive/web/rrg/current/msg05865.html

  - Robin


_______________________________________________
rrg mailing list
rrg@irtf.org
http://www.irtf.org/mailman/listinfo/rrg

Reply via email to