Richard,

I reviewed your "Default Address Selection for IPv6" draft.
I have some concerns/questions on the algorithms and what
the document requires implementations to support. Details
below.

Ken
 

Page 2, Section 1 last paragraph:

   "The rules specified in this document MUST NOT be construed
    to override an application or upper-layer's explicit choice
    of destination or source address."

   Is an implementation allowed to sanity check an application's
   source/destination address choices based on criteria like
   those defined in section 3 and reject such selections as
   invalid? I believe this requirement leaves the option open,
   but wanted to be sure.

Page 3, Section 2

   The discussion of where different parts of this spec map
   into the API is very helpful.

   If I understand this correctly, destination address
   selection is done during the call to getaddrinfo or
   getipnodebyname. The destination address selection
   algorithm uses the source address selection algorithm.
   An important parameter to source address selection is
   the interface. Given what invokes destination address
   selection, the interface is not known.

   Later on, an implementation is likely to invoke source
   address selection again as the result of a connect or sendto
   call. This time the interface is known. It was either
   specified by the application or determined through a
   routing table lookup. The previously chosen destination
   address could easily be wrong for the interface.

   This all leads to the concern that destination address
   selection goes to great lengths to get the best address
   but is hobbled by missing prior knowledge of the interface.

Page 5, Section 2.4

   "IPv6 implementations SHOULD support configurable address
   selection via a mechanism at least as powerful as the policy
   tables defined here."

   I do not understand why this is a "SHOULD" requirement today.
   These tables are very interesting and I can see their power
   and use, but they seem to add little practical value without
   a management infrastructure capable of downloading a common
   set of rules to all nodes in a site. I believe making this
   table configurable should be defined as optional. Also, support
   for the Label and MatchSrcLabel mechanisms in particular should
   be optional.

Page 5, Section 2.4

   The default policy table treats IPv4 Mapped addresses that
   fall within the "autonet" and rfc 1918's private address
   ranges as special, with a higher priority than the other
   IPv4 mapped addresses. Is there a similar mechanism in
   current IPv4 implementations? If not, could this additional
   feature possibly change the behavior of applications that
   were ported to IPv6 in unexpected ways?

Page 6, Section 3

   Should an additional restriction like the following be
   added to the candidate set of source addresses?

    "For IPv4 Mapped destination addresses, the set of
     candidate source addresses must only include IPv4 Mapped
     addresses. For any other destination address, the set
     of candidate source addresses MUST NOT include IPv4
     Mapped addresses."

   Should use of the loopback destination restrict the source
   address to be loopback also?

Page 6, Section 4

   "Rule 2, Prefer Matching Label" seems to be given too much
   weight over other criteria. For example, if the destination
   is a 6to4 addresses, this rule will cause a deprecated
   6to4 address to be chosen as the source over a preferred
   global address. If your 6to4 address is deprecated,
   chances are its time to stop using it. Your site is probably
   switching over to global addresses and the 6to4 address is
   going away.

Page 7, Section 4

   "Rule 3, Prefer appropriate scope" is complex and aught
   to be broken into two rules with rule 4 in the middle
   like:

     Rule 3a: Avoid insufficient scope for destination.
     (i.e., avoid Scope Source < Scope Dest)

     Rule 4: Avoid deprecated addresses.

     Rule 3b: Prefer closest scope.
     If both SA and SB are of sufficient scope, choose
     the one with lower scope. If both SA abd SB are
     if insufficient scope, choose the one with higher
     scope.

Page 7, Section 4

  "Rule 8 MAY be superceded if the implementation has other
   means of choosing among source addresses. For example, if
   the implementation somehow knows which source address will
   result in the "best" communications performance."

   I think limiting implementation specific tests to
   supercede only Rule 8 is overly restrictive. We cannot
   predict how useful future implementation specific tests
   may be for improving efficiency or avoiding connectivity
   problems. Implementations should be allowed to inject their
   own tests anywhere in the list of rules.

Page 7, Section 4

   "The pair-wise comparison consists of eight rules, which
    MUST be applied in order."

   Is it mandatory to implement all these rules? I don't
   see why every implementation has to implement longest
   matching prefix for example. Could you break the list
   down and identify which rules MUST, SHOULD, and MAY be
   implemented?

   The requirement of order seems overly restrictive too.
   A brief list of the source address selection rules
   (with my rule 3 suggestion) gives:

   Rule 1: Prefer same address
   Rule 2: Prefer matching label
   Rule 3a: Avoid insufficient scope
   Rule 4: Avoid deprecated addresses
   Rule 3b: Prefer lower scope
   Rule 5: Prefer home address
   Rule 6: Prefer outgoing interface
   Rule 7: Prefer anonymous addresses
   Rule 8: Use longest matching prefix
   Rule X: Implementation defined test

   I tend to divide these rules into the following groups:

     A) Rule 1. This is an important diagnostic feature that
        makes sense where it is.

     B) Rules 3a, 4, and 5. There is a good chance
        communication will fail if any of these rules
        are broken.

     C) Rules 2, 3b, 6, 7, 8, and X seem to exist mostly
        for efficiency or privacy enhancements.

   I don't think we know enough to predict which of these
   rules will prove more important to customers. For example,
   some customers may get annoyed that their system selected
   a 6to4 address over a global anonymous address simply
   because the destination was a 6to4 address.

   Would it make sense to specify groups of rules, where one
   group MUST be applied before the other, then RECOMMEND the
   order of rules within each group where order really isn't
   important to interoperability?

Page 8, Section 5

   It seems possible that some destination addresses could
   end up with no candidate source addresses. Should a rule
   be added at the top to avoid destinations with no candidate
   source address?

Page 8, Section 5

   "The pair-wise comparison of destination addresses consists
    of four rules, which MUST be applied in order."

   A summary of the rules is:

   Rule 1: Prefer destination with matching source
   Rule 2: Prefer destination with higher precedence
   Rule 3: Use longest matching prefix
   Rule 4: Use order returned by name service

   Same questions as above for source address selection:
   Is it mandatory to implement all these rules?
   Is the order really critical for interoperability?
   Please be more specific on what MUST, SHOULD, and
   MAY be done.

Page 8, Section 5

   "The third and fourth rules MAY be superceded if the 
    implementation has other means of sorting destination
    addresses."

   Same question as above for source address selection.
   Why limit this just to the third and fourth rules?



--------------------------------------------------------------------
IETF IPng Working Group Mailing List
IPng Home Page:                      http://playground.sun.com/ipng
FTP archive:                      ftp://playground.sun.com/pub/ipng
Direct all administrative requests to [EMAIL PROTECTED]
--------------------------------------------------------------------

Reply via email to